# Ch-10, Economic Operations of Steam Plants¶

## example 10.2 Page 193¶

In [3]:
from numpy import arange
from sympy.mpmath import quad
mp=250
def unit1(p1):
ic=0.2*p1+30
return ic
def unit2(p2):
ic=0.15*p2+40
return ic
mil=20
ttt=225
def un(ic):
p1=(ic-30)/0.2
p2=(ic-40)/0.15
return [p1, p2]

for x in arange(40,61,5):
[e,r]=un(x)
if ttt==e+r:
print "for the same incremental costs unit1 should supply %dMW and unit 2 shold supply %dMW,for equal sharing each unit should supply %3.1fMW"%(e,r,ttt/2)
break

opo=ttt/2
u1=quad(unit1,[opo,e])
u2=quad(unit2,[r,opo])
uuu=(u1+u2)*8760
print "\nyearly extra cost is (%3.2f-%3.2f)8760 =%dper year"%(u1,u2,uuu)
print "\nthis if the load is equally shared by the two units an extra cost of Rs.%d will be incurred.in other words economic loading would result in saving of Rs.%dper year"%(uuu,uuu)

for the same incremental costs unit1 should supply 125MW and unit 2 shold supply 100MW,for equal sharing each unit should supply 112.0MW

yearly extra cost is (698.10-670.80)8760 =11991564per year

this if the load is equally shared by the two units an extra cost of Rs.11991564 will be incurred.in other words economic loading would result in saving of Rs.11991564per year


## example 10.3 Page 198¶

In [4]:
def unit1(p1):
ic=0.2*p1+30
return ic
def unit2(p2):
ic=0.15*p2+40
return ic
tol=400
pd=50
u1c=5
u2c=1/0.15#from example10_1
p1pd=u1c/(u1c+u2c)
p2pd=u2c/(u1c+u2c)
pi=p1pd*pd
pt=p2pd*pd
print "p1=%1.5fMW\np2=%1.5fMW"%(pi,pt)
p11=pi+tol/2
p22=pt+tol/2
up1=unit1(p11)
up2=unit2(p22)
print "\nthe total load on 2 units would be %3.2fMW and %3.2fMW respectevily. it is easy to check that incremental cost will be same for two units at these loading.\n incremental cost of unit1 is %3.2fRs.MW,\n incremantal cost of unit 2 is %3.2fRs./MW"%(p11,p22,up1,up2)

p1=21.42857MW
p2=28.57143MW

the total load on 2 units would be 221.43MW and 228.57MW respectevily. it is easy to check that incremental cost will be same for two units at these loading.
incremental cost of unit1 is 74.29Rs.MW,
incremantal cost of unit 2 is 74.29Rs./MW


## example10.5 Page 200¶

In [5]:
i1=0.8
i2=1.0
l1=complex(0.04,0.12)
l2=complex(0.03,0.1)
l3=complex(0.03,0.12)
vl=1

i3=i1+i2
v1=vl+i3*(l1)+i1*(l2)
v2=vl+i3*(l1)+i2*(l3)
p1=(i1*v1).real
p2=(i2*v2).real
cos1=(v1).real/abs(v1)
cos2=(v2).real/abs(v2)
b11=abs(((l1).real+(l2).real)/(v1**2*cos1**2))
b22=abs(((l1).real+(l3).real)/(v2**2*cos2**2))
b12=abs(((l1).real/(v1*v2*cos1*cos2)))
pl=(p1**2)*b11+(p2**2)*b22+2*p1*p2*b12
print "i1+i3=%dpu\nv1=%1.3f+%1.3fp.u\nv2=%1.3f+%1.3fp.u\np1=%1.3fp.u\np2=%1.3fp.u\ncos(ph1)=%1.3f\ncos(ph2)=%1.3f\nb11=%1.5fp.u\nb22=%1.5fp.u\nb12=%1.5fp.u\npl=%1.6fp.u"%(i3,v1.real,(v1).imag,v2.real,(v2).imag,p1,p2,cos1,cos2,b11,b22,b12,pl)

