summaryrefslogtreecommitdiff
path: root/Power_System_Operation_and_Control_by_B._R._Gupta
diff options
context:
space:
mode:
Diffstat (limited to 'Power_System_Operation_and_Control_by_B._R._Gupta')
-rwxr-xr-xPower_System_Operation_and_Control_by_B._R._Gupta/Chapter1.ipynb980
-rwxr-xr-xPower_System_Operation_and_Control_by_B._R._Gupta/Chapter2.ipynb1251
-rwxr-xr-xPower_System_Operation_and_Control_by_B._R._Gupta/Chapter3.ipynb209
-rwxr-xr-xPower_System_Operation_and_Control_by_B._R._Gupta/Chapter4.ipynb377
-rwxr-xr-xPower_System_Operation_and_Control_by_B._R._Gupta/Chapter5.ipynb1103
-rwxr-xr-xPower_System_Operation_and_Control_by_B._R._Gupta/Chapter6.ipynb537
6 files changed, 0 insertions, 4457 deletions
diff --git a/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter1.ipynb b/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter1.ipynb
deleted file mode 100755
index 2002d085..00000000
--- a/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter1.ipynb
+++ /dev/null
@@ -1,980 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:157c81ca45c25f5c9b68a8a7337d5214dee7e7e0f1df3168b61c9836541cb6d6"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Ch-1 : Introduction"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.1 page 1"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from __future__ import division\n",
- "import numpy as np\n",
- "B=100 #W(8Bulb)\n",
- "F=60 #W(2Fan)\n",
- "L=100 #W(2Light)\n",
- "LoadConnected=8*B+2*F+2*L #W\n",
- "print \"(a) Connected Load = %0.2f W \"%LoadConnected\n",
- "#12 midnight to 5am\n",
- "demand1=1*F #W\n",
- "#5am to 7am\n",
- "demand2=2*F+1*L #W\n",
- "#7am to 9am\n",
- "demand3=0 #W\n",
- "#9am to 6pm\n",
- "demand4=2*F #W\n",
- "#6pm to midnight\n",
- "demand5=2*F+4*B #W\n",
- "DEMAND=np.array([demand1,demand2, demand3, demand4, demand5])\n",
- "max_demand=max(DEMAND) \n",
- "print \"(b) Maximum demand = %0.2f W \"%max_demand \n",
- "df=max_demand/LoadConnected #demand factor\n",
- "print \"(c) Demand factor = %0.3f\"%df \n",
- "E=demand1*5+demand2*2+demand3*2+demand4*9+demand5*6 #Wh\n",
- "E=E/1000 #kWh\n",
- "print \"(d) Energy consumed during 24 hours = %0.2f kWh \"%E\n",
- "Edash=LoadConnected*24/1000 #kWh\n",
- "print \"(e) Energy consumed during 24 hours if all devices are used = %0.2f kWh\"%Edash"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) Connected Load = 1120.00 W \n",
- "(b) Maximum demand = 520.00 W \n",
- "(c) Demand factor = 0.464\n",
- "(d) Energy consumed during 24 hours = 4.94 kWh \n",
- "(e) Energy consumed during 24 hours if all devices are used = 26.88 kWh\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.2 page 3"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import numpy as np\n",
- "LoadA=2.5*1000 #W\n",
- "#12 midnight to 5am\n",
- "d1A=100 #W\n",
- "#5am to 6am\n",
- "d2A=1.1*1000 #W\n",
- "#6am to 8am\n",
- "d3A=200 #W\n",
- "#8am to 5pm\n",
- "d4A=0 #W\n",
- "#5pm to 12 midnight\n",
- "d5A=500 #W\n",
- "LoadB=3*1000 #W\n",
- "#11 pm to 7am\n",
- "d1B=0 #W\n",
- "#7 am to 8 am\n",
- "d2B=300 #W\n",
- "#8 am to 10 am\n",
- "d3B=1*1000 #W\n",
- "#10 am to 6 pm\n",
- "d4B=200 #W\n",
- "#6 pm to 11 pm\n",
- "d5B=600 #W\n",
- "DEMAND_A=np.array([d1A, d2A, d3A, d4A, d5A]) #W\n",
- "DEMAND_B=np.array([d1B, d2B, d3B, d4B, d5B]) #W\n",
- "max_demand_A=max(DEMAND_A) #W\n",
- "max_demand_B=max(DEMAND_B) #W\n",
- "df_A=max_demand_A/LoadA #demand factor\n",
- "df_B=max_demand_B/LoadB #demand factor\n",
- "print \"Demand factor of consumer A & B are : %0.2f & %0.2f\"%(df_A,df_B) \n",
- "gd_factor=(max_demand_A+max_demand_B)/max_demand_A \n",
- "print \"Group diversity factor = %0.3f\"%gd_factor\n",
- "E_A=d1A*5+d2A*1+d3A*2+d4A*9+d5A*7 #Wh\n",
- "E_B=d1B*8+d2B*1+d3B*2+d4B*8+d5B*5 #Wh\n",
- "E_A=E_A/1000 #kWh\n",
- "E_B=E_B/1000 #kWh\n",
- "print \"Energy consumed by A & B during 24 hours = %0.2f & %0.2f kWh \"%(E_A,E_B)\n",
- "Emax_A=max_demand_A*24/1000 #kWh\n",
- "Emax_B=max_demand_B*24/1000 #kWh\n",
- "print \"Maximum energy consumer A & B can consume during 24 hours = %0.2f & %0.2f kWh \"%(Emax_A,Emax_B)\n",
- "ratio_A=E_A/Emax_A \n",
- "ratio_B=E_B/Emax_B \n",
- "print \"Ratio of actual energy to maximum energy of consumer A & B : %0.4f & %0.4f\"%(ratio_A,ratio_B) "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Demand factor of consumer A & B are : 0.44 & 0.33\n",
- "Group diversity factor = 1.909\n",
- "Energy consumed by A & B during 24 hours = 5.50 & 6.90 kWh \n",
- "Maximum energy consumer A & B can consume during 24 hours = 26.40 & 24.00 kWh \n",
- "Ratio of actual energy to maximum energy of consumer A & B : 0.2083 & 0.2875\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.3 page 6"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "n1=600 #No. of apartments\n",
- "L1=5 #kW#Each Apartment Load\n",
- "n2=20 #No. of general purpose shops\n",
- "L2=2 #kW#Each Shop Load\n",
- "df=0.8 #demand factor\n",
- "#1 Floor mill\n",
- "L3=10 #kW#Load\n",
- "df3=0.7 #demand factor\n",
- "#1 Saw mill\n",
- "L4=5 #kW#Load\n",
- "df4=0.8 #demand factor\n",
- "#1 Laundry\n",
- "L5=20 #kW#Load\n",
- "df5=0.65 #demand factor\n",
- "#1 Cinema\n",
- "L6=80 #kW#Load\n",
- "df6=0.5 #demand factor\n",
- "#Street lights\n",
- "n7=200 #no. of tube lights\n",
- "L7=40 #W#Load of each light\n",
- "#Residential Load\n",
- "df8=0.5 #demand factor\n",
- "gdf_r=3 #group diversity factor\n",
- "pdf_r=1.25 #peak diversity factor\n",
- "#Commertial Load\n",
- "gdf_c=2 #group diversity factor\n",
- "pdf_c=1.6 #peak diversity factor\n",
- "#Solution :\n",
- "#Maximum demand of each apartment\n",
- "dmax_1a=L1*df8 #kW\n",
- "#Maximum demand of 600 apartment\n",
- "dmax_a=n1*dmax_1a/gdf_r #kW\n",
- "#demand of apartments at system peak time\n",
- "d_a_sp=dmax_a/pdf_r #kW\n",
- "#Maximum Commercial demand\n",
- "dmax_c=(n2*L2*df+L3*df3+L4*df4+L5*df5+L6*df6)/gdf_c #kW\n",
- "#Commercial demand at system peak time\n",
- "d_c_sp=dmax_c/pdf_c #kW\n",
- "#demand of street light at system peak time\n",
- "d_sl_sp=n7*L7/1000 #kW\n",
- "#Increase in system peak demand\n",
- "DI=d_a_sp+d_c_sp+d_sl_sp #kW\n",
- "print \"Increase in system peak demand %0.2f kW\" %DI,"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Increase in system peak demand 438.00 kW\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.4 page 12"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#12 to 5 am\n",
- "L1=20 #MW\n",
- "t1=5 #hours\n",
- "#5 to 9 am\n",
- "L2=40 #MW\n",
- "t2=4 #hours\n",
- "#9 to 6 pm\n",
- "L3=80 #MW\n",
- "t3=9 #hours\n",
- "#6 to 10 pm\n",
- "L4=100 #MW\n",
- "t4=4 #hours\n",
- "#10 to 12 am\n",
- "L5=20 #MW\n",
- "t5=2 #hours\n",
- "#Energy Poduced in 24 hours\n",
- "E=L1*t1+L2*t2+L3*t3+L4*t4+L5*t5 #MWh\n",
- "print \"Energy Supplied by the plant in 24 hours = %0.2f MWh\" %E\n",
- "LF=E/24 #%#Load Factor\n",
- "print \"Load Factor = %0.2f %% \"%LF "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Energy Supplied by the plant in 24 hours = 1420.00 MWh\n",
- "Load Factor = 59.17 % \n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.5 page 13"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "C=125 #MW#Installed Capacity\n",
- "#12 to 5 am\n",
- "L1=20 #MW\n",
- "t1=5 #hours\n",
- "#5 to 9 am\n",
- "L2=40 #MW\n",
- "t2=4 #hours\n",
- "#9 to 6 pm\n",
- "L3=80 #MW\n",
- "t3=9 #hours\n",
- "#6 to 10 pm\n",
- "L4=100 #MW\n",
- "t4=4 #hours\n",
- "#10 to 12 am\n",
- "L5=20 #MW\n",
- "t5=2 #hours\n",
- "#Energy Poduced in 24 hours\n",
- "E=L1*t1+L2*t2+L3*t3+L4*t4+L5*t5 #MWh\n",
- "LF=E/24 #%#Load Factor\n",
- "CF=LF/C #%#Capacity Factor\n",
- "print \"Capacity Factor = %0.3f\" %CF\n",
- "UF=100/C #%#Utilisation Factor\n",
- "print \"Utilisation Factor = %.1f\" %UF"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Capacity Factor = 0.473\n",
- "Utilisation Factor = 0.8\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.6 page 13"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "%matplotlib inline\n",
- "from matplotlib.pyplot import plot, show, title, xlabel, ylabel, subplot\n",
- "from numpy import array\n",
- "import numpy as np\n",
- "#12 to 5 am & 10 to 12 am\n",
- "L1=20 #MW\n",
- "E1=L1*24 #MWh\n",
- "#5 to 9 am\n",
- "L2=40 #MW\n",
- "E2=E1+(L2-L1)*17 #MWh\n",
- "#9 to 6 pm\n",
- "L3=80 #MW\n",
- "E3=E2+(L3-L2)*13 #MWh\n",
- "#6 to 10 pm\n",
- "L4=100 #MW\n",
- "E4=E3+(L4-L3)*4 #MWh\n",
- "#Plotting Energy load curve\n",
- "L=np.array([0,L1,L2,L3,L4]) #MW\n",
- "E=np.array([0,E1,E2,E3,E4]) #Mwh\n",
- "subplot(2,1,1)\n",
- "plot(E,L)\n",
- "xlabel('Energy(MWh)') \n",
- "ylabel('Load(MW)') \n",
- "title('Energy Load Curve') \n",
- "#Energy Supplied\n",
- "#Upto 5am\n",
- "t1=5 #hours\n",
- "E1=L1*t1 #MWh\n",
- "#Upto 9am\n",
- "t2=4 #hours\n",
- "E2=E1+L2*t2 #MWh\n",
- "#Upto 6pm\n",
- "t3=9 #hours\n",
- "E3=E2+L3*t3 #MWh\n",
- "#Upto 10pm\n",
- "t4=4 #hours\n",
- "E4=E3+L4*t4 #MWh\n",
- "#Upto 12pm\n",
- "t4=2 #hours\n",
- "E4=E3+L4*t4 #MWh\n",
- "#Plotting Mass curve\n",
- "T=[0,1,2,3,4] #MW\n",
- "E=[0,E1,E2,E3,E4] #Mwh\n",
- "subplot(2,1,2)\n",
- "plot(T,E)\n",
- "ylabel('Ener2y(MWh)') \n",
- "xlabel('0-1: 12-5am 1-2: 5-9am 2-3: 9-6pm 3-4: 6-10pm above4: 10-12pm') \n",
- "title('Mass Curve') \n",
- "show()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "metadata": {},
- "output_type": "display_data",
- "png": "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\n",
- "text": [
- "<matplotlib.figure.Figure at 0x7f26e82c2e90>"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.7 page 14"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "dmax=40 #MW#Maximum demand\n",
- "CF=0.5 #Capacity Factor\n",
- "UF=0.8 #Utilisation Factor\n",
- "LF=CF/UF #/Load Factor\n",
- "print \"(a) Load Factor : %0.3f\"%LF \n",
- "C=dmax/UF #MW#Plant Capacity\n",
- "print \"(b) Plant Capacity = %0.2f MW \"%C \n",
- "RC=C-dmax #MW#Reserve Capacity\n",
- "print \"(c) Reserve Capacity = %0.02f MW \"%RC \n",
- "p=dmax*LF*24*365 #MWh#Annual Energy Production\n",
- "print \"(d) Annual Energy Production = %0.2f MWh \"%p "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) Load Factor : 0.625\n",
- "(b) Plant Capacity = 50.00 MW \n",
- "(c) Reserve Capacity = 10.00 MW \n",
- "(d) Annual Energy Production = 219000.00 MWh \n"
- ]
- }
- ],
- "prompt_number": 7
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.8 page 14"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "%matplotlib inline\n",
- "from matplotlib.pyplot import plot, show, title, xlabel, ylabel, subplot\n",
- "from numpy import array\n",
- "L1=50 #MW#Initial\n",
- "t1=5 #hours\n",
- "L2=50 #MW#5am\n",
- "t2=4 #hours\n",
- "L3=100 #MW#9am\n",
- "t3=9 #hours\n",
- "L4=100 #MW#6pm\n",
- "t4=2 #hours\n",
- "L5=150 #MW#8pm\n",
- "t5=2 #hours\n",
- "L6=80 #MW#10pm\n",
- "t6=2 #hours\n",
- "L7=50 #MW\n",
- "#Energy Required in 24 hours\n",
- "E=L1*t1+(L2+L3)/2*t2+(L3+L4)/2*t3+(L4+L5)/2*t4+(L5+L6)/2*t5+(L6+L1)/2*t6 #MWh\n",
- "print \"Energy required in one day = %0.2f MWh \"%E \n",
- "DLF=E/L5/24*100 #%#Daily Load Factor\n",
- "print \"Daily Load Factor = %0.2f %%\" %DLF\n",
- "#Plotting load curve\n",
- "T=np.array([0,1,2,3,4,5,6]) #Slots\n",
- "L=np.array([L1,L2,L3,L4,L5,L6,L7]) #MW\n",
- "plot(T,L)\n",
- "ylabel('Load(MW)') \n",
- "xlabel('0-1: 12-5am 1-2: 5-9am 2-3: 9-6pm 3-4: 6-8pm 4-5:8-10pm 5-6 :10-12pm') \n",
- "title('Chronological Load Curve') \n",
- "show()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Energy required in one day = 2060.00 MWh \n",
- "Daily Load Factor = 57.22 %\n"
- ]
- },
- {
- "metadata": {},
- "output_type": "display_data",
- "png": "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\n",
- "text": [
- "<matplotlib.figure.Figure at 0x7f26d514bd90>"
- ]
- }
- ],
- "prompt_number": 8
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.9 page 15"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "print \"load duration curve in fig1\"\n",
- "print \"the energy consumed upto different times is as \"\n",
- "a=[0, 5 ,9 ,18, 20, 22, 24] #time in matrix format\n",
- "b=[50, 50 ,100 ,100 ,150 ,80 ,50] #load in matrix format\n",
- "\n",
- "z = range(0,6)\n",
- "for x in range (0,6):\n",
- " z[x]=((b[x]+b[x+1])/2)*(a[x+1]-a[x])\n",
- "\n",
- "et=0\n",
- "q = range(0,7)\n",
- "m = range(0,7)\n",
- "ett = range(0,6)\n",
- "for x in range(0,6):\n",
- " et=et+z[x] \n",
- " A=a[(x)]\n",
- " ett[x]=et \n",
- " q[x]=a[x+1]\n",
- " print \"\\nfrom mid night upto %d,energy=%dMWh\"%(A,et)\n",
- "n = sorted(range(len(b)), key=lambda k: b[k], reverse=True)\n",
- "m = sorted(b, reverse=True)\n",
- "print \"energy curve in fig 2\"\n",
- "t=[0, 3.88, 15.88 ,19.88, 23]\n",
- "k = range(0,6)\n",
- "for j in range(0,6):\n",
- " k[j]=a[(j+1)]\n",
- "M =range(0,5)\n",
- "#rearranging for mass curve\n",
- "for i in range(0,5):\n",
- " M[i] = m[i]\n",
- "Q = range(0,6)\n",
- "for i in range(0,6):\n",
- " Q[i] = q[i]\n",
- " \n",
- " \n",
- "subplot(121) \n",
- "plot(t,M) \n",
- "title(\"load duration\")\n",
- "xlabel(\"hours\")\n",
- "ylabel(\"MW\")\n",
- "subplot(122) \n",
- "plot(Q,ett) \n",
- "title(\"energy curve\")\n",
- "xlabel(\"time\")\n",
- "ylabel(\"MWh\")\n",
- "show()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "load duration curve in fig1\n",
- "the energy consumed upto different times is as \n",
- "\n",
- "from mid night upto 0,energy=250MWh\n",
- "\n",
- "from mid night upto 5,energy=550MWh\n",
- "\n",
- "from mid night upto 9,energy=1450MWh\n",
- "\n",
- "from mid night upto 18,energy=1700MWh\n",
- "\n",
- "from mid night upto 20,energy=1930MWh\n",
- "\n",
- "from mid night upto 22,energy=2060MWh\n",
- "energy curve in fig 2\n"
- ]
- },
- {
- "metadata": {},
- "output_type": "display_data",
- "png": "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\nRU5ErkJggg==\n",
- "text": [
- "<matplotlib.figure.Figure at 0x7f26d4f5edd0>"
- ]
- }
- ],
- "prompt_number": 9
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.10 page 15"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from __future__ import division\n",
- "E=438*10**4 #kWh\n",
- "LF=20 #% annual\n",
- "CF=15 #%#Capacity Factor\n",
- "Lmax=E/(LF/100)/24/365 #kW\n",
- "Lmax=Lmax/1000 #MW\n",
- "C=Lmax/CF*LF #MW#Plant Capacity\n",
- "print \"Plant Capacity = %0.2f MW \"%C \n",
- "RC=C-Lmax #MW#Reserve Capacity\n",
- "print \"Reserve Capacity = %0.2f MW\"%RC"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Plant Capacity = 3.33 MW \n",
- "Reserve Capacity = 0.83 MW\n"
- ]
- }
- ],
- "prompt_number": 10
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.11 page 16"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "L1=10000 #kW\n",
- "L2=6000 #kW\n",
- "L3=8000 #kW\n",
- "L4=7000 #kW\n",
- "df=1.5 #diversity factor\n",
- "LF=65 #%#Load Factor\n",
- "Dinc=60 #%#Increase in maximum demand\n",
- "L=L1+L2+L3+L4 #kW#Sum \n",
- "L=L/1000 #MW\n",
- "Dmax=L/df #MW\n",
- "print \"Maximum demand on station = %0.3f MWh \" %Dmax\n",
- "E=Dmax*365*24*LF/100 #MWh#Annual Energy\n",
- "print \"Annual Energy Supplied = %0.0f MWh \"%E \n",
- "Din_max=Dinc/100*Dmax #MW\n",
- "C=Dmax+Din_max #MW\n",
- "print \"Installed Capacity = %0.3f MW\"%C"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Maximum demand on station = 20.667 MWh \n",
- "Annual Energy Supplied = 117676 MWh \n",
- "Installed Capacity = 33.067 MW\n"
- ]
- }
- ],
- "prompt_number": 11
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.12 page 16"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Arranging data for Load Duration Curve\n",
- "#week days 5-9pm load\n",
- "L1=350 #MW\n",
- "t1=4*5 #hours\n",
- "#week days 8-12am & 1-5pm load\n",
- "L2=250 #MW\n",
- "t2=t1+8*5 #hours\n",
- "#saturday & sunday 5-9pm load\n",
- "L3=200 #MW\n",
- "t3=t2+4*2 #hours\n",
- "#All days 150MW load\n",
- "L4=150 #MW\n",
- "t4=t3+6*5+15*2 #hours\n",
- "#All days 100MW load\n",
- "L5=100 #MW\n",
- "t5=t4+6*5+5*2 #hours\n",
- "A=31600 #Total Load Curve Area\n",
- "LF=A/L1/24/7*100 #%#Weekly load factor\n",
- "print \"Weekly Load factor = %0.2f %%\"%LF\n",
- "print \"Load Duration Curve is shown in figure.\" \n",
- "#Load Duration Curve\n",
- "L=[L1 ,L2, L3, L4, L5] #MW\n",
- "T=[t1 ,t2 ,t3 ,t4 ,t5] #hours\n",
- "%matplotlib inline\n",
- "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
- "plot(T,L) \n",
- "title('Load Duration Curve')\n",
- "xlabel('Time(Hours)')\n",
- "ylabel('Load(MW)') \n",
- "show()"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Weekly Load factor = 53.74 %\n",
- "Load Duration Curve is shown in figure.\n"
- ]
- },
- {
- "metadata": {},
- "output_type": "display_data",
- "png": "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\n1bUwM2sGuXZmZ81Ge0naGrhB0sGdtoekWu1IXW6bOnXqW8ttbW20tbX1Pdh+UKllceSRqZbFpZem\nBGJmVm/t7e20t7f3y7HqVuFO0teB14DPAW0R8ZSk4aQrjd0knQ0QERdk+18PTImIOzsdp3R9FJ29\n8kq6bXbcuNQkpV61CpqZ9Z9S9lFI2q5yR5OkzYFDgYXAPODUbLdTgbnZ8jzgREmDJI0GdgXuyiu+\nPLmWhZk1kzybnoYD0yQNICWk6RFxs6SFwBWSJgKPAscDRMRSSVcAS4F1wOmlv3SowbUszKxZ1K3p\nqb80QtNTteXLU7I47zzXsjCz4vSl6ckjs3PmWhZm1uicKOrAtSzMrJH55s06cS0LM2tUThR15FoW\nZtaInCjqzLUszKzRuI+iAK5lYWaNxImiIK5lYWaNwomiQJMnpxoWhx+eRnEPHbrh15iZ1ZsH3BXM\ntSzMrB76MuDOiaIEOjpg4kRYuRLmzYPBg4uOyMyajRNFE1i3Dk44Ic00e/nlacpyM7P+UsrZY23j\nVGpZrF6dall0dGz4NWZm9eBEUSKDB8OcOfDAA3Dmman/wsysaE4UJeNaFmZWNm4JLyHXsjCzMnGi\nKKlhw2D+/PXJwrUszKwoThQl5loWZlYGThQl51oWZlY0d2Y3ANeyMLMiOVE0CNeyMLOiOFE0ENey\nMLMiuI+iwbiWhZnVmxNFA3ItCzOrJyeKBuVaFmZWL549toG5loWZ9ZSnGW9hrmVhZj3hRNHiXMvC\nzDbE9ShanGtZmFmenCiahGtZmFlenCiaiGtZmFke3JrdZFzLwsz6mxNFE3ItCzPrT04UTcq1LMys\nvzhRNDHXsjCz/uDO7CbnWhZm1le5JQpJIyUtkHSfpHslTcrWT5W0QtLC7PGJqtecI+khSfdL8vff\nfuJaFmbWF7mNzJa0PbB9RCySNAT4PfAp4HhgTURc1Gn/scBMYD9gB2A+MCYiOjrt55HZvXTllTBp\nErS3w5gxRUdjZvXUl5HZufVRRMRTwFPZ8suS/khKAABdBXs0MCsi1gKPSloGjAPuyCvGVuNaFmbW\nG3Xpo5C0M7A36z/0vyBpsaTLJFUmyB4BrKh62QrWJxbrJxMmpCnKDz0Unn666GjMrBH0KFFI2l3S\nJyQdLmm3jTlB1ux0JfDFiHgZ+E9gNLAX8CRwYY2Xu40pB5Mnw0knpVoWa9cWHY2ZlV23TU+SRgNn\n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\n",
- "text": [
- "<matplotlib.figure.Figure at 0x7f26d50a3a50>"
- ]
- }
- ],
- "prompt_number": 12
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.13 page 17"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "LF=0.825 #Daily Load Factor\n",
- "ratio1=0.87 #daily peak load to monthly peak load\n",
- "ratio2=0.78 #monthly peak load to annually peak load\n",
- "LF_annual=LF*ratio1*ratio2 #Annual Load Factor\n",
- "print \"Annual Load Factor : %0.4f\" %LF_annual"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Annual Load Factor : 0.5598\n"
- ]
- }
- ],
- "prompt_number": 13
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.14 page 19"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#Transformer1\n",
- "Lm=300 #kW\n",
- "df_m=0.6 #demand factor\n",
- "Lc=100 #kW#Commercial Load\n",
- "df_c=0.5 #demand factor\n",
- "#Transformer2\n",
- "Lr2=500 #kW#Residential Load\n",
- "df_Lr2=0.4 #demand factor\n",
- "#Transformer3\n",
- "Lr3=400 #kW\n",
- "df_Lr3=0.5 #demand factor\n",
- "#Diversity factors\n",
- "df1=2.3 \n",
- "df2=2.5 \n",
- "df3=2 \n",
- "DF=1.4 #Diversity factor between transformers\n",
- "#Solution :\n",
- "print \"Part(a)\" \n",
- "Lp1=(Lm*df_m+Lc*df_c)/df1 #kW#Peak load on Transformer1\n",
- "print \"Peak load on Transformer1 = %0.2f kW\"%Lp1\n",
- "Lp2=Lr2*df_Lr2/df2 #kW#Peak load on Transformer2\n",
- "print \"Peak load on Transformer2 = %0.2f kW\"%Lp2 \n",
- "Lp3=Lr3*df_Lr3/df3 #kW#Peak load on Transformer3\n",
- "print \"Peak load on Transformer3 = %0.2f kW \"%Lp3 \n",
- "print \"Part(b)\" \n",
- "LpF=(Lp1+Lp2+Lp3)/DF #Peak load on feeder\n",
- "print \"Peak load on feeder = %0.2f kW \"%LpF "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Part(a)\n",
- "Peak load on Transformer1 = 100.00 kW\n",
- "Peak load on Transformer2 = 80.00 kW\n",
- "Peak load on Transformer3 = 100.00 kW \n",
- "Part(b)\n",
- "Peak load on feeder = 200.00 kW \n"
- ]
- }
- ],
- "prompt_number": 14
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.16 page 23"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "L=[20, 25, 30 ,25 ,35 ,20] #MW\n",
- "T=[6, 4, 2 ,4 ,4 ,4] #Hours\n",
- "Lmax=max(L) #MW\n",
- "print \"(a) Maximum demand = %0.2f MW \"%Lmax \n",
- "E=L[0]*sum(T)+(L[1]-L[0])*T[1]+(L[2]-L[0])*T[2]+(L[3]-L[0])*T[3]+(L[4]-L[0])*T[4]+(L[5]-L[0])*T[5] #MWh\n",
- "E=E*1000 #kWh\n",
- "print \"(b) Units generated per day = %0.e kWh \"%E \n",
- "Lavg=E/sum(T) #/kWh\n",
- "Lavg=Lavg/1000 #/MW\n",
- "print \"(c) Average Load = %0.2f MW \"%Lavg \n",
- "LF=Lavg/Lmax*100 #%\n",
- "print \"(d) Load Factor = %0.2f %%\" %LF"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) Maximum demand = 35.00 MW \n",
- "(b) Units generated per day = 6e+05 kWh \n",
- "(c) Average Load = 25.00 MW \n",
- "(d) Load Factor = 71.43 %\n"
- ]
- }
- ],
- "prompt_number": 15
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.17 page 24"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from math import acos, sin\n",
- "pf=0.8 #power factor\n",
- "delf=1 #%#drop in frequency(delf/f)\n",
- "#delP=-2*(sind(theta))**2*delf\n",
- "theta=acos(pf) #degree\n",
- "delP_BY_delf=-2*sin(theta)**2 #increase in load wrt frequency\n",
- "print \"1%% drop in frequency, Increased in Load = %0.2f %%\"%-delP_BY_delf "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1% drop in frequency, Increased in Load = 0.72 %\n"
- ]
- }
- ],
- "prompt_number": 16
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.18 page 24"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "Lmax=100 #MW\n",
- "LF=40 #%#Load Factor\n",
- "Lavg=Lmax*LF/100 #MW\n",
- "E=Lavg*24*365 #MWh\n",
- "print \"Energy generated in a year = %0.f MWh \"%E "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Energy generated in a year = 350400 MWh \n"
- ]
- }
- ],
- "prompt_number": 17
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 1.19 page 25"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from math import sqrt\n",
- "V=400 #V\n",
- "s1=0.03 #initial slip\n",
- "delV=1 #%#/Voltage Drop\n",
- "R1=0.290 #ohm/phase\n",
- "R2=0.15 #ohm/phase\n",
- "X=0.7 #ohm/phase(X1+X2)\n",
- "#V1**2*s1=V2**2*s2 for speed independent torque\n",
- "#taking for calculating s2\n",
- "V1=1 #V \n",
- "V2=V1-V1*delV/100 #V\n",
- "s2=V1**2/V2**2*s1 #slip\n",
- "I2ByI1=sqrt((R1+R2/s1)**2+X**2)/sqrt((R1+R2/s2)**2+X**2)*(V2/V1)\n",
- "delI=(I2ByI1-1)*100 #%#Current Increase\n",
- "print \"1%% drop in Voltage increases current by = %0.2f %%\"%delI\n",
- "#P=(R1+R2/s)*I**2\n",
- "P2ByP1=(R1+R2/s2)/(R1+R2/s1)*I2ByI1**2 #ratio\n",
- "delP=(1-P2ByP1)*100 #%#Power Decrease\n",
- "print \"1%% drop in Voltage decreases power input by = %0.1f %%\"%delP \n",
- "#Answer in the textbook is not accurate."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "1% drop in Voltage increases current by = 0.86 %\n",
- "1% drop in Voltage decreases power input by = 0.2 %\n"
- ]
- }
- ],
- "prompt_number": 18
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter2.ipynb b/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter2.ipynb
deleted file mode 100755
index 3715bfd2..00000000
--- a/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter2.ipynb
+++ /dev/null
@@ -1,1251 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:70df2c2ea162c91143e39d28a0492123af67480921c2426118d0264aa7d3e7f6"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Ch- 2 : Economic Operation of Power System & Unit Commitment"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.2 page 39"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from __future__ import division\n",
- "from sympy.mpmath import quad\n",
- "#For equal incremental cost\n",
- "L1=125 #MW\n",
- "L2=100 #MW\n",
- "#For equal sharing\n",
- "L=(L1+L2)/2 #MW\n",
- "#Change in cost Unit 1\n",
- "f1 = lambda P1:0.2*P1+30 \n",
- "dC1=quad(f1,[L1,L]) #Rs./hour\n",
- "#Change in cost Unit 2\n",
- "f2 = lambda P2 : 0.15*P2+40\n",
- "dC2=quad(f2,[L2,L]) #Rs./hour\n",
- "dCyearly=(dC1+dC2)*24*365 #Rs./year\n",
- "print \"Saving per year in economic load allocation = %0.2f Rs./year \"%(dCyearly) \n",
- "#Answer in the textbook is not accurate."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Saving per year in economic load allocation = 239531.25 Rs./year \n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.3 page 43"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "L=400 #/MW#/total load\n",
- "delPD=50 #MW#increase in demand\n",
- "#dC1/dP1=0.2*P1+30\n",
- "#dC2/dP2=0.15*P2+40\n",
- "twoC1=0.2 #from above equation\n",
- "twoC2=0.15 #from above equation\n",
- "delP1_by_delPD=(1/twoC1)/(1/twoC1+1/twoC2) \n",
- "delP2_by_delPD=(1/twoC2)/(1/twoC1+1/twoC2) \n",
- "delP1=delP1_by_delPD*delPD #MW\n",
- "print \"Increase in generation of unit1 = %0.2f MW \"%delP1 \n",
- "delP2=delP2_by_delPD*delPD #MW\n",
- "print \"Increase in generation of unit2 = %0.2f MW \"%delP2 \n",
- "P1=L/2+delP1 #load on unit 1\n",
- "print \"Total load on unit1 = %0.2f MW \"%P1 \n",
- "P2=L/2+delP2 #load on unit 2\n",
- "print \"Total load on unit2 = %0.2f MW\" %P2\n",
- "print \"Checking incremental cost :\" \n",
- "dC1_by_dP1=0.2*P1+30 #Rs./MWh\n",
- "print \"Incremental cost of unit 1 = %0.2f Rs./MWh \"%dC1_by_dP1 \n",
- "dC2_by_dP2=0.2*P2+30 #Rs./MWh\n",
- "print \"Incremental cost of unit 2 = %0.2f Rs./MWh \"%dC2_by_dP2 \n",
- "print \"Conclusion : Cost are same(Approximately).\" \n",
- "#Note : Values calculated in the book are slightly wrong because of accuracy in calculation as compared to scilab accuracy."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Increase in generation of unit1 = 21.43 MW \n",
- "Increase in generation of unit2 = 28.57 MW \n",
- "Total load on unit1 = 221.43 MW \n",
- "Total load on unit2 = 228.57 MW\n",
- "Checking incremental cost :\n",
- "Incremental cost of unit 1 = 74.29 Rs./MWh \n",
- "Incremental cost of unit 2 = 75.71 Rs./MWh \n",
- "Conclusion : Cost are same(Approximately).\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.5 page 47"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from math import atan, cos\n",
- "I1=0.8 #p.u.\n",
- "I2=1 #p.u.\n",
- "Za=0.04+1J*0.12 #p.u.\n",
- "Zb=0.03+1J*0.1 #p.u.\n",
- "Zc=0.03+1J*0.12 #p.u.\n",
- "V=1 #p.u.\n",
- "#Solution : \n",
- "V1=V+(I1+I2)*Za+I1*(Zb) #p.u.\n",
- "V2=V+(I1+I2)*Za+I2*(Zc) #p.u.\n",
- "P1=(I1*V1).real #p.u.\n",
- "P2=(I2*V2).real #p.u.\n",
- "fi1=atan((V1.imag)/(V1.real)) \n",
- "fi2=atan((V2.imag)/(V2.real)) \n",
- "print \"Loss Coefficients are : \"\n",
- "B11=((Za.real)+(Zb.real))/(abs(V1)**2*cos(fi1)**2) #p.u.\n",
- "print \"B11 = %0.5f\"%B11,\"p.u.\" \n",
- "B22=((Za.real)+(Zc.real))/(abs(V2)**2*cos(fi2)**2) #p.u.\n",
- "print \"B22 = %0.4f\"%B22,\"p.u. \" \n",
- "B12=((Za.real))/(abs(V1)*abs(V2)*cos(fi1)*cos(fi2)) #p.u.\n",
- "print \"B12 = %0.4f\"%B12,\"p.u.\" \n",
- "PL=P1**2*B11+P2**2*B22+2*P1*P2*B12 #p.u.\n",
- "print \"Transmission Loss = %0.6f p.u.\" %PL\n",
- "#Note : Values calculated in the book are slightly wrong because of accuracy in calculation as compared to scilab accuracy."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Loss Coefficients are : \n",
- "B11 = 0.05827 p.u.\n",
- "B22 = 0.0576 p.u. \n",
- "B12 = 0.0331 p.u.\n",
- "Transmission Loss = 0.178800 p.u.\n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.7 page 53"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from math import atan, degrees, cos, pi\n",
- "Za=0.03+1J*0.09 #p.u.\n",
- "Ia=1.5-1J*0.4 #p.u.\n",
- "Zb=0.10+1J*0.30 #p.u.\n",
- "Ib=0.5-1J*0.2 #p.u.\n",
- "Zc=0.03+1J*0.09 #p.u.\n",
- "Ic=1-1J*0.1 #p.u.\n",
- "Zd=0.04+1J*0.12 #p.u.\n",
- "Id=1-1J*0.2 #p.u.\n",
- "Ze=0.04+1J*0.12 #p.u.\n",
- "Ie=1.5-1J*0.3 #p.u.\n",
- "V=1 #p.u.\n",
- "base=100 #MVA\n",
- "#Solution\n",
- "#Currents of load\n",
- "IL1=0.4 #p.u.\n",
- "IL2=0.6 #p.u.\n",
- "#Current distribution factors :\n",
- "Na1=1; Na2=0 \n",
- "Nb1=0.6; Nb2=-0.4 \n",
- "Nc1=0 ;Nc2=1 \n",
- "Nd1=0.4; Nd2=0.4 \n",
- "Ne1=0.6 ;Ne2=0.6 \n",
- "#Bus Voltages\n",
- "V1=V+Ia*Za #p.u.\n",
- "V2=V-Ib*Zb+Ic*Zc #p.u.\n",
- "#Phase Angles\n",
- "theta1=degrees(atan((Ia.imag)/(Ia.real)) )#degree\n",
- "theta2=degrees(atan((Ic.imag)/(Ic.real)) )#degree\n",
- "#Power Factors : \n",
- "cos_fi1=cos(atan((V1.imag)/(V1.real))-theta1*pi/180) #source 1 power factor\n",
- "cos_fi2=cos(atan((V2.imag)/(V2.real))-theta2*pi/180) #source 2 power factor\n",
- "print \"Loss formula Coefficients in p.u. :\"\n",
- "B11=(Na1**2*(Za.real)+Nb1**2*(Zb.real)+Nc1**2*(Zc.real)+Nd1**2*(Zd.real)+Ne1**2*(Ze.real))/(abs(V1)**2*cos_fi1) #p.u.\n",
- "print \"B11 = %0.5f p.u \"%B11 \n",
- "B22=(Na2**2*(Za.real)+Nb2**2*(Zb.real)+Nc2**2*(Zc.real)+Nd2**2*(Zd.real)+Ne2**2*(Ze.real))/(abs(V2)**2*cos_fi2) #p.u.\n",
- "print \"B22 = %0.5f p.u\" %B22\n",
- "B12=(Na1*Na2*(Za.real)+Nb1*Nb2*(Zb.real)+Nc1*Nc2*(Zc.real)+Nd1*Nd2*(Zd.real)+Ne1*Ne2*(Zc).real)/(abs(V1)*abs(V2)*cos_fi1*cos_fi2*(cos(theta1*pi/180-theta2*pi/180))) #p.u.\n",
- "print \"B12 = %0.5f\"%B12,\"p.u \" \n",
- "#Converting p.u. to actual value\n",
- "print \"Loss formula Coefficients in MW**-1 :\"\n",
- "B11=B11/base #MW**-1\n",
- "print \"B11 = %0.5f\"%B11,\"MW**-1\" \n",
- "B22=B22/base #MW**-1\n",
- "print \"B22 = %0.5f\"%B22,\"MW**-1\" \n",
- "B12=B12/base #MW**-1\n",
- "print \"B12 = %0.5f\"%B12,\"MW**-1\" \n",
- "#Note : Values calculated in the book are slightly wrong because of accuracy in calculation as compared to scilab accuracy."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Loss formula Coefficients in p.u. :\n",
- "B11 = 0.07877 p.u \n",
- "B22 = 0.07735 p.u\n",
- "B12 = -0.00732 p.u \n",
- "Loss formula Coefficients in MW**-1 :\n",
- "B11 = 0.00079 MW**-1\n",
- "B22 = 0.00077 MW**-1\n",
- "B12 = -0.00007 MW**-1\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.8 page 54"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#dC1/dP1=0.2*P1+22 #Rs./MWh\n",
- "#dC2/dP2=0.15*P2+30 #Rs./MWh\n",
- "B22=0; B12=0 #Because Loss is independent wrt P2\n",
- "P1=100 #MW\n",
- "PL=15 #MW\n",
- "B11=PL/P1**2 #MW**-1\n",
- "L1=1/(1-0.003*P1)#Penalty Factor plant 1\n",
- "L2=1 #Penalty Factor of plant 2\n",
- "lamda=60 \n",
- "#lamda=dC1/dP1*L1=dC2/dP2*L2\n",
- "#dC1/dP1*L1=dC2/dP2*L2\n",
- "P2=((0.2*P1+22)*L1-30)/0.15 #MW\n",
- "P=P1+P2-B11*P1**2 #MW#Total Load\n",
- "print \"Required generation at plant1 = %0.2f MW \"%P1 \n",
- "print \"Required generation at plant2 = %0.2f MW\" %P2\n",
- "print \"Total Load = %0.2f MW \"%P "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Required generation at plant1 = 100.00 MW \n",
- "Required generation at plant2 = 200.00 MW\n",
- "Total Load = 285.00 MW \n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.9 page 55"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#dC1/dP1=0.2*P1+22 #Rs./MWh\n",
- "#dC2/dP2=0.15*P2+30 #Rs./MWh\n",
- "B22=0 ;B12=0 #Because Loss is independent wrt P2\n",
- "P1=100 #MW\n",
- "PL=15 #MW\n",
- "B11=PL/P1**2 #MW**-1\n",
- "L1=1/(1-0.003*P1) #Penalty Factor plant 1\n",
- "L2=1 #Penalty Factor of plant 2\n",
- "lamda=60 \n",
- "#lamda=dC1/dP1*L1=dC2/dP2*L2\n",
- "#dC1/dP1*L1=dC2/dP2*L2\n",
- "P2=((0.2*P1+22)*L1-30)/0.15 #MW\n",
- "P=P1+P2-B11*P1**2 #MW#Total Load\n",
- "#dC1/dP1=dC2/dP2 neglecting transmission loss\n",
- "#clear('P2') #for recalculation\n",
- "#0.2*P1-0.15*P2-8=0 #/eqn(1)\n",
- "#P1=0.75*P2+40 #P1+P2-B11*P1**2-P=0 #eqn(2)\n",
- "#1.75*P2-B11*P1**2=P-40\n",
- "#Eqn=[-B11 1.75 40-P] \n",
- "from sympy import symbols, solve\n",
- "P22 = symbols('P22')\n",
- "Eqn=-B11*P22**2+1.75*P22+40-P \n",
- "P22=solve(Eqn, P22)\n",
- "P2=P22[0]#MW#neglecting higher value\n",
- "P1=0.75*P2+40 #MW\n",
- "from sympy.mpmath import quad\n",
- "dC1=quad(lambda P: 0.2*P+22,[100,P1]) #Rs.#Additional Cost plant1\n",
- "dC2=quad(lambda P: 0.15*P+30,[200,P2]) #Rs.#Decreased Cost plant2\n",
- "dC=dC1+dC2 #Rs./hour#Net change in cost\n",
- "print \"Taking transmission loss in account, Net saving per hour in fuel cost = %0.2f Rs./hour \"%dC \n",
- "#Note : Values calculated in the book are slightly wrong because of accuracy in calculation as compared to scilab accuracy."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Taking transmission loss in account, Net saving per hour in fuel cost = 854.74 Rs./hour \n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.10 page 55"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "B11=0.001 #MW**-1\n",
- "B22=0.0024 #MW**-1\n",
- "B12=-0.0005 #MW**-1\n",
- "#dC1/dP1=0.8*P1+16 #Rs./MWh\n",
- "#dC2/dP2=0.08*P2+12 #Rs./MWh\n",
- "lamda=20 \n",
- "#Iterations for calculating value\n",
- "P1 = range(0,10)\n",
- "P1[0]=0 \n",
- "P2 = range(0,10)\n",
- "P2[0]=0 \n",
- "for i in range(1,10):\n",
- " P1[i] =( 0.2+0.001*P2[i-1])/0.006 \n",
- " P2[i] = (0.4+0.001*P1[i])/0.0088 \n",
- " if P1[i]==P1[i-1]:\n",
- " break \n",
- " \n",
- "\n",
- "P1=P1[i] #MW\n",
- "print \"Generation P1 = %0.2f MW\" %P1\n",
- "P2=P2[i] #MW\n",
- "print \"Generation P2 = %02.f MW \"%P2 \n",
- "PL=B11*P1**2+2*B12*P1*P2+B22*P2**2 #MW\n",
- "print \"Transmission Loss = %0.2f MW \"%PL \n",
- "Pr=P1+P2-PL #MW\n",
- "print \"Received Power = %0.2f MW \"%Pr "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Generation P1 = 41.70 MW\n",
- "Generation P2 = 50 MW \n",
- "Transmission Loss = 5.69 MW \n",
- "Received Power = 86.20 MW \n"
- ]
- }
- ],
- "prompt_number": 7
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.11 page 56"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#C1=561+7.92*P1+0.001562*P1**2 #Rs./hour\n",
- "#C2=310+7.85*P2+0.00194*P2**2 #Rs./hour\n",
- "a1=561 ;a2=310 \n",
- "b1=7.92 ;b2=7.85 \n",
- "c1=0.001562 ;c2=0.00194 \n",
- "ce=c1*c2/(c1+c2) \n",
- "be=ce*(b1/c1+b2/c2) \n",
- "ae=a1-b1**2/4/c1+a2-b2**2/4/c2+be**2/4/ce \n",
- "print \"Coefficients are : \" \n",
- "print \"ae = \",(ae),\" & be = \",(be)\n",
- "print \"ce = \",ce\n",
- "from sympy import symbols\n",
- "PT = symbols('PT') \n",
- "CT = round(ae,2)+round(be,2)*PT+round(ce,4)*PT**2\n",
- "print \"Cost Characteristics : \",CT\n",
- "#print \"CT=870.753+7.8888*PT+0.0008653*PT**2\" "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Coefficients are : \n",
- "ae = 870.650199886 & be = 7.88877784123\n",
- "ce = 0.000865299828669\n",
- "Cost Characteristics : 0.0009*PT**2 + 7.89*PT + 870.65\n"
- ]
- }
- ],
- "prompt_number": 8
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.12 page 57"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from sympy import symbols,solve\n",
- "#C1=7700+52.8*P1+5.5*10**-3*P1**2 #Rs./hour\n",
- "#C2=2500+15*P2+0.05*P2**2 #Rs./hour\n",
- "a1=7700 ;a2=2500 \n",
- "b1=52.8 ;b2=15 \n",
- "c1=5.5*10**-3 ;c2=0.05 \n",
- "P1, P2 = symbols('P1 P2')\n",
- "dC1bydP1=52.8+2*5.5*10**-3*P1 \n",
- "dC2bydP2=15+2*0.05*P2 \n",
- "print \"For 1200 MW Load :\" \n",
- "P=1200 #MW\n",
- "#Let loads of unit are P1 & 1200-P1\n",
- "#Economical Loading dC1/dP1=dC2/dP2\n",
- "eqn=52.8+2*5.5*10**-3*P1-15-2*0.05*(1200-P1) \n",
- "P1=solve(eqn, P1)[0] #MW\n",
- "P2=P-P1 #MW\n",
- "print \"P1 = %0.2f MW \"%P1 \n",
- "print \"P2 = %0.2f MW \"%P2 \n",
- "print \"For 900 MW Load :\" \n",
- "P=900 #MW\n",
- "#clear('P1','P2') \n",
- "P1, P2 = symbols('P1 P2')\n",
- "#Let loads of unit are P1 & 900-P1\n",
- "#Economical Loading dC1/dP1=dC2/dP2\n",
- "eqn=52.8+2*5.5*10**-3*P1-15-2*0.05*(900-P1) \n",
- "P1=solve(eqn, P1)[0] #MW\n",
- "P2=P-P1 #MW\n",
- "print \"P1 = %0.2f MW \"%P1 \n",
- "print \"P2 = %0.2f MW \"%P2 \n",
- "print \"For 500 MW Load :\" \n",
- "P=500 #MW\n",
- "#clear('P1','P2') \n",
- "P1, P2 = symbols('P1 P2')\n",
- "#Let loads of unit are P1 & 500-P1\n",
- "#Economical Loading dC1/dP1=dC2/dP2\n",
- "eqn=52.8+2*5.5*10**-3*P1-15-2*0.05*(500-P1) \n",
- "P1=solve(eqn, P1)[0] #MW\n",
- "P2=P-P1 #MW\n",
- "#Minimum load is 200MW\n",
- "if P1<200:\n",
- " P2=P1+P2\n",
- " P1=0 \n",
- "print \"P1 = %0.2f MW \"%P1 \n",
- "print \"P2 = %0.2f MW \"%P2 \n",
- "C=(2500+15*P2+0.05*P2**2)*10 #Rs.#Operating cost for 10 hour\n",
- "print \"Operating cost for 10 hour = %0.2f Rs. \"%C \n",
- "print \"Other option : \" \n",
- "P1=200 #MW\n",
- "P2=300 #MW\n",
- "print \"P1 = %0.2f MW \"%P1 \n",
- "print \"P2 = %0.2f MW \"%P2 \n",
- "C1=7700+52.8*P1+5.5*10**-3*P1**2 #Rs./hour\n",
- "C2=2500+15*P2+0.05*P2**2 #Rs./hour\n",
- "C=10*(C1+C2) #Rs.#Operating cost for 10 hour\n",
- "print \"Operating cost for 10 hour = %0.2f Rs. \"%C \n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "For 1200 MW Load :\n",
- "P1 = 740.54 MW \n",
- "P2 = 459.46 MW \n",
- "For 900 MW Load :\n",
- "P1 = 470.27 MW "
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "P2 = 429.73 MW \n",
- "For 500 MW Load :\n",
- "P1 = 0.00 MW \n",
- "P2 = 500.00 MW \n",
- "Operating cost for 10 hour = 225000.00 Rs. \n",
- "Other option : \n",
- "P1 = 200.00 MW \n",
- "P2 = 300.00 MW \n",
- "Operating cost for 10 hour = 299800.00 Rs. \n"
- ]
- }
- ],
- "prompt_number": 9
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.13 page 58"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#C1=2000+20*P1+0.05*P1**2 #Rs./hour\n",
- "#C2=2750+26*P2+0.03091*P2**2 #Rs./hour\n",
- "P1=350 #MW\n",
- "P2=550 #MW\n",
- "C1=2000+20*P1+0.05*P1**2 #Rs./hour\n",
- "C2=2750+26*P2+0.03091*P2**2 #Rs./hour\n",
- "C=C1+C2 #Rs./hour\n",
- "print \"(a) Total Cost = %0.2f Rs./hour \"%C \n",
- "P=P1+P2 #MW#Total Load\n",
- "P1, P2 = symbols('P1 P2')\n",
- "dC1bydP1=20+2*0.05*P1 \n",
- "dC2bydP2=26+2*0.03091*P2 \n",
- "print \"(b) For Economic Scheduling\"\n",
- "#dC1/dP1=dC2/dP2 for economic sheduling\n",
- "#Let loads of unit are P1 & P-P1\n",
- "eqn=20+2*0.05*P1-26-2*0.03091*(P-P1) \n",
- "P1=solve(eqn, P1)[0] #MW\n",
- "P2=P-P1 #MW\n",
- "print \"Loads P1 & P2 = %0.2f & %0.2f MW\"%(P1, P2)\n",
- "C1=2000+20*P1+0.05*P1**2 #Rs./hour\n",
- "C2=2750+26*P2+0.03091*P2**2 #Rs./hour\n",
- "Cnew=C1+C2 #Rs./hour\n",
- "print \"Total Cost = %0.2f Rs./hour \"%Cnew \n",
- "saving=C-Cnew #Rs./hour\n",
- "print \"Total saving %0.2f Rs./hour \"%saving \n",
- "Lt=P1-350 #MW#Tie line load\n",
- "print \"Tie line load from Plant1 to Plant2 = %0.2f MW \"%Lt"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) Total Cost = 41525.28 Rs./hour \n",
- "(b) For Economic Scheduling\n",
- "Loads P1 & P2 = 380.90 & 519.10 MW"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n",
- "Total Cost = 41448.00 Rs./hour \n",
- "Total saving 77.28 Rs./hour \n",
- "Tie line load from Plant1 to Plant2 = 30.90 MW \n"
- ]
- }
- ],
- "prompt_number": 10
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.14 page 59"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#C=5000+450*P+0.5*P**2 #Rs./hour\n",
- "e1=+2 #%#error\n",
- "e2=-2 #%#error\n",
- "P=200 #MW#Total Load\n",
- "#Considering error\n",
- "P1, P2 = symbols('P1 P2')\n",
- "C1=(5000+450*P+0.5*P1**2)*0.98 #Rs./hour\n",
- "C2=(5000+450*P+0.5*P2**2)*1.02 #Rs./hour\n",
- "#Let loads of unit are P1 & P-P1\n",
- "#dC1/dP1=dC2/dP2 for economic sheduling\n",
- "eqn=450*0.98+2*0.5*P1*0.98-450*1.02-2*0.5*(P-P1)*1.02 \n",
- "P1=solve(eqn, P1)[0] #MW\n",
- "P2=P-P1 #MW\n",
- "#if no instrumention error\n",
- "C1=(5000+450*P1+0.5*P1**2)*0.98 #Rs./hour\n",
- "C2=(5000+450*P2+0.5*P2**2)*1.02 #Rs./hour\n",
- "C=C1+C2 #Rs./hour\n",
- "#Due to intrumentation error\n",
- "P1=P/2 #MW\n",
- "P2=P/2 #MW\n",
- "C1=(5000+450*P1+0.5*P1**2)*0.98 #Rs./hour\n",
- "C2=(5000+450*P2+0.5*P2**2)*1.02 #Rs./hour\n",
- "Cerr=C1+C2 #Rs./hour\n",
- "Cextra=Cerr-C #Rs,/hour\n",
- "print \"Extra operating cost = %0.2f Rs./hour \"%Cextra "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Extra operating cost = 121.00 Rs./hour \n"
- ]
- }
- ],
- "prompt_number": 11
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.15 page 59"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "P1, P2, P3 = symbols('P1 P2 P3')\n",
- "Q1=0.002*P1**2+0.86*P1+20 #tons/hour\n",
- "Q2=0.004*P2**2+1.08*P2+20 #tons/hour\n",
- "Q3=0.0028*P3**2+0.64*P3+36 #tons/hour\n",
- "Pmax=120 #MW\n",
- "Pmin=36 #MW\n",
- "P=200 #MW\n",
- "C=500 #Rs./ton\n",
- "#C1=C*Q1 C2=C*Q2 C3=C*Q3 #Rs./ton\n",
- "dC1bydP1=2*P1+430 #Rs./hour\n",
- "dC2bydP2=4*P2+540 #Rs./hour\n",
- "dC3bydP3=2.8*P3+320 #Rs./hour\n",
- "#P1+P2+P3=P\n",
- "A1=[1 ,1 ,1] #Coefficient Matrix\n",
- "B1=[P] #Coefficient Matrix\n",
- "#For minimal cost above 3 equation should be equal\n",
- "#eqn1=2*P1-4*P2+430-540 \n",
- "#eqn2=4*P2-2.8*P3-320+540 \n",
- "A2=[0 ,4 ,-2.8] #Coefficient Matrix\n",
- "B2=[-540+320] #Coefficient Matrix\n",
- "#eqn3=-2*P1+2.8*P3+320-430 \n",
- "A3=[-2 ,0 ,2.8] #Coefficient Matrix\n",
- "B3=[430-320] #Coefficient Matrix\n",
- "#solving by matrix method\n",
- "import numpy as np\n",
- "A=np.mat([A1[:] ,A2[:], A3[:]]) #Coefficient Matrix\n",
- "B=[B1 ,B2 ,B3] #Coefficient Matrix\n",
- "X=A**-1*B #Solution Matrix\n",
- "P1=X[0] #MW\n",
- "P2=X[1] #MW\n",
- "P3=X[2] #MW\n",
- "Pmax=120 #MW\n",
- "Pmin=36 #MW\n",
- "if P2<Pmin:\n",
- " P2=Pmin #MW \n",
- "\n",
- "#P1+P3=P-P2#eqn(4)\n",
- "A1=[1 ,1] #Coefficient Matrix\n",
- "B1=[P-P2] #Coefficient Matrix\n",
- "#eqn3=-2*P1+2.8*P3+320-430 \n",
- "A2=[-2, 2.8] #Coefficient Matrix\n",
- "B2=[430-320] #Coefficient Matrix\n",
- "#solving by matrix method\n",
- "A=np.mat([A1[:], A2[:]]) #Coefficient Matrix\n",
- "B=np.mat([B1[:], B2[:]]) #Coefficient Matrix\n",
- "X=A**-1*B #Solution Matrix\n",
- "P1=X[0] #MW\n",
- "P3=X[1] #MW\n",
- "print \"According to optimum scheduling, Load distriution is :\" \n",
- "print \"P1 = %0.2f MW \"%P1 \n",
- "print \"P2 = %0.2f MW \"%P2 \n",
- "print \"P3 = %0.2f MW \"%P3 "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "According to optimum scheduling, Load distriution is :\n",
- "P1 = 72.75 MW \n",
- "P2 = 36.00 MW \n",
- "P3 = 91.25 MW \n"
- ]
- }
- ],
- "prompt_number": 12
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.16 page 60"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "L=30 #MW\n",
- "#I=(32+32*L+1.68*L**2)*10**5 \n",
- "t1=18 #/hours\n",
- "t2=6 #/hours\n",
- "#Full load 18 hours\n",
- "I1=(32+32*L+1.68*L**2)*10**5*t1 #kJ\n",
- "#Half load 6 hours\n",
- "I2=(32+32*L/2+1.68*(L/2)**2)*10**5*t2\n",
- "I=I1+I2 #kJ\n",
- "print \"(a) Heat input per day = %0.2e kJ \"%I \n",
- "E=L*t1+L/2*t2 #MWh#/Energy produced in 24 hours\n",
- "Lu=E/(t1+t2) #MW\n",
- "Inew=(32+32*Lu+1.68*Lu**2)*10**5*(t1+t2) #kJ\n",
- "saving=I-Inew #/kJ\n",
- "saving=saving/(E*1000) #kJ/kWh\n",
- "print \"(b) Saving in heat per kWh of energy = %0.2f kJ/kWh \" %saving"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) Heat input per day = 5.04e+09 kJ \n",
- "(b) Saving in heat per kWh of energy = 270.00 kJ/kWh \n"
- ]
- }
- ],
- "prompt_number": 13
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.17 page 61"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "P=800 #MW(Total Load)\n",
- "#Using Variable for Cost Curve Equation\n",
- "P1, P2, P3 = symbols('P1 P2 P3')\n",
- "#Cost Curve Equation\n",
- "C1=450+6.5*P1+0.0013*P1**2 #Rs./hour\n",
- "C2=300+7.8*P2+0.0019*P2**2 #Rs./hour\n",
- "C3=80+8.1*P3+0.005*P3**2 #Rs./hour\n",
- "#Part(a) is not computational\n",
- "#Part (b)\n",
- "dC1BydP1=6.5+2*0.0013*P1 #Rs./MWh#/eqn(1)\n",
- "dC2BydP2=7.8+2*0.0019*P2 #Rs./MWh#/eqn(2)\n",
- "dC3BydP3=8.1+2*0.005*P3 #Rs./MWh#/eqn(3)\n",
- "#P1+P2+P3=P #MW#/eqn(4)\n",
- "A1=[1 ,1 ,1] #Coefficient Matrix\n",
- "B1=[800] #Coefficient Matrix\n",
- "#Equating eqn(1) & (2)\n",
- "A2=[2*0.0013, -2*0.0019, 0] #Coefficient Matrix\n",
- "B2=[7.8-6.5] #Coefficient Matrix\n",
- "#Equating eqn(2) & (3)\n",
- "A3=[0 ,2*0.0019, -2*0.005] #Coefficient Matrix\n",
- "B3=[8.1-7.8] #Coefficient Matrix\n",
- "#Solution By Matrix method\n",
- "import numpy as np\n",
- "A=np.mat([A1[:], A2[:], A3]) #Coefficient Matrix\n",
- "B=np.mat([B1[:], B2[:], B3[:]]) #Coefficient Matrix\n",
- "X=A**-1*B #Solution Matrix\n",
- "P1=X[0] #MW\n",
- "P2=X[1] #MW\n",
- "P3=X[2] #MW\n",
- "print \"(b) According to optimum scheduling, Load distriution is :\" \n",
- "print \"P1 = %0.2f MW\" %P1\n",
- "print \"P2 = %0.2f MW\" %P2\n",
- "print \"P3 = %0.2f MW\" %P3\n",
- "#Part(c)\n",
- "print \"(c) Optimum scheduling : \" \n",
- "P1max=600 #MW\n",
- "P1min=100 #MW\n",
- "P2max=400 #MW\n",
- "P2min=50 #MW\n",
- "P3max=200 #MW\n",
- "P3min=50 #MW\n",
- "if P2<P2max and P2>P2min:\n",
- " print \"P2 is within maximum and minimum limits.\" \n",
- " P1=P1max #MW\n",
- " P3=P3min #MW\n",
- " P2=P-P1-P3 #MW\n",
- "\n",
- "#Lambda=dC2/dP2 as P2 is niether maximum limit nor minimum limit.\n",
- "dC2BydP2=7.8+2*0.0019*P2 #Rs./MWh\n",
- "lamda=dC2BydP2 #Rs./MWh\n",
- "dC1BydP1=6.5+2*0.0013*P1 #Rs./MWh\n",
- "dC3BydP3=8.1+2*0.005*P3 #Rs./MWh\n",
- "if dC1BydP1<lamda :\n",
- " print \"Condition for P1 satisfied.\" \n",
- "\n",
- "if dC3BydP3>lamda:\n",
- " print \"Condition for P3 satisfied.\" \n",
- "\n",
- "print \"Load distribution is : \" \n",
- "print \"P1 = %0.2f MW\" %P1\n",
- "print \"P2 = %0.2f MW\" %P2\n",
- "print \"P3 = %0.2f MW\" %P3"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(b) According to optimum scheduling, Load distriution is :\n",
- "P1 = 669.73 MW\n",
- "P2 = 116.13 MW\n",
- "P3 = 14.13 MW\n",
- "(c) Optimum scheduling : \n",
- "P2 is within maximum and minimum limits.\n",
- "Condition for P1 satisfied.\n",
- "Condition for P3 satisfied.\n",
- "Load distribution is : \n",
- "P1 = 600.00 MW\n",
- "P2 = 150.00 MW\n",
- "P3 = 50.00 MW\n"
- ]
- }
- ],
- "prompt_number": 14
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.18 page 62"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "import numpy as np\n",
- "Bmn=np.mat([[0.0676, 0.00953, -0.00507],[0.00953 ,0.0521, 0.00901],[-0.00507, 0.00901, 0.0294]]) #Loss Coefficient\n",
- "Bno=np.mat([[-0.0766],[0.00342],[0.0189]]) #Loss Coefficient\n",
- "Boo=0.04357 #Loss Coefficient\n",
- "P1=107.9 #MW\n",
- "P2=50 #MW\n",
- "P3=60 #MW\n",
- "#solution : \n",
- "#PL=np.mat([[P1], [P2], [P3]])*Bmn+np.mat([[P1], [P2], [P3]])*Bno+Boo #MW\n",
- "PL=np.mat([P1, P2, P3])*Bmn+np.mat([P1, P2, P3])*Bno+Boo #MW\n",
- "pl= 0\n",
- "for x in range(0,1):\n",
- " for y in range(0,3):\n",
- " pl+= PL[x,y]\n",
- "print \"Transmission Loss = %0.2f MW \"%-pl \n",
- "#Note : Values calculated in the book are slightly wrong because of accuracy in calculation as compared to scilab accuracy."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Transmission Loss = 7.44 MW \n"
- ]
- }
- ],
- "prompt_number": 15
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.19 page 64"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#lambda1=0.1*P1+20 #Rs./MWh\n",
- "#lambda2=0.12*P2+16 #Rs./MWh\n",
- "P=180 #MW\n",
- "#Let loads are P1 & P-P1\n",
- "#Economical loading lambda1=lambda2\n",
- "P1, P2 = symbols('P1 P2')\n",
- "eqn=0.1*P1+20-0.12*(P-P1)-16 \n",
- "P1=solve(eqn, P1)[0] #MW\n",
- "P2=P-P1 #MW\n",
- "print \"Load P1 = %0.2f MW \"%P1 \n",
- "print \"Load P2 = %0.2f MW \"%P2"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Load P1 = 80.00 MW \n",
- "Load P2 = 100.00 MW \n"
- ]
- }
- ],
- "prompt_number": 16
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.20 page 65"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#F1=0.004*P1**2+2*P1+80 #Rs./hr\n",
- "#F2=0.006*P2**2+1.5*P2+100 #Rs./hr\n",
- "P=250 #MW\n",
- "P1, P2 = symbols('P1 P2')\n",
- "dF1bydP1=2*0.004*P1+2 \n",
- "dF2bydP2=2*0.006*P2+1.5 \n",
- "#Let loads are P1 & P-P1\n",
- "#Economical loading lambda1=lambda2\n",
- "eqn=2*0.004*P1+2-2*0.006*(P-P1)-1.5 \n",
- "P1=solve(eqn, P1)[0] #MW\n",
- "P2=P-P1 #MW\n",
- "print \"Load P1 = %0.2f MW \"%P1 \n",
- "print \"Load P2 = %0.2f MW \"%P2"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Load P1 = 125.00 MW \n",
- "Load P2 = 125.00 MW \n"
- ]
- }
- ],
- "prompt_number": 17
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.21 page 65"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#F1=(8*P1+0.024*P1**2+80)*10**6 #Btu./hr\n",
- "#F2=(6*P2+0.04*P2**2+120)*10**6 #Btu./hr\n",
- "Pmax=100 #MW\n",
- "Pmin=10 #MW\n",
- "C=2.5 #Rs./million Btu\n",
- "#C1=2.5*F1/10**6\n",
- "#C2=2.5*F2/10**6\n",
- "#For Maximum Load of 100 MW\n",
- "P1, P2 = symbols('P1 P2')\n",
- "dC1bydP1=8*2.5+2.5*2*0.024*P1 \n",
- "dC2bydP2=6*2.5+2.5*2*0.04*P2 \n",
- "#Let loads are P1 & Pmax-P1\n",
- "#Economical loading lambda1=lambda2\n",
- "eqn=8*2.5+2.5*2*0.024*P1-6*2.5-2.5*2*0.04*(Pmax-P1) \n",
- "P1=solve(eqn, P1)[0] #MW\n",
- "P2=Pmax-P1 #MW\n",
- "C1=2.5*((8*P1+0.024*P1**2+80)*10**6)/10**6 #Rs./hour\n",
- "C2=2.5*((6*P2+0.04*P2**2+120)*10**6)/10**6 #Rs./hour\n",
- "C100=(C1+C2)*12 #Rs.(Total cost of 12 hours on 100MW load)\n",
- "#For Maximum load of 50 MW\n",
- "#Let loads are P1 & Pmax-P1\n",
- "#Economical loading : lambda1=lambda2\n",
- "Pmax1=50 #MW\n",
- "P1, P2 = symbols('P1 P2')\n",
- "eqn=8*2.5+2.5*2*0.024*P1-6*2.5-2.5*2*0.04*(Pmax1-P1) \n",
- "P1=solve(eqn, P1)[0] #MW\n",
- "P2=Pmax1-P1 #MW\n",
- "C1=2.5*((8*P1+0.024*P1**2+80)*10**6)/10**6 #Rs./hour\n",
- "C2=2.5*((6*P2+0.04*P2**2+120)*10**6)/10**6 #Rs./hour\n",
- "C50=(C1+C2)*12 #Rs.(Total cost of 12 hours on 50MW load)\n",
- "C=C100+C50 #Rs.(Total cost for 24 hours)\n",
- "print \"Minimum total cost for 24 hours = %0.2f Rs. \"%C \n",
- "E=(Pmax*12+Pmax1*12)*10**3 #kWh\n",
- "#Operating cost per unit energy\n",
- "Co=C/E #Rs./kWh\n",
- "print \"Operating cost per unit energy = %0.2f Rs./kWh \"%Co \n",
- "#Answer is wrong in the textbook. Calculation mistake in energy generation calculation & Cost calculation.\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Minimum total cost for 24 hours = 49312.50 Rs. \n",
- "Operating cost per unit energy = 0.03 Rs./kWh \n"
- ]
- }
- ],
- "prompt_number": 18
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.22 page 66"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#F1=0.05*P1**2+21.5*P1+800 #Rs./hr\n",
- "#F2=0.1*P2**2+27*P2+500 #Rs./hr\n",
- "#F3=0.07*P3**2+16*P3+900 #Rs./hr\n",
- "PT=200 #MW\n",
- "Pmax=120 #MW\n",
- "Pmin=39 #MW\n",
- "#coefficients : \n",
- "c1=0.05; c2=0.1; c3=0.07 \n",
- "b1=21.5 ;b2=27 ;b3=16 \n",
- "a1=800 ;a2=500 ;a3=900 \n",
- "lamda=(1/2*(b1/c1+b2/c2+b3/c3)+PT)/(1/2*(1/c1+1/c2+1/c3)) \n",
- "#Economical loading dF1/dP1=dF2/dP2=dF3/dP3\n",
- "from sympy import symbols, solve\n",
- "P1=symbols('P1') \n",
- "P2=symbols('P2') \n",
- "P3=symbols('P3') \n",
- "dF1bydP1=2*0.05*P1+21.5 \n",
- "dF2bydP2=2*0.1*P2+27 \n",
- "dF2bydP3=2*0.07*P3+16 \n",
- "#Solving equation :\n",
- "import numpy as np\n",
- "A=np.mat([[2*0.05 ,0 ,0] ,[0 ,2*0.1, 0], [0, 0, 2*0.07]]) \n",
- "B=np.mat([[lamda-21.5], [lamda-27], [lamda-16]]) \n",
- "X=A**-1*B \n",
- "P1=X[0] #MW\n",
- "P2=X[1] #MW\n",
- "P3=X[2] #MW\n",
- "if P2<Pmin:\n",
- " P2=Pmin \n",
- "\n",
- "P1plusP3=PT-P2 #MW\n",
- "#dF1/dP1=dF3/dP3\n",
- "#Let loads are P1 & P1plusP3-P1\n",
- "P1=symbols('P1') \n",
- "P3=symbols('P3') \n",
- "eqn=2*0.05*P1+21.5-2*0.07*(P1plusP3-P1)-16 \n",
- "P1=solve(eqn, P1)[0] #MW\n",
- "P3=P1plusP3-P1 #MW\n",
- "print \"Optimum scheduling :\" \n",
- "print \"Loads P1, P2 & P3 are %0.2f, %0.2f & %0.2f MWs \" %(P1, P2, P3)\n",
- "F1=0.05*P1**2+21.5*P1+800 #Rs./hr\n",
- "F2=0.1*P2**2+27*P2+500 #Rs./hr\n",
- "F3=0.07*P3**2+16*P3+900 #Rs./hr\n",
- "C=F1+F2+F3 #Rs/hour\n",
- "print \"For this schedule, total cost per hour = %0.2f Rs./hour \" %C"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Optimum scheduling :\n",
- "Loads P1, P2 & P3 are 71.00, 39.00 & 90.00 MWs \n",
- "For this schedule, total cost per hour = 7190.65 Rs./hour \n"
- ]
- }
- ],
- "prompt_number": 19
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.23 page 67"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#dF1/dP1=0.025*P1+15 #\n",
- "#dF2/dP2=0.05*P2+20 #\n",
- "PL=15.625 #MW\n",
- "P1=125 #MW\n",
- "lamda=24 #Rs. per MWh\n",
- "B11=PL/P1**2 #Coefficient Loss\n",
- "#dF2/dP2*L2=lambda\n",
- "P2=symbols('P2') \n",
- "L2=1 #penalty factor\n",
- "eqn=(0.05*P2+20)*L2-lamda \n",
- "P2=solve(eqn, P2)[0] #MW\n",
- "#PL=B11*P1**2\n",
- "P1=symbols('P1') \n",
- "dPLbydP1=2*B11*P1 \n",
- "L1=1/(1-dPLbydP1) #penalty factor\n",
- "eqn=(0.025*P1+15)-lamda/L1\n",
- "#P1=solve(numer(eqn)) #MW\n",
- "P1=solve((eqn), P1)[0] #MW\n",
- "print \"Generation P1 & P2 are %0.2f & %0.2f MW\"%(P1, P2)\n",
- "PL=B11*P1**2 #MW\n",
- "LD=P1-PL+P2 #MW\n",
- "print \"Load Demand = %0.2f MW \"%LD "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Generation P1 & P2 are 123.29 & 80.00 MW\n",
- "Load Demand = 188.09 MW \n"
- ]
- }
- ],
- "prompt_number": 20
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 2.24 page 68"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "#dC1/dP1=0.02*P1+16 #\n",
- "#dC2/dP2=0.04*P2+20 #\n",
- "PL=10 #MW\n",
- "P1=100 #MW\n",
- "lamda=25 #Rs. per MWh\n",
- "B11=PL/P1**2; B22=0; B12=0 #Coefficient Loss\n",
- "#dF2/dP2*L2=lambda\n",
- "P2=symbols('P2') \n",
- "L2=1 #penalty factor\n",
- "eqn=(0.04*P2+20)*L2-lamda \n",
- "P2=solve(eqn, P2)[0] #MW\n",
- "#PL=B11*P1**2\n",
- "P1=symbols('P1') \n",
- "dPLbydP1=2*B11*P1 \n",
- "L1=1/(1-dPLbydP1) #penalty factor\n",
- "eqn=(0.02*P1+16)-lamda/L1\n",
- "P1=solve((eqn), P1)[0] #MW\n",
- "print \"Generation P1 & P2 are %0.2f & %0.2f MW\"%(P1, P2)\n",
- "PL=B11*P1**2 #MW\n",
- "LD=P1-PL+P2 #MW\n",
- "print \"Load Demand = %0.2f MW \"%LD"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Generation P1 & P2 are 128.57 & 125.00 MW\n",
- "Load Demand = 237.04 MW \n"
- ]
- }
- ],
- "prompt_number": 21
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter3.ipynb b/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter3.ipynb
deleted file mode 100755
index f49e3430..00000000
--- a/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter3.ipynb
+++ /dev/null
@@ -1,209 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:069f3652d0985b68c88deb4b29ec7c9faf615f62221a7a1d559cf07f972df11e"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Ch-3 : Hydrothermal Coordination"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 3.1 page 83"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from __future__ import division\n",
- "head=205 #m(Mean Head)\n",
- "A=1000 #km**2(Catchment area)\n",
- "rf=125 #cm(Annual Rainfall)\n",
- "a=80 #%(Available rainfall for power generation)\n",
- "LF=75 #%(Load factor)\n",
- "head_loss=5 #m(Head Loss)\n",
- "Eta_turbine=0.9 #Efficiency of turbine\n",
- "Eta_generator=0.95 #Efficiency of generator\n",
- "#Calculation\n",
- "WaterUsed=A*10**6*rf/100*a/100 #m**3/year(Discharge)\n",
- "WaterUsed=WaterUsed/(365*24*60*60) #m**3/sec\n",
- "Eff_Head=head-head_loss #m(Effective Head)\n",
- "P=735.5/75*WaterUsed*Eff_Head*Eta_turbine*Eta_generator/1000 #MW(Load of station)\n",
- "Ppeak=P/(LF/100) #MW(Peak Load )\n",
- "print \"MW rating of station = %0.2f MW\"%Ppeak \n",
- "#type ot turbine\n",
- "if head>200:\n",
- " print \"Pelton turbine is more suitable because head>200 meter.\" \n",
- "else:\n",
- " print \"Pelton turbine is not suitable\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "MW rating of station = 70.90 MW\n",
- "Pelton turbine is more suitable because head>200 meter.\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 3.2 page 85"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "WF=50 #m**3/sec(Water flow)\n",
- "head=90 #m\n",
- "LF=75 #%(Load factor)\n",
- "Eta=90 #%(Efficiency of hydro plant)\n",
- "L=5 #%(Transmission losses)\n",
- "TC=350 #MW\n",
- "hp=140 #MW#Hydro power\n",
- "#Calculation\n",
- "P=735.5/75*WF*head*Eta/100/1000 #MW(Power available)\n",
- "Pnet=P*(100-L)/100 #MW#/Net Available hydro power\n",
- "E=Pnet*24 #MW-hours##Hydro Energy\n",
- "print \"Available hydro energy = %0.2f MW-hours\"%E\n",
- "C1=hp/((100-L)/100) #MW#Capacity of hydro plant\n",
- "print \"Capacity of hydro plant = %0.2f MW \"%C1 \n",
- "C2=TC-hp #MW#Capacity of thermal plant\n",
- "print \"Capacity of thermal plant = %0.2f MW \"%C2"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Available hydro energy = 905.55 MW-hours\n",
- "Capacity of hydro plant = 147.37 MW \n",
- "Capacity of thermal plant = 210.00 MW \n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 3.3 page 92"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "P1=700 #MW(Load for 14 hours)\n",
- "P2=500 #MW(Load for 10 hours)\n",
- "B22=0.0005 #Loss Coefficient\n",
- "t1=14 #hour\n",
- "t2=10 #hour\n",
- "r2=2.5 #Rs/hour/(m**3/sec\n",
- "#Characteristics of units : \n",
- "#C1=(24+0.02*P1)*P1 #Rs./hour\n",
- "#W2=(6+0.0025*P2)*P2 #m**3/sec\n",
- "lamda=37.944 #Rs./MWh(For peak load conditions)\n",
- "P1=348.6 #MW(For peak load conditions)\n",
- "P2=454.84 #MW(For peak load conditions)\n",
- "PL=103.44 #MW(For peak load conditions)\n",
- "lambda_dash=31.73 #Rs./MWh(For peak load conditions)\n",
- "P1_dash=193.25 #MW(For peak off conditions)\n",
- "P2_dash=378.25 #MW(For peak off conditions)\n",
- "PL_dash=71.50 #MW(For peak off conditions)\n",
- "W=((6+0.0025*P2)*P2*t1+(6+0.0025*P2_dash)*P2_dash*t2)*3600/10**3 #m**3#D3ily water used\n",
- "print \"Daily water used by plant = %0.2f m**3\" %W\n",
- "C=(24+0.02*P1)*P1*t1+(24+0.02*P1_dash)*P1_dash*t2 #Rs.\n",
- "print \"Daily operating cost of plant = %0.2f Rs. \"%C "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Daily water used by plant = 258189.00 m**3\n",
- "Daily operating cost of plant = 205004.86 Rs. \n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 3.4 page 93"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "t1=14 #hour(working hour of hydro station)\n",
- "t2=24 #hour(Working hour of steam station)\n",
- "#Characteristics of units : \n",
- "#C=(5+8*Ps+0.05*Ps**2) #Rs./hour\n",
- "#dW/dPh=30+0.05*Ph #m**3/MW-sec\n",
- "W=500*10**6 #m**3(Water Quantity used)\n",
- "Ps=250 #MW(Load on steam station)\n",
- "lamda=8+0.1*Ps #Rs./MW-hour\n",
- "#W=Ph*(30+0.05*Ph)*t1*3600 #\n",
- "#0.05*Ph**2*t1*3600+Ph*30*t1*3600-W=0\n",
- "from sympy import symbols, solve\n",
- "Ph=symbols('Ph') \n",
- "Ph=solve(0.05*Ph**2*t1*3600+Ph*30*t1*3600-W, Ph) #MW\n",
- "Ph=Ph[1] #MW#Leaving negative root\n",
- "print \"Load on hydro plant = %0.2f MW\"%Ph \n",
- "r=lamda/(30+0.05*Ph) #Rs./hour/(m**3/sec)\n",
- "print \"Cost of water use = %0.2f Rs./hour/(m**3/sec)\"%r \n",
- "#Answer is slightly differ due to accuracy in calculations."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Load on hydro plant = 237.04 MW\n",
- "Cost of water use = 0.79 Rs./hour/(m**3/sec)\n"
- ]
- }
- ],
- "prompt_number": 4
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter4.ipynb b/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter4.ipynb
deleted file mode 100755
index 79e88e49..00000000
--- a/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter4.ipynb
+++ /dev/null
@@ -1,377 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:d4343686248bdcf3008e99590e00a02578e59b6d649633ef952a482176f262f1"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Ch-4 : Modelling of Turbine, Generator & Automatic Controllers"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 4.1 page 107"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "kVA=4000 #kVA#rating\n",
- "f1_nl=50 #Hz(No load frequency of machine1)\n",
- "f1_fl=47.5 #Hz(No load frequency of machine1)\n",
- "f2_nl=50 #Hz(No load frequency of machine2)\n",
- "f2_fl=48 #Hz(No load frequency of machine2)\n",
- "L=6000 #kW(Load)\n",
- "from sympy import symbols, solve\n",
- "L1=symbols('L1') #Load of machine1\n",
- "#f1_nl-(f1_nl-f1_fl)*L1/kVA=f1_nl-(f2_nl-f2_fl)*L2/kVA where L2=L-L1\n",
- "L1=(f2_nl-f2_fl)*L/((f1_nl-f1_fl)+(f2_nl-f2_fl)) #kW\n",
- "L2=L-L1 #kW\n",
- "print \"Part(a)\" \n",
- "print \"Load supplied by first machine = %0.2f kW\"%L1 \n",
- "print \"Load supplied by second machine = %0.2f kW \"%L2 \n",
- "print \"Part(b)\" \n",
- "L2=4000 #kW#Machine2 is supplying 4000kW\n",
- "fdrop1=f1_nl-f1_fl #Hz(frequency drop of machine 1)\n",
- "fdrop2=f2_nl-f2_fl #Hz(frequency drop of machine 2)\n",
- "L1=L2*fdrop2/fdrop1 #kW#Load supplied by machine 1\n",
- "L=L1+L2 #kW#Total Load\n",
- "print \"Total load supplied without getting over loaded = %0.2f kW\"%L"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Part(a)\n",
- "Load supplied by first machine = 2666.67 kW\n",
- "Load supplied by second machine = 3333.33 kW \n",
- "Part(b)\n",
- "Total load supplied without getting over loaded = 7200.00 kW\n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 4.2 page 107"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from math import degrees, acos, asin, atan, sqrt, cos, sin\n",
- "Lt=3000 #kW#Total Load\n",
- "pf=0.8 #Power factor Lagging\n",
- "I=150 #A\n",
- "ZA=0.4+1J*12 #ohm#synchronous impedence\n",
- "ZB=0.5+1J*10 #ohm#synchronous impedence\n",
- "Vt=6.6 #kV#Terminal Voltage\n",
- "L=Lt/2 #kW#Load supplied by each machine\n",
- "LA=L #kW\n",
- "LB=L #kW\n",
- "#LB=sqrt(3)*Vt*IB*cosd(theta_B) \n",
- "theta_B=acos(LB/sqrt(3)/Vt/I) #radian\n",
- "IB=I*(cos(theta_B)-1J*sin(theta_B)) #A\n",
- "I_total=Lt/sqrt(3)/Vt/pf #A#Total Current\n",
- "IA_plus_IB=I_total*(0.8-1J*0.6) #A\n",
- "IA=IA_plus_IB-IB #A\n",
- "cos_thetaA=(IA).real/abs(IA) #lagging power factor\n",
- "EA=Vt/sqrt(3)+IA*ZA/1000 #kV per phase\n",
- "del_A=atan((EA).imag/(EA).real) #radian#Load Angle\n",
- "emf_A=abs(EA) #kV per phase#Induced emf of machine A\n",
- "EB=Vt/sqrt(3)+IB*ZB/1000 #kV per phase\n",
- "del_B=atan((EB).imag/(EB).real) #radian#Load Angle\n",
- "emf_B=abs(EB) #kV per phase#Induced emf of machine A\n",
- "IA=abs(IA) #A\n",
- "print \"Current on machine A = %0.2f A \"%IA \n",
- "pfA=cos_thetaA #power factor\n",
- "print \"Lagging power factor of machine A = %0.4f\"%pfA \n",
- "print \"Induced emf of machine A = %0.2f kV per phase \"%emf_A, \n",
- "print \"Load angle of machine A = %0.2f degree \"%degrees(del_A) \n",
- "print \"Load angle of machine B = %0.2f degree \"%degrees(del_B) \n",
- "print \"Induced emf of machine B = %0.2f kV per phase\"%emf_B \n",
- "#Answer in the textbook is not accurate."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Current on machine A = 180.64 A \n",
- "Lagging power factor of machine A = 0.7264\n",
- "Induced emf of machine A = 5.57 kV per phase Load angle of machine A = 15.90 degree \n",
- "Load angle of machine B = 15.49 degree \n",
- "Induced emf of machine B = 4.78 kV per phase\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 4.3 page 111"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from __future__ import division\n",
- "from math import pi\n",
- "P=5 #MVA\n",
- "V=1000 #V\n",
- "speed=1500 #rpm#speed\n",
- "ns=speed/60 #rps\n",
- "f=50 #Hz\n",
- "pf=0.8 #Power factor Lagging\n",
- "Xs=20 #%#synchronous reluctance\n",
- "Xs=Xs/100 #/p.u.\n",
- "print \"Part(a)\" \n",
- "V=1 #p.u.#on no load\n",
- "E=1 #p.u.#on no load\n",
- "Ps=V*E/Xs #p.u.\n",
- "Ps=Ps*P #MW per elect. radian\n",
- "Ps=Ps*1000 #kW per elect. radian\n",
- "#1 mech. radian=pi/90 elect. radian\n",
- "Ps=Ps*pi/90 #kW per mech. degree\n",
- "print \"Synchronising power per mech. degree = %0.2f kW\"%Ps \n",
- "d=0.5 #degree##displacement\n",
- "Ts=Ps*1000*d/2/pi/ns #N-m\n",
- "print \"Synchronising torque = %0.2f N-m\"%Ts \n",
- "print \"Part(b)\" \n",
- "theta=acos(pf) #radian\n",
- "E=V+(cos(theta)-1J*sin(theta))*1J*Xs #p.u.\n",
- "Ps=V*E/Xs #p.u.\n",
- "Ps=Ps*P #MW per elect. radian\n",
- "Ps=Ps*1000 #kW per elect. radian\n",
- "#1 mech. radian=pi/90 elect. radian\n",
- "Ps=Ps*pi/90 #kW per mech. degree\n",
- "Ps=abs(Ps) #kW per mech. degree\n",
- "print \"Synchronising power per mech. degree = %0.2f kW \"%Ps \n",
- "d=0.5 #degree##displacement\n",
- "Ts=abs(Ps)*1000*d/2/pi/ns #N-m\n",
- "print \"Synchronising torque = %0.2f N-m \"%Ts \n",
- "#Answer in the textbook is not accurate."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Part(a)\n",
- "Synchronising power per mech. degree = 872.66 kW\n",
- "Synchronising torque = 2777.78 N-m\n",
- "Part(b)\n",
- "Synchronising power per mech. degree = 987.31 kW \n",
- "Synchronising torque = 3142.70 N-m \n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 4.4 page 112"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "P=2 #MVA\n",
- "V=6000 #V\n",
- "speed=750 #rpm#speed\n",
- "ns=speed/60 #rps\n",
- "Zs=6 #ohm/phase\n",
- "f=50 #Hz\n",
- "pf=0.8 #Power factor Lagging\n",
- "#Calculation\n",
- "I=P*10**6/sqrt(3)/V #A#Current\n",
- "theta=acos(pf) #radian\n",
- "E=V/sqrt(3)+I*(cos(theta)-1J*sin(theta))*1J*Zs #V\n",
- "Ps=V*sqrt(3)*E/Zs/1000 #kw per elect. radian\n",
- "Ps=Ps*4*pi/180 #kW per mech. degree\n",
- "Ps=abs(Ps) #kW per mech. degree\n",
- "print \"Synchronising power per mech. degree = %0.2f kW \"%Ps \n",
- "Ts=abs(Ps)*1000/2/pi/ns #N-m\n",
- "print \"Synchronising torque = %0.2f N-m\" %Ts\n",
- "#Answer in the textbook is not accurate."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Synchronising power per mech. degree = 514.92 kW \n",
- "Synchronising torque = 6556.12 N-m\n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 4.5 page 112"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "I=100 #A#/Current\n",
- "V=11 #kV\n",
- "Xs=4 #ohm/phase\n",
- "f=50 #Hz\n",
- "pf=0.8 #Power factor Lagging\n",
- "#Calculation\n",
- "theta=acos(pf) #radian\n",
- "print \"Part(a)\" \n",
- "E=V*1000/sqrt(3)+I*(cos(theta)-1J*sin(theta))*1J*Xs #V\n",
- "Del=atan((E).imag/(E).real) #radian\n",
- "E=abs(E) #V/phase\n",
- "print \"Open circuit phase emf %0.2f V/phase \"%E \n",
- "print \"Angle delta = %0.2f degree\"%degrees(Del) \n",
- "print \"Part(b)\" \n",
- "del_dash=10+degrees(Del) #degree\n",
- "P_by_V=E*sin(del_dash*pi/180)/Xs #per phase\n",
- "#P=V*I*cos_fi\n",
- "I_cos_fi=P_by_V \n",
- "#V*1000/sqrt(3)+I*(cos_fi-%i*sin_fi)*%i*Xs=E\n",
- "I_sin_fi=(sqrt(E**2-(4*I_cos_fi**2))-V*1000/sqrt(3))/4 \n",
- "tan_fi=I_sin_fi/I_cos_fi \n",
- "fi=degrees(atan(tan_fi)) #degree\n",
- "I=I_cos_fi/cos(fi*pi/180) #A\n",
- "print \"New load current = %0.2f A \"%I \n",
- "pf=cos(fi*pi/180) #lagging power factor\n",
- "print \"Its power factor = %0.4f lagging \" %pf\n",
- "print \"Part(c)\" \n",
- "pf1=0.8 #/original power factor\n",
- "Idash=I*pf/pf1 #Current\n",
- "print \"New value of load current = %0.2f A \"%Idash \n",
- "#Answer is slightly differ because of accuracy in calculations."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Part(a)\n",
- "Open circuit phase emf 6598.62 V/phase \n",
- "Angle delta = 2.78 degree\n",
- "Part(b)\n",
- "New load current = 368.57 A \n",
- "Its power factor = 0.9901 lagging \n",
- "Part(c)\n",
- "New value of load current = 456.13 A \n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 4.6 page 119"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "G=200 #MVA\n",
- "H=6 #MJ/MVA#/Inertia Constant\n",
- "V=11 #kV\n",
- "f=50 #Hz\n",
- "L1=120 #MW\n",
- "L2=160 #MW\n",
- "\n",
- "#Calculation\n",
- "print \"Part(a)\" \n",
- "Es=G*H #MJ##Stored Energy\n",
- "print \"Stored energy = %0.2f MJ \"%Es \n",
- "print \"Part(b)\" \n",
- "Pa=L1-L2 #MW\n",
- "M=G*H/180/f #MJ-sec/elect.deg.\n",
- "alfa=-Pa/M #elect.deg./sec**2#/Retardation\n",
- "print \"Motor retardation = %0.2f elect.deg.sec**2\" %alfa\n",
- "print \"Part(c)\" \n",
- "n=5 #cycles\n",
- "t=n/f #sec\n",
- "del_change=1/2*-alfa*t**2 #elect.deg.\n",
- "print \"Change in power angle = %0.2f elect.deg. \"%del_change \n",
- "alfa=alfa*60/(180*4) #rpm/sec\n",
- "ns=1500 #rpm\n",
- "nr=ns+(-alfa)*t #rpm #/rotor speed\n",
- "print \"Rotor speed at the end of 5 cycle = %0.2f rpm \"%nr \n",
- "print \"Part(d)\"\n",
- "H2=4 #MJ/MVA\n",
- "G2=150 #MVA\n",
- "Gb=100 #MVA\n",
- "Heb=H*G/Gb+H2*G2/Gb #MJ/MVA\n",
- "print \"Inertia constant for the equivalent generator = %0.2f MJ/MVA \"%Heb "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Part(a)\n",
- "Stored energy = 1200.00 MJ \n",
- "Part(b)\n",
- "Motor retardation = 300.00 elect.deg.sec**2\n",
- "Part(c)\n",
- "Change in power angle = -1.50 elect.deg. \n",
- "Rotor speed at the end of 5 cycle = 1497.50 rpm \n",
- "Part(d)\n",
- "Inertia constant for the equivalent generator = 18.00 MJ/MVA \n"
- ]
- }
- ],
- "prompt_number": 6
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter5.ipynb b/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter5.ipynb
deleted file mode 100755
index 8d7e5943..00000000
--- a/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter5.ipynb
+++ /dev/null
@@ -1,1103 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:b45200f85baf8ca49b3eb8c7e7ad096c02135fdb6a27b2db5c0131f5c89667ec"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Ch-5 : Load Frequency Control"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.1 page 145"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from __future__ import division\n",
- "P=100 #MW\n",
- "drop=4 #%(No load to full load drop)\n",
- "f=50 #Hz\n",
- "print \"Part(i)\" \n",
- "p=1 #MW(For calculating per unit MW)\n",
- "R=(drop/100)*f/p #Hz/p.u.MW\n",
- "print \"Speed regulation = %0.2f Hz/p.u.MW\" %R\n",
- "R=(drop/100)*f/P #Hz/MW\n",
- "print \"Speed regulation = %0.2f Hz/MW\" %R\n",
- "print \"Part(ii)\" \n",
- "del_f=-0.1 #Hz(Frequency drop)\n",
- "delP=-1/R*del_f #MW(Change in power output)\n",
- "print \"Change in power output = %0.2f MW \"%delP"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Part(i)\n",
- "Speed regulation = 2.00 Hz/p.u.MW\n",
- "Speed regulation = 0.02 Hz/MW\n",
- "Part(ii)\n",
- "Change in power output = 5.00 MW \n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.2 page 146"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from math import sqrt\n",
- "P=100 #MVA\n",
- "f=50 #Hz\n",
- "H=5 #kW-sec/kVA(Constant)\n",
- "delP=50 #MW(Increased Load)\n",
- "td=0.5 #s(Time delay)\n",
- "P=P/1000 #kVA\n",
- "KE=P*H #kW-sec\n",
- "delP=delP/1000 #kW(Increased Load)\n",
- "KE_loss=delP*td #kW-s\n",
- "f_new=sqrt((KE-KE_loss)/KE)*f #Hz\n",
- "f_dev=(f-f_new)/f*100 #%(Frequency deviation)\n",
- "print \"Frequency deviation = %0.2f %%\"%f_dev"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Frequency deviation = 2.53 %\n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.3 page 146"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "P1=500 #MW\n",
- "P2=200 #MW\n",
- "f=50 #Hz\n",
- "delP=140 #MW(System load increase)\n",
- "f_new=49.5 #Hz(Frequency after drop)\n",
- "delP1=delP*P1/(P1+P2) #MW\n",
- "delP2=delP*P2/(P1+P2) #MW\n",
- "f_dev=f_new-f #Hz\n",
- "#For delPdash=0, R1 &R2 can be calculated as :\n",
- "R1=-1/delP1*f_dev #Hz/MW\n",
- "R2=-1/delP2*f_dev #Hz/MW\n",
- "print \"Value of R for unit 1 & 2 are : %0.4f & %0.4f Hz/MW \"%(R1, R2) "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Value of R for unit 1 & 2 are : 0.0050 & 0.0125 Hz/MW \n"
- ]
- }
- ],
- "prompt_number": 3
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.4 page 146"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "\n",
- "f=50 #Hz\n",
- "R=2 #Hz/pu MW\n",
- "Pr=10000 #MW(Rated Capacity)\n",
- "P=Pr/2 #MW(Operating Power)\n",
- "delP=2 #%(Load Increase)\n",
- "del_f=f*1/100 #Hz(1% change in frequency)\n",
- "del_PL=P*1/100 #MW(1% change in load)\n",
- "#Rate of change of load with frequency :\n",
- "D=del_PL/del_f #MW/Hz\n",
- "D=D/Pr #p.u. MW/Hz\n",
- "#Frequency response characteristic : \n",
- "Beta=D+1/R #p.u. MW/Hz\n",
- "M=delP/100*P #MW\n",
- "M=M/Pr #p.u. MW\n",
- "del_fo=-M/Beta #Hz\n",
- "print \"Static frequency drop = %0.2f Hz\"%del_fo\n",
- "R=float('inf')\n",
- "Beta=D+1/R #p.u. MW/Hz\n",
- "del_fo=-M/Beta #Hz\n",
- "print \"If speed governer loop is open, frequency drop = %0.2f Hz \"%del_fo"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Static frequency drop = -0.02 Hz\n",
- "If speed governer loop is open, frequency drop = -1.00 Hz \n"
- ]
- }
- ],
- "prompt_number": 4
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.5 page 147"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "C=10000 #MW(Control area capacity)\n",
- "P=5000 #MW\n",
- "H=5 #s\n",
- "R=3 #Hz/pu MW\n",
- "f=50 #Hz\n",
- "del_f=f*1/100 #Hz\n",
- "del_PL=P*1/100 #MW\n",
- "D=del_PL/del_f #MW/Hz\n",
- "D=D/C #p.u. MW/Hz\n",
- "#Primary ALFC loop parameters :\n",
- "Kp=1/D #Hz/p.u. MW\n",
- "Tp=2*H/f/D #s\n",
- "print \"Primary ALFC loop parameters :\"\n",
- "print \"Kp = %0.2f Hz/p.u. MW \"%Kp \n",
- "print \"Tp = %0.2f seconds \"%Tp"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Primary ALFC loop parameters :\n",
- "Kp = 100.00 Hz/p.u. MW \n",
- "Tp = 20.00 seconds \n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.6 page 147"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "f=50 #Hz\n",
- "R=2 #Hz/pu MW\n",
- "Pr=10000 #MW(Rated Capacity)\n",
- "P=Pr/2 #MW(Operating Power)\n",
- "delP=2 #%(Load Increase)\n",
- "del_f=f*1/100 #Hz(1% change in frequency)\n",
- "del_PL=P*1/100 #MW(1% change in load)\n",
- "#Rate of change of load with frequency :\n",
- "D=del_PL/del_f #MW/Hz\n",
- "D=D/Pr #p.u. MW/Hz\n",
- "#Frequency response characteristic : \n",
- "Beta=D+1/R #p.u. MW/Hz\n",
- "M=delP/100*P #MW\n",
- "M=M/Pr #p.u. MW\n",
- "del_fo=-M/Beta #Hz\n",
- "delP_fo=-del_fo*(D*Pr) #MW\n",
- "print \"Frequency drop contribution to increase in load = %0.2f MW\" %delP_fo\n",
- "delP_gen=-del_fo/R*Pr #MW\n",
- "print \"Increase in generation to meet the increase load = %.2f MW \" %delP_gen "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Frequency drop contribution to increase in load = 1.96 MW\n",
- "Increase in generation to meet the increase load = 98.04 MW \n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.7 page 152"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "G=100 #MVA\n",
- "f=50 #Hz\n",
- "n=3000 #rpm\n",
- "L=25 #MW#Load\n",
- "td=0.5 #sec\n",
- "H=4.5 #MW-sec/MVA\n",
- "#Calculation\n",
- "KE=H*G #MW-sec##at no load\n",
- "KE_Loss=L*td #MW-sec#/due to increase in load\n",
- "f_new=sqrt((KE-KE_Loss)/KE)*f #Hz\n",
- "delF=(f-f_new)/f*100 #%##frequency deviation\n",
- "print \"Frequency deviation = %0.2f %%\" %delF"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Frequency deviation = 1.40 %\n"
- ]
- }
- ],
- "prompt_number": 7
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.8 page 152"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "C=4000 #MW\n",
- "f=50 #Hz\n",
- "L=2500 #MW#Load\n",
- "R=2 #Hz/p.u.MW##Speed regulation constant\n",
- "H=5 #sec##Inertia constant\n",
- "delPL=2 #%##change in load\n",
- "delf=1 #%##change in frequency\n",
- "print \"Part(a)\" \n",
- "D=delPL/delf*L/f #MW/Hz\n",
- "D=D/C #p.u.MW/Hz\n",
- "Beta=D+1/R #p.u.MW/Hz\n",
- "delf0=-0.2 #Hz\n",
- "M=-(delf0)*Beta #p.u.MW\n",
- "M=M*C #MW\n",
- "print \"Largest change in step load = %0.2f MW \"%M \n",
- "print \"Part(b)\" \n",
- "Kp=1/D #Hz/p.u.MW\n",
- "Tp=2*H/f/D #sec\n",
- "Tdash=(R+Kp)/R/Tp #sec\n",
- "print \"(R+Kp)/(R*Tp) = %0.2f seconds \"%(Tdash) \n",
- "print 'Change in frequency as a funtion of time, \\ndelf(t) = -0.2*(1-epsilon**(%.3f*t))'%(Tdash) "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Part(a)\n",
- "Largest change in step load = 420.00 MW \n",
- "Part(b)\n",
- "(R+Kp)/(R*Tp) = 2.62 seconds \n",
- "Change in frequency as a funtion of time, \n",
- "delf(t) = -0.2*(1-epsilon**(2.625*t))\n"
- ]
- }
- ],
- "prompt_number": 8
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.9 page 153"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "C=4000 #MW\n",
- "f=50 #Hz\n",
- "L=C #MW#Load\n",
- "R=2.5 #%##Speed regulation constant\n",
- "H=5 #sec##Inertia constant\n",
- "delPL=1 #%##change in load\n",
- "delf=1 #%##change in frequency\n",
- "print \"Part(a)\" \n",
- "Ls=80 #MW #increase in step to load\n",
- "R=R/100*f #z/p.u.MW\n",
- "D=delPL/delf*L/f #MW/Hz\n",
- "D=D/C #p.u.MW/Hz\n",
- "M=Ls/L #unitless#for given step load\n",
- "Kp=1/D #Hz/p.u.MW\n",
- "Tp=2*H/f/D #sec\n",
- "Tdash1=(R+Kp)/R/Tp #sec\n",
- "print \"(R+Kp)/(R*Tp) = %0.2f seconds \"%Tdash1 \n",
- "Tdash2=(R*Kp*M)/(R+Kp) #sec\n",
- "print \"(R*Kp*M)/(R+Kp) = %0.2f seconds\"%Tdash2\n",
- "delf0=-Tdash2 #Hz##Static frequency error\n",
- "print \"Static frequency error = %0.2f Hz \"%delf0 \n",
- "print \"Part(b)\" \n",
- "Ki=(1+Kp/R)**2/4/Tp/Kp #p.u.MW/Hz\n",
- "print \"Critical value of Ki = %0.2f p.u.MW/Hz \"%Ki"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Part(a)\n",
- "(R+Kp)/(R*Tp) = 4.10 seconds \n",
- "(R*Kp*M)/(R+Kp) = 0.02 seconds\n",
- "Static frequency error = -0.02 Hz \n",
- "Part(b)\n",
- "Critical value of Ki = 0.84 p.u.MW/Hz \n"
- ]
- }
- ],
- "prompt_number": 9
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.10 page 154"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from sympy import symbols, solve\n",
- "s=symbols('s') #for transfer function\n",
- "Tg=0.2 #sec#/time constant of governing system\n",
- "Tt=2 #sec#/time constant of turbine\n",
- "Gr=1/(1+Tg*s) #Transfer function of governer\n",
- "Gt=1/(1+Tt*s) #Transfer function of turbine\n",
- "C=1500 #MW\n",
- "f=50 #Hz\n",
- "R=4 #%##Speed regulation constant\n",
- "H=5 #sec##Inertia constant\n",
- "delPL=1 #%##change in load\n",
- "delf=1 #%##change in frequency\n",
- "print \"Part(a)\" \n",
- "R=R/100*f #z/p.u.MW\n",
- "D=delPL/delf*C/f #MW/Hz\n",
- "D=D/C #p.u.MW/Hz\n",
- "Kp=1/D #Hz/p.u.MW\n",
- "Tp=2*H/f/D #sec\n",
- "Gp=Kp/(1+Tp*s) #Transfer function of power system\n",
- "delFs=-Gp/(1+Gr*Gt*Gp/R) \n",
- "print \"delFs = M/s*\",delFs \n",
- "print \"Part(b)\" \n",
- "delf0_by_M=-Kp/(1+Kp/R) #Hz\n",
- "delf0=delf/100*f #Hz\n",
- "M=delf0/delf0_by_M #p.u.MW\n",
- "M=M*C #MW\n",
- "print \"Largest step change = %0.2f MW \"%M \n",
- "#Transfer functions multiplication Gr*Gt*Gp is calculated & it is not possible to show together without calculated as in the book."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Part(a)\n",
- "delFs = M/s* -50.0/((1 + 25.0/((0.2*s + 1)*(2*s + 1)*(10.0*s + 1)))*(10.0*s + 1))\n",
- "Part(b)\n",
- "Largest step change = -390.00 MW \n"
- ]
- }
- ],
- "prompt_number": 10
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.11 page 157"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "GA=5000 #MW\n",
- "GB=10000 #MW\n",
- "R=2 #Hz/p.u.MW##Speed regulation constant\n",
- "D=0.01 #p.u.MW/Hz\n",
- "Ls=100 #MW#Load increase\n",
- "RA=R*GB/GA #Hz/p.u.MW\n",
- "DA=D*GA/GB #p.u.MW/Hz\n",
- "RB=R #Hz/p.u.MW\n",
- "DB=D #p.u.MW/Hz\n",
- "Beta_A=DA+1/RA #p.u.MW/Hz\n",
- "Beta_B=DB+1/RB #p.u.MW/Hz\n",
- "MA=0 #Load increase\n",
- "MB=Ls/GB #p.u.MW\n",
- "delf0=-MB/(Beta_A+Beta_B) #Hz\n",
- "print \"Static frequency drop = %0.2f Hz \"%delf0 \n",
- "delPAB=Beta_A*MB/(Beta_A+Beta_B) #p.u.MW\n",
- "delPAB=delPAB*GB #MW\n",
- "print \"Change in tie line power = %0.2f MW \"%delPAB "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Static frequency drop = -0.01 Hz \n",
- "Change in tie line power = 33.33 MW \n"
- ]
- }
- ],
- "prompt_number": 11
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.12 page 159"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "GA=500 #MW\n",
- "GB=2000 #MW\n",
- "RA=2.5 #Hz/p.u.MW##Speed regulation constant\n",
- "RB=2 #Hz/p.u.MW##Speed regulation constant\n",
- "Ls=20 #MW#Load increase\n",
- "f=50 #Hz\n",
- "delL=1 #%##change in load\n",
- "delf=1 #%##change in frequency\n",
- "DA=delL/delf*GA/f #MW/Hz\n",
- "DA=DA/GB #p.u.MW/Hz\n",
- "DB=delL/delf*GB/f #MW/Hz\n",
- "DB=DB/GB #p.u.MW/Hz\n",
- "RA=RA*GB/GA #Hz/p.u.MW\n",
- "Beta_A=DA+1/RA #p.u.MW/Hz\n",
- "Beta_B=DB+1/RB #p.u.MW/Hz\n",
- "print \"Part(a)\" \n",
- "MA=Ls/GB #unitless\n",
- "MB=0 #unitless\n",
- "delf0=-MA/(Beta_A+Beta_B) #Hz\n",
- "print \"Change in frequency = %0.2f Hz \"%delf0 \n",
- "delPAB=-Beta_B*MA/(Beta_B+Beta_A) #p.u.MW\n",
- "delPAB=delPAB*GB #MW\n",
- "print \"Change in tie line power = %0.2f MW \"%delPAB \n",
- "print \"Part(b)\" \n",
- "MB=Ls/GB #unitless\n",
- "MA=0 #unitless\n",
- "delf0=-MB/(Beta_A+Beta_B) #Hz\n",
- "print \"Change in frequency = %0.2f Hz \"%delf0 \n",
- "delPAB=Beta_A*MB/(Beta_B+Beta_A) #p.u.MW\n",
- "delPAB=delPAB*GB #MW\n",
- "print \"Change in tie line power = %0.2f MW \"%delPAB "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Part(a)\n",
- "Change in frequency = -0.02 Hz \n",
- "Change in tie line power = -16.64 MW \n",
- "Part(b)\n",
- "Change in frequency = -0.02 Hz \n",
- "Change in tie line power = 3.36 MW \n"
- ]
- }
- ],
- "prompt_number": 12
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.13 page 160"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from math import cos, pi\n",
- "G=4000 #MW\n",
- "R=2 #Hz/p.u.MW##Speed regulation constant\n",
- "H=5 #sec\n",
- "C=600 #MW#Capacity\n",
- "theta=40 #degree#/Power angle\n",
- "f=50 #Hz\n",
- "print \"Part(a)\" \n",
- "T=C/G*cos(pi/180*theta) #sec\n",
- "omega0=sqrt((2*pi*f*T/H-(f/4/R/H)**2)) #radian/sec\n",
- "print \"Frequency of oscillation = %0.2f radian/sec \"%omega0 \n",
- "print \"Part(b)\" \n",
- "delLB=100 #MW#change in load in area B\n",
- "delPAB=delLB/2 #MW#because Beta_A=Beta_B\n",
- "print \"Change in tie line power = %0.2f MW \"%delPAB \n",
- "print \"Part(c)\" \n",
- "omega0=sqrt((2*pi*f*T/H)) #radian/sec\n",
- "print \"Frequency of oscillation = %0.2f radian/sec \"%omega0"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Part(a)\n",
- "Frequency of oscillation = 2.38 radian/sec \n",
- "Part(b)\n",
- "Change in tie line power = 50.00 MW \n",
- "Part(c)\n",
- "Frequency of oscillation = 2.69 radian/sec \n"
- ]
- }
- ],
- "prompt_number": 13
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.14 page 168"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "C1=300 #MW\n",
- "C2=400 #MW\n",
- "G1=4 #%#droop characteristics of governer\n",
- "G2=5 #%#droop characteristics of governer\n",
- "L=600 #MW\n",
- "f=50 #Hz\n",
- "#Load on first generator =L1\n",
- "#Load on second generator =L-L1\n",
- "#f-G1*f/100*(L1/C1)=f-G2*f/100*(L2/C2)\n",
- "L1=G2*L/C2/(G1/C1+G2/C2) #MW\n",
- "L2=L-L1 #MW\n",
- "print \"Load on first generator = %0.2f MW \"%L1 \n",
- "print \"Load on second generator = %0.2f MW \"%L2 \n",
- "fLoad=f*(1-L1/C1*G1/100) #Hz\n",
- "print \"Frequency at load = %0.2f Hz \"%fLoad"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Load on first generator = 290.32 MW \n",
- "Load on second generator = 309.68 MW \n",
- "Frequency at load = 48.06 Hz \n"
- ]
- }
- ],
- "prompt_number": 14
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.15 page 169"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "G=100 #MVA\n",
- "f=50 #Hz\n",
- "delL=50 #MW\n",
- "Tc=0.4 #sec\n",
- "H=5 #/kWs/kVA\n",
- "KE=G*1000*H #kWs\n",
- "delKE=delL*1000*Tc ##kWs#/due to decrease in load\n",
- "fnew=sqrt((KE+delKE)/KE) *f #Hz\n",
- "fdev=(fnew-f)/f*100 #%\n",
- "print \"New frequency = %0.2f Hz \"%fnew \n",
- "print \"Frequency deviation = %0.2f %%\"%fdev"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "New frequency = 50.99 Hz \n",
- "Frequency deviation = 1.98 %\n"
- ]
- }
- ],
- "prompt_number": 15
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.16 page 169"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "G=100 #MVA\n",
- "f=50 #Hz\n",
- "delL=60 #MW\n",
- "Tc=0.35 #sec\n",
- "H=5 #/kWs/kVA\n",
- "KE=G*1000*H #kWs\n",
- "delKE=(G-delL)*1000*Tc ##kWs#/due to decrease in load\n",
- "fnew=sqrt((KE+delKE)/KE) *f #Hz\n",
- "fdev=(fnew-f)/f*100 #%\n",
- "print \"New frequency = %0.2f Hz \"%fnew \n",
- "print \"Frequency deviation = %0.2f %%\" %fdev"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "New frequency = 50.70 Hz \n",
- "Frequency deviation = 1.39 %\n"
- ]
- }
- ],
- "prompt_number": 16
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.17 page 169"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "KE=1500 #MJ\n",
- "Pin=5 #MW\n",
- "f=50 #Hz\n",
- "t=1 #sec\n",
- "delKE=Pin*t ##MJ#/due to power inputs\n",
- "fnew=sqrt((KE+delKE)/KE) *f #Hz\n",
- "delf=fnew-f #/Hz/second\n",
- "print \"Frequency increase rate = %0.2f Hz/sec \"%delf"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Frequency increase rate = 0.08 Hz/sec \n"
- ]
- }
- ],
- "prompt_number": 17
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.18 page 169"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "C=2000 #MW#/Capacity\n",
- "L=1000 #MW#Load\n",
- "H=5 #kWs/KVA\n",
- "R=2.4 #Hz/puMW#Regulation\n",
- "f=50 #Hz\n",
- "delL=1 #%##change in load\n",
- "delf=1 #%##change in frequency\n",
- "D=delL/delf*L/f #MW/Hz\n",
- "D=D/C #p.u.MW/Hz\n",
- "Kp=1/D #Hz/p.u.MW\n",
- "Tp=2*H/f/D #sec\n",
- "print \"Primary ALFC loop parameters are : \" \n",
- "print \"D = \",D,\"p.u.MW/Hz\" \n",
- "print \"Kp = \",Kp,\"Hz/p.u.MW\" \n",
- "print \"Tp = \",Tp,\"sec \" "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Primary ALFC loop parameters are : \n",
- "D = 0.01 p.u.MW/Hz\n",
- "Kp = 100.0 Hz/p.u.MW\n",
- "Tp = 20.0 sec \n"
- ]
- }
- ],
- "prompt_number": 18
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.19 page 170"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "Tp=10 #sec\n",
- "Tg=0 #sec\n",
- "Tt=0 #sec\n",
- "Kp=100 #Hz/p.u.MW\n",
- "R=3 #/Hz/CuMW\n",
- "delPD=0.1 #p.u.\n",
- "Ki=0.1 #constant\n",
- "f=50 #Hz\n",
- "from sympy import symbols\n",
- "s=symbols('s') \n",
- "delFs=-Kp/Tp*(delPD/(s**2+s*((1+Kp/R)/Tp)+Ki*Kp/Tp))\n",
- "n=1 #cycle\n",
- "time_error=n/f #sec\n",
- "print \"Total time error = %0.3f sec\"%time_error"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Total time error = 0.020 sec\n"
- ]
- }
- ],
- "prompt_number": 19
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.20 page 171"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "L=14 #MW#Total Load\n",
- "C1=15 #MW\n",
- "R1=3 #%#speed regulation\n",
- "C2=4 #MW\n",
- "R2=4 #%#speed regulation\n",
- "LB=4 #MW#Load on bus bar\n",
- "LA=10 #MW#/Load on bus bar\n",
- "f=50 #Hz\n",
- "#Load on station A= L1 MW\n",
- "#Load on station B= L-L1 MW\n",
- "#f-C1*f/100*(L1/C1)=f-C2*f/100*(L2/C2)\n",
- "L1=R2*L/C2/(R1/C1+R2/C2) #MW\n",
- "L2=L-L1 #MW\n",
- "print \"Load generation at station A = %0.2f MW \"%L1 \n",
- "print \"Load generation at station B = %0.2f MW \"%L2\n",
- "Pt=L1-LA #MW#Power transmitted A to B\n",
- "f_oper=f-R1/100/C1*(L1)*f #Hz\n",
- "print \"Operating Frequency = %0.2f Hz \"%f_oper "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Load generation at station A = 11.67 MW \n",
- "Load generation at station B = 2.33 MW \n",
- "Operating Frequency = 48.83 Hz \n"
- ]
- }
- ],
- "prompt_number": 20
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.21 page 171"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "C1=300 #MW\n",
- "C2=400 #MW\n",
- "G1=4 #%#droop characteristics of governer\n",
- "G2=6 #%#droop characteristics of governer\n",
- "L=400 #MW\n",
- "f=50 #Hz\n",
- "L1=C1*L/(C1+C2) #MW#Load on 300 MW generator\n",
- "L2=L*C2/(C1+C2) #MW#Load on 400 MW generator\n",
- "f01=f*(C1)/(C1-G1/100*L1) #Hz#/No load frequency\n",
- "print \"No load frequency of 300 MW generator = %0.2f Hz \"%f01 \n",
- "f02=f*(C2)/(C2-G2/100*L2) #Hz#/No load frequency\n",
- "print \"No load frequency of 400 MW generator = %0.2f Hz \"%f02"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "No load frequency of 300 MW generator = 51.17 Hz \n",
- "No load frequency of 400 MW generator = 51.78 Hz \n"
- ]
- }
- ],
- "prompt_number": 21
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.22 page 174"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "C1=200 #MW\n",
- "C2=100 #MW\n",
- "R1=1.5 #%#speed regulation\n",
- "R2=3 #%#speed regulation\n",
- "L=100 #MW#/Load on each bus\n",
- "f=50 #Hz\n",
- "RA=R1/100*f/C1 #Hz/MW\n",
- "RB=R2/100*f/C2 #Hz/MW\n",
- "#Let PA= generation at plant A\n",
- "#PB=2*L-PA will be generation at plant B\n",
- "#RA*PA=RB*PB\n",
- "PA=RB*2*L/(RA+RB) #MW\n",
- "PB=2*L-PA #MW\n",
- "print \"Load generation at plant A = %0.2f MW \"%PA \n",
- "print \"Load generation at plant B = %0.2f MW \"%PB\n",
- "Pt=PA-L #MW#/Power transfer\n",
- "print \"Power transfer from A to B = %0.2f MW \"%Pt "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Load generation at plant A = 160.00 MW \n",
- "Load generation at plant B = 40.00 MW \n",
- "Power transfer from A to B = 60.00 MW \n"
- ]
- }
- ],
- "prompt_number": 22
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.23 page 174"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from math import acos\n",
- "Z=1.5+1J*2.5 #ohm\n",
- "V=11 #kV\n",
- "P=20 #MW\n",
- "pf=0.8 #power factor\n",
- "theta=acos(pf*pi/180) \n",
- "I=P*1000/sqrt(3)/V/pf #\n",
- "from cmath import rect\n",
- "I=rect(I,-theta*pi/180) #A\\\n",
- "Vdrop=I*Z #V\n",
- "Vboost=Vdrop #V\n",
- "print \"Voltage boost needed at station A = \",(Vboost),\"V\""
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Voltage boost needed at station A = (2056.63661402+3225.71419437j) V\n"
- ]
- }
- ],
- "prompt_number": 23
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 5.24 page 174"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from math import degrees, atan, sin, acos, cos, pi\n",
- "Z=3+1J*9 #%#/impedence\n",
- "Z=Z/100 #p.u.#/Impedence\n",
- "I=1 #p.u.\n",
- "IZ=Z #p.u.\n",
- "print \"Part(a)\" \n",
- "#2*I**2-2*cos(del)=[abs(IZ)]**2\n",
- "cos_del=degrees(acos((2*I**2-(abs(IZ))**2)/2)) #degree\n",
- "print \"Phase angle between two station = %0.2f degree \"%cos_del \n",
- "angle_abc=87.277 #/degree\n",
- "theta=180-angle_abc-degrees(atan((IZ).imag/(IZ).real)) #degree\n",
- "Preal=I**2*cos(pi/180*theta) #p.u.\n",
- "print \"Real power transfer = %0.2f p.u. \"%Preal \n",
- "Preactive=I**2*sin(pi/180*theta) #p.u.\n",
- "print \"Reactive power transfer = %0.2f p.u.\"%Preactive \n",
- "print \"Part(b)\" \n",
- "#1.05**2+1**2-2*1.05*cos(del)=[abs(IZ)]**2\n",
- "cos_del=degrees(acos((1.05**2+1**2-(abs(IZ))**2)/2/1.05)) #degree\n",
- "print \"Phase angle between two station = %0.2f degree \"%cos_del \n",
- "angle_dbc=60.53 #/degree\n",
- "theta=degrees(atan((IZ).imag/(IZ).real))-angle_dbc#degree\n",
- "Preal=I**2*cos(pi/180*theta) #p.u.\n",
- "print \"Real power transfer = %0.2f p.u. \"%Preal \n",
- "Preactive=I**2*sin(pi/180*theta) #p.u.\n",
- "print \"Reactive power transfer = %0.2f p.u. \"%Preactive \n",
- "#Answer in the textbook is not accurate."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Part(a)\n",
- "Phase angle between two station = 5.44 degree \n",
- "Real power transfer = 0.93 p.u. \n",
- "Reactive power transfer = 0.36 p.u.\n",
- "Part(b)\n",
- "Phase angle between two station = 4.51 degree \n",
- "Real power transfer = 0.98 p.u. \n",
- "Reactive power transfer = 0.19 p.u. \n"
- ]
- }
- ],
- "prompt_number": 24
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file
diff --git a/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter6.ipynb b/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter6.ipynb
deleted file mode 100755
index 34c2fa23..00000000
--- a/Power_System_Operation_and_Control_by_B._R._Gupta/Chapter6.ipynb
+++ /dev/null
@@ -1,537 +0,0 @@
-{
- "metadata": {
- "name": "",
- "signature": "sha256:af61fb7eed7d4ff39296b02a1d4e98cabd8ac46cf41e81ede4624c653dbd8b75"
- },
- "nbformat": 3,
- "nbformat_minor": 0,
- "worksheets": [
- {
- "cells": [
- {
- "cell_type": "heading",
- "level": 1,
- "metadata": {},
- "source": [
- "Ch-6 : Reactive Power Control"
- ]
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 6.1 page 201"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from math import sqrt, atan, pi, degrees, cos\n",
- "from scipy.linalg import expm\n",
- "kV=220 #kV\n",
- "Z=0.8+1J*0.2 #pu\n",
- "V=1 #V(Voltage at load terminal)\n",
- "X=0.2+0.05 #pu(line and transformer reactance)\n",
- "P=(Z).real #pu\n",
- "Q=(Z).imag #pu\n",
- "BaseMVA=100 #MVA\n",
- "BasekV=220 #kV\n",
- "I=sqrt((P**2+Q**2)/V**2)*expm([[1J*atan(-(Z).imag/(Z).real)]])[0,0] #pu\n",
- "Vb=V+I*(X*expm([[1J*pi/2]]))[0,0] #pu(Voltage at 200 kV bus)\n",
- "fi_p=(atan((Vb).imag/(Vb).real)) #degree(power angle)\n",
- "Vb=abs(Vb)*kV #kV(Voltage at 200 kV bus)\n",
- "pf=cos(fi_p+(atan((Z).imag/(Z).real))) #power factor at 220 kV bus\n",
- "print \"Voltage at 220 kV bus = %0.2f kV \"%Vb \n",
- "print \"Power factor at 220 kV bus %0.4f lagging \"%pf"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Voltage at 220 kV bus = 235.15 kV \n",
- "Power factor at 220 kV bus 0.9076 lagging \n"
- ]
- }
- ],
- "prompt_number": 1
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 6.2 page 201"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from scipy.linalg import expm\n",
- "kV=220 #kV\n",
- "Z=0.8+1J*0.2 #pu\n",
- "V=1 #V(Voltage at load terminal)\n",
- "X=0.2+0.05 #pu(line and transformer reactance)\n",
- "P=(Z).real #pu\n",
- "Q=(Z).imag #pu\n",
- "BaseMVA=100 #MVA\n",
- "BasekV=220 #kV\n",
- "I=sqrt((P**2+Q**2)/V**2) #pu\n",
- "Vb=V+I*(X*expm([[1J*pi/2]])) #pu(Voltage at 200 kV bus)\n",
- "fi_p=degrees(atan((Vb).imag/(Vb).real)) #degree(power angle)\n",
- "Vb=abs(Vb)*kV #kV(Voltage at 200 kV bus)\n",
- "pf=cos(fi_p*pi/180) #power factor at 220 kV bus\n",
- "print \"Voltage at 220 kV bus = %0.2f kV \"%Vb \n",
- "print \"Power factor at 220 kV bus = %0.4f lagging \"%pf"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Voltage at 220 kV bus = 224.63 kV \n",
- "Power factor at 220 kV bus = 0.9794 lagging \n"
- ]
- }
- ],
- "prompt_number": 2
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 6.3 page 202"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from cmath import sinh, cosh, tan, sin\n",
- "import cmath as cmt\n",
- "l=350 #km(length of line)\n",
- "Z=cmt.rect(180,75*pi/180) #ohm/phase(Total)\n",
- "Y=cmt.rect(1*10**-3,90*pi/180) #Siemens/phase(Total)\n",
- "z=Z/l #ohm/km\n",
- "y=Y/l #Siemens/km\n",
- "re=l*cmt.sqrt(z*y) #\n",
- "Zc=cmt.sqrt(z/y) #ohm\n",
- "print \"Part(a) A,B,C,D parameters are : \" \n",
- "A=cosh(re) #unitless\n",
- "D=A #unitless\n",
- "B=Zc*sinh(re) #ohm\n",
- "C=sinh(re)/Zc #unitless\n",
- "A_mag=abs(A) #unitless\n",
- "A_angle=atan((A).imag/(A).real) #radian\n",
- "B_mag=abs(B) #ohm\n",
- "B_angle=atan((B).imag/(B).real) #radian\n",
- "C_mag=abs(C) #unitless\n",
- "C_angle=atan((C).imag/(C).real) #radian\n",
- "C_angle=(degrees(C_angle)+180)*180/pi #degree(Converting -ve to +ve angle)\n",
- "D_mag=abs(D) #unitless\n",
- "D_angle=atan((D).imag/(D).real) #radian\n",
- "print \"Magnitude of A : %0.2f \"% A_mag \n",
- "print \"Angle of A = %0.2f degree \"%degrees(A_angle) \n",
- "print \"Magnitude of B = %0.2f ohm\"%B_mag \n",
- "print \"Angle of B = %0.2f degree \"%degrees(B_angle) \n",
- "print \"Magnitude of C : %0.2f\"%C_mag \n",
- "print \"Angle of C = %0.2f degree \"%degrees(C_angle) \n",
- "print \"Magnitude of D : %0.2f\"%D_mag \n",
- "print \"Angle of D = %0.2f degree\" %degrees(D_angle)\n",
- "#60% series compensation\n",
- "B=B-1J*60/100*abs(Z)*sin(atan((Z).imag/(Z).real)) #ohm(considering series compensation=60%)\n",
- "#For Equivalent pi-circuit\n",
- "print \"Part(b) A,B,C,D parameters of compensated line are : \" \n",
- "Ydash=2/Zc*((cosh(re)-1)/sinh(re)) #S\n",
- "A=1+B*Ydash/2 #unitless\n",
- "D=A #unitless\n",
- "C=2*Ydash/2+B*(Ydash/2)**2 #unitless\n",
- "A_mag=abs(A) #unitless\n",
- "A_angle=atan((A).imag/(A).real) #radian\n",
- "B_mag=abs(B) #ohm\n",
- "B_angle=atan((B).imag/(B).real) #radian\n",
- "C_mag=abs(C) #unitless\n",
- "C_angle=atan((C).imag/(C).real) #radian\n",
- "C_angle=(degrees(C_angle)+180)*180/pi #radian(Converting -ve to +ve angle)\n",
- "D_mag=abs(D) #unitless\n",
- "D_angle=atan((D).imag/(D).real) #degree\n",
- "print \"Magnitude of A : %0.2f \"% A_mag \n",
- "print \"Angle of A = %0.2f degree \"%degrees(A_angle) \n",
- "print \"Magnitude of B = %0.2f ohm\"%B_mag \n",
- "print \"Angle of B = %0.2f degree \"%degrees(B_angle) \n",
- "print \"Magnitude of C : %0.2f\"%C_mag \n",
- "print \"Angle of C = %0.2f degree \"%degrees(C_angle) \n",
- "print \"Magnitude of D : %0.2f\"%D_mag \n",
- "print \"Angle of D = %0.2f degree\" %degrees(D_angle)\n",
- "#Answer for some parts are not accurate in the textbook."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Part(a) A,B,C,D parameters are : \n",
- "Magnitude of A : 0.91 \n",
- "Angle of A = 1.42 degree \n",
- "Magnitude of B = 174.83 ohm\n",
- "Angle of B = 75.45 degree \n",
- "Magnitude of C : 0.00\n",
- "Angle of C = 296930.22 degree \n",
- "Magnitude of D : 0.91\n",
- "Angle of D = 1.42 degree\n",
- "Part(b) A,B,C,D parameters of compensated line are : \n",
- "Magnitude of A : 0.97 \n",
- "Angle of A = 1.33 degree \n",
- "Magnitude of B = 78.37 ohm\n",
- "Angle of B = 55.91 degree \n",
- "Magnitude of C : 0.00\n",
- "Angle of C = 296850.37 degree \n",
- "Magnitude of D : 0.97\n",
- "Angle of D = 1.33 degree\n"
- ]
- }
- ],
- "prompt_number": 5
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 6.4 page 202"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from cmath import rect, sqrt\n",
- "from numpy import conj\n",
- "l=350 #km(length of line)\n",
- "Z=rect(180,75*pi/180) #ohm/phase(Total)\n",
- "Y=rect(1*10**-3,90*pi/180) #Siemens/phase(Total)\n",
- "z=Z/l #ohm/km\n",
- "y=Y/l #Siemens/km\n",
- "re=l*sqrt(z*y) #\n",
- "Zc=sqrt(z/y) #ohm\n",
- "print \"For Uncompensated Line, Constants are :\" \n",
- "B=Z #ohm#B Parameter\n",
- "A=1+Z*Y/2 #unitless#A Parameter\n",
- "D=A #unitless#D Parameter\n",
- "C=Y*(1+Z*Y/4) #S#C Parameter\n",
- "A_mag=abs(A) #unitless\n",
- "A_angle=atan((A).imag/(A).real) #radian\n",
- "B_mag=abs(B) #ohm\n",
- "B_angle=atan((B).imag/(B).real) #radian\n",
- "C_mag=abs(C) #unitless\n",
- "C_angle=atan((C).imag/(C).real) #radian\n",
- "C_angle=(degrees(C_angle)+180)*180/pi #radian(Converting -ve to +ve angle)\n",
- "D_mag=abs(D) #unitless\n",
- "D_angle=atan((D).imag/(D).real) #degree\n",
- "print \"Magnitude and Angle of B = %0.2f ohm & %0.2f degree \"%(B_mag,B_angle) \n",
- "print \"Magnitude and Angle of A = %0.2f & %0.2f degree \"%(A_mag,A_angle) \n",
- "print \"Magnitude and Angle of D = %0.2f & %0.2f degree \"%(D_mag,D_angle) \n",
- "\n",
- "print \"Magnitude of C is %0.2f\"%C_mag \n",
- "print \"Angle of C = %0.2f degree\"%C_angle\n",
- "print \"For Compensated Line, Constants are :\" \n",
- "B=Z-0.6*1J*406 #ohm#B Parameter\n",
- "A=1+conj(B)*Y/2 #unitless#A Parameter\n",
- "D=A #unitless#D Parameter\n",
- "C=Y*(1+Z*Y/4) #S#C Parameter\n",
- "A_mag=abs(A) #unitless\n",
- "A_angle=atan((A).imag/(A).real) #radian\n",
- "B_mag=abs(B) #ohm\n",
- "B_angle=atan((B).imag/(B).real) #radian\n",
- "C_mag=abs(C) #unitless\n",
- "C_angle=atan((C).imag/(C).real) #radian\n",
- "C_angle=(degrees(C_angle)+180)*180/pi #radian(Converting -ve to +ve angle)\n",
- "D_mag=abs(D) #unitless\n",
- "D_angle=atan((D).imag/(D).real) #degree\n",
- "print \"Magnitude and Angle of B = %0.2f ohm & %0.2f degree \"%(B_mag,B_angle) \n",
- "print \"Magnitude and Angle of A = %0.2f & %0.2f degree \"%(A_mag,A_angle) \n",
- "print \"Magnitude and Angle of D = %0.2f & %0.2f degree \"%(D_mag,D_angle) \n",
- "print \"Magnitude of C is %0.2f\"%C_mag \n",
- "print \"Angle of C = %0.2f degree\"%C_angle\n"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "For Uncompensated Line, Constants are :\n",
- "Magnitude and Angle of B = 180.00 ohm & 1.31 degree \n",
- "Magnitude and Angle of A = 0.91 & 0.03 degree \n",
- "Magnitude and Angle of D = 0.91 & 0.03 degree \n",
- "Magnitude of C is 0.00\n",
- "Angle of C = 5196.59 degree\n",
- "For Compensated Line, Constants are :\n",
- "Magnitude and Angle of B = 83.86 ohm & -0.98 degree \n",
- "Magnitude and Angle of A = 0.97 & 0.02 degree \n",
- "Magnitude and Angle of D = 0.97 & 0.02 degree \n",
- "Magnitude of C is 0.00\n",
- "Angle of C = 5196.59 degree\n"
- ]
- }
- ],
- "prompt_number": 6
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 6.5 page 203"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "kv1=220 #kv\n",
- "kv2=132 #kv\n",
- "baseMVA=200 #MVA\n",
- "#Base impedence in 132 kv circuit\n",
- "baseZ2=kv2**2/baseMVA #ohm\n",
- "z1=1J*75 #ohm\n",
- "z2=1J*70 #ohm\n",
- "z3=1J*90 #ohm\n",
- "z1=z1/baseZ2 #pu\n",
- "z2=z2/baseZ2 #pu\n",
- "z3=z3/baseZ2 #pu\n",
- "X_AD=1J*0.08+z1 #pu#Reactance from A to D\n",
- "X_BD=1J*0.08+z2 #pu#Reactance from A to D\n",
- "Zp=z3*X_AD*X_BD/(z3*X_AD+z3*X_BD+X_BD+X_AD) #parallel combination\n",
- "sc_D=baseMVA/abs(Zp) #MVA#Short Circuit MVA at D\n",
- "delQBYdelV=sc_D/kv2 #MVA/kv\n",
- "delQ=delQBYdelV*4 #MVar\n",
- "print \"Var injection at Bus D = %0.2f MVar\" %delQ\n",
- "#Answer in the textbook is not accurate."
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Var injection at Bus D = 18.48 MVar\n"
- ]
- }
- ],
- "prompt_number": 7
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 6.6 page 204"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from cmath import rect, acos\n",
- "A=rect(0.98,3*pi/180) #Constant\n",
- "B=rect(110,75*pi/180) #ohm/phase\n",
- "P=50 #MVA\n",
- "pf=0.8 #lagging\n",
- "V=132 #kV\n",
- "#Formula : Pr=|Vs|*|Vr|/|B|*cosd(Beta-delta)-|A|*|Vr|**2/|B|*cosd(Beta-alfa) :\n",
- "betaSUBdelta=acos((P*pf+abs(A)*V**2/abs(B)*cos(atan((B).imag/(B).real)-atan((A).imag/(A).real)))/V**2*abs(B)) \n",
- "Qr=V**2/abs(B)*sin(betaSUBdelta)-abs(A)*V**2/abs(B)*sin(atan((B).imag/(B).real)-atan((A).imag/(A).real)) #MVar\n",
- "Qr=P*0.6-Qr #MVar#Since load require lagging component\n",
- "print \"(a) Capacity of shunt compensation equipment = %0.2f MVar \" %Qr.real\n",
- "#part(b)\n",
- "#Formula : Pr=|Vs|*|Vr|/|B|*cosd(Beta-delta)-|A|*|Vr|**2/|B|*cosd(Beta-alfa) :\n",
- "P=0 #MW\n",
- "betaSUBdelta=acos((P*pf+abs(A)*V**2/abs(B)*cos(atan((B).imag/B.real)-atan((A).imag/(A).real)))/V**2*abs(B)) \n",
- "Qr=V**2/abs(B)*sin(betaSUBdelta)-abs(A)*V**2/abs(B)*sin(atan((B).imag/(B).real)-atan((A).imag/(A).real)) #MVar\n",
- "Qr=P*0.6-Qr #MVar#Since load require lagging component\n",
- "print \"(b) Capacity of shunt compensation equipment = %0.2f MVar \"%-Qr.real "
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "(a) Capacity of shunt compensation equipment = 45.91 MVar \n",
- "(b) Capacity of shunt compensation equipment = 3.33 MVar \n"
- ]
- }
- ],
- "prompt_number": 12
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 6.7 page 206"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from math import acos, sin\n",
- "V=220 #kV\n",
- "Z=20+1J*60 #ohm\n",
- "Pr=100 #MVA\n",
- "pf=0.8 #lagging pf\n",
- "P=Pr*10**6*pf/3 #W\n",
- "theta=acos(pf) #radian\n",
- "Q=Pr*10**6*sin(theta)/3 #Vars\n",
- "V1=V/sqrt(3)*1000 #V\n",
- "V2=V1 #V\n",
- "#ts**2*[1-(R*P+X*Q)/V1/V2]=V2/V1\n",
- "ts=sqrt(V2/V1/(1-((Z).real*P+(Z).imag*Q)/V1/V2)) \n",
- "tr=1/ts \n",
- "print \"Tap settings : ts = %0.2f \"%ts.real\n",
- "print \"tr = %0.2f \"%tr.real"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Tap settings : ts = 1.06 \n",
- "tr = 0.94 \n"
- ]
- }
- ],
- "prompt_number": 15
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 6.8 page 207"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from __future__ import division\n",
- "kV1=132 #kV\n",
- "kV2=33 #kV\n",
- "kV3=11 #kV\n",
- "MVA1=75 #MVA\n",
- "MVA2=50 #MVA\n",
- "MVA3=25 #MVA\n",
- "X=0.12 #p.u.\n",
- "#part(a)\n",
- "P=60 #MW\n",
- "V1=125 #kV\n",
- "V1=V1/kV1 #p.u.\n",
- "Q=MVA2/MVA1 #p.u.\n",
- "#V1=Vn+X*Q/Vn\n",
- "from sympy import symbols, solve\n",
- "Vn=symbols('Vn') \n",
- "eqn=Vn**2-V1*Vn+X*Q\n",
- "Vn=solve(eqn, Vn) #p.u.\n",
- "Vn=Vn[0] #p.u.\n",
- "Vn=Vn*kV1 #kV\n",
- "k=Vn/kV2 #Transformer ratio\n",
- "print \"Under Load condition, transformer ratio = %0.3f \"%k \n",
- "#part(b)\n",
- "V1=140 #kV\n",
- "V1=V1/kV1 #p.u.\n",
- "Q=MVA3/MVA1 #p.u.\n",
- "#V1=Vn+X*Q/Vn\n",
- "Vn=symbols('Vn') \n",
- "eqn=Vn**2-V1*Vn+X*Q\n",
- "Vn=solve(eqn, Vn) #p.u.\n",
- "Vn=Vn[0] #p.u.\n",
- "Vn=Vn*kV1 #kV\n",
- "k=Vn/kV2 #Transformer ratio\n",
- "print \"Under No Load condition, transformer ratio = %0.3f\" % k"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Under Load condition, transformer ratio = 0.375 \n",
- "Under No Load condition, transformer ratio = 0.157"
- ]
- },
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "\n"
- ]
- }
- ],
- "prompt_number": 16
- },
- {
- "cell_type": "heading",
- "level": 2,
- "metadata": {},
- "source": [
- "exa 6.9 page 209"
- ]
- },
- {
- "cell_type": "code",
- "collapsed": false,
- "input": [
- "from math import tan, acos\n",
- "V=132 #kV\n",
- "Z=25+1J*66 #ohm\n",
- "Pr=100 #MW\n",
- "pf=0.9 #lagging pf\n",
- "P=Pr*10**6/3 #W\n",
- "theta=acos(pf) #radian\n",
- "Q=Pr*10**6*tan(theta)/3 #vars\n",
- "V1=V/sqrt(3)*1000 #V\n",
- "V2=V1 #V\n",
- "#ts**2*[1-(R*P+X*Q)/V1/V2]=V2/V1\n",
- "ts=sqrt(V2/V1/(1-((Z).real*P+(Z).imag*Q)/V1/V2)) \n",
- "tr=1/ts \n",
- "print \"Tap settings : ts = %0.2f \"%ts.real \n",
- "print \"tr = %0.2f \"%tr.real"
- ],
- "language": "python",
- "metadata": {},
- "outputs": [
- {
- "output_type": "stream",
- "stream": "stdout",
- "text": [
- "Tap settings : ts = 1.22 \n",
- "tr = 0.82 \n"
- ]
- }
- ],
- "prompt_number": 18
- }
- ],
- "metadata": {}
- }
- ]
-} \ No newline at end of file