You are on page 1of 9

from tkinter import *

import math as m

class Gui(Frame):
def __init__(self):
Frame.__init__(self)
self.pack()
self.master.title("Capacitor Correction")

self.phasename=Label(self,text="Single or Three phase?:")


self.phasename.pack()

self.phase=Entry(self,name="phase",width=10, justify=CENTER)
self.phase.pack(side=TOP, padx=10,pady=10)

self.powername=Label(self,text="Enter real power in kilowatts:")


self.powername.pack()

self.power=Entry(self,name="power",width=10, justify=CENTER)
self.power.pack(side=TOP, padx=10,pady=10)

self.currentname=Label(self,text="Enter current in amps:")


self.currentname.pack()

self.current=Entry(self,name="current",width=10, justify=CENTER)
self.current.pack(side=TOP, padx=10,pady=10)

self.vtypename=Label(self,text="Line to line (LL)\nor\nline to neutral (LN):")


self.vtypename.pack()

self.vtype=Entry(self,name="vtype",width=10, justify=CENTER)
self.vtype.pack(side=TOP, padx=10,pady=10)
self.vtype.config(state=DISABLED)

self.voltagename=Label(self,text="Enter voltage in volts:")


self.voltagename.pack()

self.voltage=Entry(self,name="voltage",width=10, justify=CENTER)
self.voltage.pack(side=TOP, padx=10,pady=10)

self.frequencyname=Label(self,text="Enter frequency in Hertz:")


self.frequencyname.pack()

self.frequency=Entry(self,name="frequency",width=10, justify=CENTER)
self.frequency.pack(side=TOP, padx=10,pady=10)

self.pfname=Label(self,text="Power factor result:")


self.pfname.pack()

self.pf=Entry(self,name="pf",width=10, justify=CENTER)
self.pf.pack(side=TOP, padx=10,pady=10)
self.pf.config(state=DISABLED)

self.apname=Label(self,text="Apparent power (kVA):")


self.apname.pack()

self.ap=Entry(self,name="ap",width=10, justify=CENTER)
self.ap.pack(side=TOP, padx=10,pady=10)
self.ap.config(state=DISABLED)

self.rpname=Label(self,text="Reactive power(kVAR):")
self.rpname.pack()

self.rp=Entry(self,name="rp",width=10, justify=CENTER)
self.rp.pack(side=TOP, padx=10,pady=10)
self.rp.config(state=DISABLED)

self.ccname=Label(self,text="Correction Capacitor (F):")


self.ccname.pack()

self.cc=Entry(self,name="cc",width=10, justify=CENTER)
self.cc.pack(side=TOP, padx=10,pady=10)
self.cc.config(state=DISABLED)

self.but1=Button(self, text='OK',command=self.press)
self.but1.pack()

self.but3=Button(self, text='CLEAR',command=self.clear)
self.but3.pack()

def clear(self):
self.phase.delete(0, 'end')
self.power.delete(0, 'end')
self.voltage.delete(0, 'end')
self.frequency.delete(0, 'end')
self.current.delete(0, 'end')

self.ap.config(state=NORMAL)
self.ap.delete(0, 'end')
self.ap.config(state=DISABLED)

self.pf.config(state=NORMAL)
self.pf.delete(0, 'end')
self.pf.config(state=DISABLED)

self.rp.config(state=NORMAL)
self.rp.delete(0, 'end')
self.rp.config(state=DISABLED)

self.cc.config(state=NORMAL)
self.cc.delete(0, 'end')
self.cc.config(state=DISABLED)

def press(self):
pn=self.phase.get()

if pn=="single":
self.ap.config(state=NORMAL)
self.ap.delete(0, 'end')
self.ap.config(state=DISABLED)

self.pf.config(state=NORMAL)
self.pf.delete(0, 'end')
self.pf.config(state=DISABLED)

self.rp.config(state=NORMAL)

self.rp.delete(0, 'end')
self.rp.config(state=DISABLED)