i1+i3=1pu
v1=1.096+0.296p.u
v2=1.102+0.336p.u
p1=0.877p.u
p2=1.102p.u
cos(ph1)=0.965
cos(ph2)=0.957
b11=0.05827p.u
b22=0.05764p.u
b12=0.03312p.u
pl=0.178800p.u


## example10.7 Page 206¶

In [6]:
from math import atan, cos
za=complex(0.03,0.09)
zb=complex(0.1,0.3)
zc=complex(0.03,0.09)
zd=complex(0.04,0.12)
ze=complex(0.04,0.12)
ia=complex(1.5,-0.4)
ib=complex(0.5,-0.2)
ic=complex(1,-0.1)
id=complex(1,-0.2)
ie=complex(1.5,-0.3)
il1=.4
il2=.6
na1=1 ;nb1=0.6; nc1=0; nd1=.4; ne1=.6
na2=0 ;nb2=-0.4; nc2=1 ;nd2=.4; ne2=.6
vl=1
#some thing is messed
v1=vl+za*ia
v2=vl-zb*ib+zc*ic
a1=atan((ia).imag/(ia).real)
a2=atan((ic).imag/(ic).real)
cosa=cos(a1-a2)
cosph1=cos(atan((v1).imag/(v1).real)-a1)
cosph2=cos(atan((v2).imag/(v2).real)-a2)
b11=(na1**2*(za).real+nb1**2*(zb).real+nc1**2*(zc).real+nd1**2*(zd).real+ne1**2*(ze).real)/(abs(v1)**2*cosph1)
b22=(na2**2*(za).real+nb2**2*(zb).real+nc2**2*(zc).real+nd2**2*(zd).real+ne2**2*(ze).real)/((abs(v2)**2)*cosph2)
bb12=(abs(v1)*abs(v2)*cosph1*cosph2)
ab12=(na2*na1*(za).real+nb2*nb1*(zb).real+nc1*nc2*(zc).real+nd2*nd1*(zd).real+ne2*ne1*0.03)
b12=cosa*ab12/bb12
print "bus voltages at 2 buses are \nv1=%1.3f+i%1.3f,\nv2=%1.3f+i%1.3f"%((v1).real,(v1).imag,(v2).real,(v2).imag)
print "\nloss coffecients are \nb11=%1.5fp.u\nb22=%1.5fp.u\nb12=%1.5fp.u \n"%(b11,b22,b12)
print "loss coffecients in actual values is \nb11=%eM(W)-1\nb22=%eM(W)-1\nb12=%eM(W)-1\n"%(b11/100,b22/100,b12/100)

bus voltages at 2 buses are
v1=1.081+i0.123,
v2=0.929+i-0.043

loss coffecients are
b11=0.07877p.u
b22=0.07735p.u
b12=-0.00714p.u

loss coffecients in actual values is
b11=7.877236e-04M(W)-1
b22=7.734557e-04M(W)-1
b12=-7.136298e-05M(W)-1



## example 10.8 Page 207¶

In [7]:
r1=22 ;r2=30 ;q1=0.2 ;q2=0.15
b22=0; b12=0 ;p1=100 ;pl=15#transmission losses are 0
b11=pl/(p1)**2
def power(x): #mathematical computation
p1=(x-r1)/(q1+2*b11*x)
p2=(x-r2)/q2
return [p1, p2]
[a,b]=power(60)
print "l1=1/(1-%.3f*p1)\nl2=[1/(1-0)]=1\ngiven lamda=60\nsince ic1*l1=lamda  ic2*l2=lamda\ntotal load=%dMW"%(b11*2,a+b-(b11*a**2))

l1=1/(1-0.000*p1)
l2=[1/(1-0)]=1
given lamda=60
since ic1*l1=lamda  ic2*l2=lamda
total load=390MW


## example 10.9 Page 208¶

In [8]:
from sympy.mpmath import quad
r1=22 ;r2=30 ;q1=0.2 ;q2=0.15
b22=0; b12=0 ;p1=100 ;pl=15#transmission losses are 0
b11=pl/(p1)**2
def power(x): #mathematical computation
p1=(x-r1)/(q1+2*b11*x)
p2=(x-r2)/q2
return [p1,p2]
[a,b]=power(60)
pt=a+b-(b11*a**2)
z=quad(lambda u:q1*u+r1,[a,161.80])
y=quad(lambda v:q2*v+r2,[b,162.5])
m=z+y
print "net change in cost =Rs.%dper hour"%(m)
print "\nthus scheduling the generation by taking transmission losses into account would mean a saving of Rs.%dper hour in fuel cost"%(m)

net change in cost =Rs.-3757per hour

thus scheduling the generation by taking transmission losses into account would mean a saving of Rs.-3757per hour in fuel cost


## example 10.10 Page 208¶

In [9]:
b11=0.001
b12=-0.0005
b22=0.0024
q1=0.08
r1=16
q2=0.08
r2=12
lamda=20

p2=0
for x in range(1,5):
p1=(1-(r1/lamda)-(2*p2*b12))/((q1/lamda)+2*b11)
p2=(1-(r2/lamda)-(2*p1*b12))/((q2/lamda)+2*b22)

pl=b11*p1**2+2*b12*p1*p2+b22*p2**2
pr=p1+p2-pl
print "p1=%2.1fMW,p2=%2.1fMW\npl=%1.1fMW\npower recevied %2.1fMW"%(p1,p2,pl,pr)

p1=189.2MW,p2=135.1MW
pl=54.1MW
power recevied 270.3MW


## example 10.11 Page 209¶

In [10]:
a1=561 ;b1=7.92 ;c1=0.001562
a2=310 ;b2=7.85 ;c2=0.00194
ce=c1*c2/(c1+c2)
print "ce=%e"%(ce)
be=((b1/c1)+(b2/c2))*ce
print "be=%1.4f"%(be)
ae=a1-((b1**2)/4*c1)+a2-((b2**2)/4*c2)+((be**2)/4*ce)
print "ae=%3.3f \ncost characteristics of composite unit for demand pt is \nct=%3.3f+%1.4f*p1+%ep1**2"%(ae,ae,be,ce)

ce=8.652998e-04
be=7.8888
ae=870.959
cost characteristics of composite unit for demand pt is
ct=870.959+7.8888*p1+8.652998e-04p1**2


## example 10.12 Page 210¶

In [11]:
a1=7700 ;b1=52.8 ;c1=5.5*10**-3
a2=2500; b2=15 ;c2=0.05#given eqution
plo=200 ;pup=800
ct=1000
l=[500,900,1200,500] ;t=[6, 16 ,20 ,24]#from given graph
def cost(y):
p1=(2*c2*y-(b1-b2))/(2*(c1+c2))
p2=y-p1
return [p1,p2]
ma=max(l)
mi=min(l)
for x in range(0,3):
[e ,g]=cost(l[x])
if e<plo or g<plo or e>pup or g>pup:
if e<plo or g<plo:
v=min(e,g)
[u for u, j in enumerate((e,g)) if j == v]
if u==0:
e=plo
g=l(x)-e
else:
g=plo
e=l[x]-g

print "\np1=%3.2fMW\tp2=%3.2fMW"%(e,g)

p1=1000.00MW	p2=200.00MW


## example 10.13 Page 211¶

In [12]:
a1=2000 ;b1=20 ;c1=0.05; p1=350; p2=550
a2=2750 ;b2=26 ;c2=0.03091
def cost(a,b,c,p):
co=a+b*p+c*p**2
return co
print "(a)"
toco=cost(a1,b1,c1,p1)+cost(a2,b2,c2,p2)
print "total cost when each system supplies its own load Rs%.3f per hour"%(toco)
l=p1+p2
p11=(b2-b1+2*c2*l)/(2*(c1+c2))
p22=l-p11
totco=cost(a1,b1,c1,p11)+cost(a2,b2,c2,p22)
sav=toco-totco
tilo=p11-p1
print "(b)"
print "\n total cost when load is supplied in economic load dispatch method Rs%d per hour \n saving %.3f \n tie line load %.3f MW"%(totco,sav,tilo)

(a)
total cost when each system supplies its own load Rs41525.275 per hour
(b)