self.cc.config(state=NORMAL)
self.cc.delete(0, 'end')
self.cc.config(state=DISABLED)

p=self.power.get()
c=self.current.get()
v=self.voltage.get()
f=self.frequency.get()

pf=(1000*(float(p))/(float(v)*float(c)))
ap=float(v)*float(c)/1000
rp=m.sqrt((float(ap)**2)-(float(p))**2)
cc=1000000000*(float(rp))/(2*m.pi*float(f)*(float(v))**2)

self.ap.config(state=NORMAL)
self.ap.insert(INSERT,ap)
self.ap.config(state=DISABLED)

self.pf.config(state=NORMAL)
self.pf.insert(INSERT,pf)
self.pf.config(state=DISABLED)

self.rp.config(state=NORMAL)
self.rp.insert(INSERT,rp)
self.rp.config(state=DISABLED)

self.cc.config(state=NORMAL)

self.cc.insert(INSERT,cc)
self.cc.config(state=DISABLED)

elif pn=="three":
p=self.power.get()
c=self.current.get()
v=self.voltage.get()
f=self.frequency.get()
self.vtype.config(state=NORMAL)
name=self.vtype.get()
if name=='LL' or name=='ll':
self.ap.config(state=NORMAL)
self.ap.delete(0, 'end')
self.ap.config(state=DISABLED)

self.pf.config(state=NORMAL)
self.pf.delete(0, 'end')
self.pf.config(state=DISABLED)

self.rp.config(state=NORMAL)
self.rp.delete(0, 'end')
self.rp.config(state=DISABLED)

self.cc.config(state=NORMAL)
self.cc.delete(0, 'end')
self.cc.config(state=DISABLED)

pf=(1000*(float(p))/(m.sqrt(3)*float(v)*float(c)))
ap=m.sqrt(3)*float(v)*float(c)/1000
rp=m.sqrt((float(ap)**2)-(float(p))**2)

cc=1000000000*(float(rp))/(2*m.pi*float(f)*(float(v))**2)

self.ap.config(state=NORMAL)
self.ap.insert(INSERT,ap)
self.ap.config(state=DISABLED)

self.pf.config(state=NORMAL)
self.pf.insert(INSERT,pf)
self.pf.config(state=DISABLED)

self.rp.config(state=NORMAL)
self.rp.insert(INSERT,rp)
self.rp.config(state=DISABLED)

self.cc.config(state=NORMAL)
self.cc.insert(INSERT,cc)
self.cc.config(state=DISABLED)

elif name=='LN' or name=='ln':


self.ap.config(state=NORMAL)
self.ap.delete(0, 'end')
self.ap.config(state=DISABLED)

self.pf.config(state=NORMAL)
self.pf.delete(0, 'end')
self.pf.config(state=DISABLED)

self.rp.config(state=NORMAL)
self.rp.delete(0, 'end')
self.rp.config(state=DISABLED)

self.cc.config(state=NORMAL)
self.cc.delete(0, 'end')
self.cc.config(state=DISABLED)

pf=(1000*(float(p))/(3*float(v)*float(c)))
ap=3*float(v)*float(c)/1000
rp=m.sqrt((float(ap)**2)-(float(p))**2)
cc=1000000000*(float(rp))/(6*m.pi*float(f)*(float(v))**2)

self.ap.config(state=NORMAL)
self.ap.insert(INSERT,ap)
self.ap.config(state=DISABLED)

self.pf.config(state=NORMAL)
self.pf.insert(INSERT,pf)
self.pf.config(state=DISABLED)

self.rp.config(state=NORMAL)
self.rp.insert(INSERT,rp)
self.rp.config(state=DISABLED)

self.cc.config(state=NORMAL)
self.cc.insert(INSERT,cc)
self.cc.config(state=DISABLED)

else:
messagebox.showinfo("Message","Check your input")

Gui().mainloop()

You might also like