total cost when load is supplied in economic load dispatch method Rs41447 per hour
saving 77.277
tie line load 30.905 MW


## example10.14 Page 212¶

In [13]:
a1=5000 ;b1=450 ;c1=0.5 #for system 1
e1=0.02 ;e2=-0.02#error
a1c=a1*(1-e1); b1c=b1*(1-e1) ;c1c=c1*(1-e1)
a2c=a1*(1-e2) ;b2c=b1*(1-e2) ;c2c=c1*(1-e2)
tl=200
def cost(a,b,c,p):
co=a+b*p+c*p**2
return co
p11=(b2c-b1c+2*c2c*tl)/(2*(c1c+c2c))
p22=tl-p11
totco=cost(a1c,b1c,c1c,p11)+cost(a2c,b2c,c2c,p22)
print "\npower at station 1 is %dMW \t power at station 2 is %dMW \n total cost on economic critieria method Rs%d per hour"%(p11,p22,totco)
tocoe=cost(a1c,b1c,c1c,tl/2)+cost(a2c,b2c,c2c,tl/2)
eop=tocoe-totco
print "\nextra operating cost due to erroneous scheduling Rs.%d per hour"%(eop)

power at station 1 is 111MW 	 power at station 2 is 89MW
total cost on economic critieria method Rs109879 per hour

extra operating cost due to erroneous scheduling Rs.121 per hour


## example 10.16 Page 215¶

In [14]:
#given
ia=32 ;ib=32 ;ic=1.68; f=10**5
wt=18; rt=24-wt
p=30
def inpu(a,b,c,f,t,p):
In=(a+b*p+c*p**2)*f*t
return In
hi1=inpu(ia,ib,ic,f,wt,p); hi2=inpu(ia,ib,ic,f,rt,p/2)
print "(a)"
print "for full load condition for %d hours is %ekj \n for half load condition for%d s %ekj \n total load %ekj"%(wt,hi1,rt,hi2,hi1+hi2)
print "(b)"
te=p*wt+(p/2)*rt
ul=te/24
hin=inpu(ia,ib,ic,f,24,ul)
sav=hi1+hi2-hin
savp=sav/(te*1000)
print "\n total energy produced\t%dMW \n unifor load\t%dMW \n heat input under uniform load condition %ekj \n saving in heat energy %ekj \n saving in heat energy per kWh %dkj/kWh"%(te,ul,hin,sav,savp)

(a)
for full load condition for 18 hours is 4.507200e+09kj
for half load condition for6 s 5.340000e+08kj
total load 5.041200e+09kj
(b)

total energy produced	630MW
unifor load	26MW
heat input under uniform load condition 4.799232e+09kj
saving in heat energy 2.419680e+08kj
saving in heat energy per kWh 384kj/kWh


## example 10.17 Page 216¶

In [16]:
import numpy as np
#given
a1=450 ;b1=6.5 ;c1=0.0013
a2=300 ;b2=7.8 ;c2=0.0019
a3=80 ;b3=8.1 ;c3=0.005
tl=800#total load
ma = [600, 400, 200]
mi = [100, 50, 50]
d=np.mat([[1 ,1, 1] ,[2*c1, -2*c2, 0], [0, -2*c2, 2*c3]])
p=np.mat([[tl], [(b2-b1)], [(b2-b3)]])
pp=(d**-1)*p #matrix inversion method
print "\nloads on generaating station by economic creatirian method isp1=%fMW,p2=%fMW,p3=%fMW"%(pp[0],pp[1],pp[2])
for i in range(0,3):
if pp[i]<mi[i]:
pp[i]=mi[i]

if pp[i]>mi[i]:
pp[i]=ma[i]

pp[1] = tl-pp[0] - pp[2]
print "\nloads on generating station under critical conditions p1=%dMW p2=%dMW p3=%dMW"%(pp[0],pp[1],pp[2])

loads on generaating station by economic creatirian method isp1=669.734705MW,p2=116.134272MW,p3=14.131023MW

loads on generating station under critical conditions p1=600MW p2=150MW p3=50MW