Gui Based Pwrsimulator by Python
Gui Based Pwrsimulator by Python
Gui Based Pwrsimulator by Python
on
In
NUCLEAR SCIENCE & ENGINEERING
By
DIPANKAR GOLDER
2K14/NSE/09
Under the Guidance of
Dr. Nitin K. Puri
(Supervisor)
Assistant Professor, Applied Physics
DTU, New Delhi
Delhi-110042
YEAR 2016
CERTIFICATE
This is to certify that the Major project (AP-811) report entitled GUI BASED
PRESSURIZER
WATER
REACTOR
SIMULATOR
USING
student this work has not been submitted to any other university/institute for the
award of any degree or diploma.
( Prof. S. C. Sharma)
Delhi-110042
Delhi-110042
Acknowledgement
First and foremost I would like to thank my parents for their blessings, support and guidance
throughout my academic career.
I am grateful to Professor S. C. Sharma, Head of Department, Applied Physics, Delhi
Technological University, Delhi for his constant support and motivation.
I sincerely thank my supervisor Dr. Nitin K. Puri, Assistant Professor, Applied Physics, Delhi
Technological University for all his support and guidance. His calm attitude and simple nature
has always motivated me to how to do any work.
I express my sincere gratitude to all the faculty of Department of Applied Physics. Their moral
support and encouragement has played an important part in completion of my masters degree.
I thank all my friends to keep me cheerful and make me smile whenever I feel low.
Dipankar Golder
2K14/NSE/09
DECLARATION
I declare that this written submission represents my ideas in my own words and
where others' ideas or words have been included, I have adequately cited and
referenced the original sources. I also declare that I have adhered to all principles
of academic honesty and integrity and have not misrepresented or fabricated or
falsified any idea/data/fact/source in my submission. I understand that any
violation of the above will be cause for disciplinary action by the Institute and can
also evoke penal action from the sources which have thus not been properly cited
or from whom proper permission has not been taken when needed.
PLACE:
DIPANKAR GOLDER
DATE:
(2K14/NSE/09)
LIST OF FIGURES
Table of Contents
Certificate
ii
Candidate Declaration
iii
Acknowledgement
iv
List of Tables
vi
List of Figures
vii
Abstract
ix
Chapter 1: Introduction
1.1: Purpose
12
12
24
25
26
3.5 :Outline idea for desiging the PWR simulator and Programming
28
46
4.1: Result
46
4.2: Conclusion
48
REFERENCES
Abstract
This Thesis consists on the pressurized water reactor (PWR) simulator by using python language.
The main purpose of this thesis is educational simulator, there are required simplifications and
assumptions complete in this models, which may not replicate any exact vendors plan or
performance.
This thesis is write with the statement that the nuclear reactors, how it works and classification
of nuclear reactor. But mainly focus on each and every individual components of pressurizer
water reactor.
The simulator model of PWR shown can be studied to understand the internal operation of PWR
such as movement of control rod, variation of temperature and its effect on output power of the
reactor. In this simulation model I have mainly concentrated on the effect of variation of
temperature on the output power depending upon the movement of control rod. Assigning the
movement of control to a program is difficult task. That is making a program to understand the
mechanical motion of control rod has been typical. For this in the program the logic was given so
that when control rod moves up the previous position gets completely deleted and if we again
move the control rod up then then the previous increment of control rod gets deleted. The reverse
process will be happening when we move the control rod down.
We can say that understanding the motion of water, control rod and variation in temperature is
affecting the output power and this can be clearly understood in this thesis. In future this work
can be extended by introducing some other complex parameter such as stress or combination of
complex parameters such as temperature and stress etc. introducing these things can make
understanding of internal operation of PWR simulator more easier.
CHAPTER 1
7
INTRODUCTION
1.1 PURPOSE
This Thesis consists on the pressurized water reactor (PWR) simulator by using python
language. The main purpose of this thesis is educational
simplifications and assumptions complete in this models, which may not replicate any exact
vendors plan or performance.
This thesis is write with the statement that the nuclear reactors, how it works and classification
of nuclear reactor. But mainly focus on each and every individual components of pressurizer
water reactor, description generally found in nuclear engineering books. .
.The manual cover fundamental NPP plant operations, similar to plant load moving, and trips and
recuperation e.g. turbine excursion and reactor scram. Also, it covers plant reactions to
breakdown events. Some breakdown events lead to reactor scram or turbine trip. Other serious
breakdowns lead to accident situation bringing about incitation of the uninvolved center cooling
security system
It should be specified that the components and processes modeled in the simulator represent
realistic PWR characteristics. In any case, with the purpose of the simulator,, there are important
improvements and suppositions made in the models, which may not reflect a particular
merchant's configuration or execution.
In particular, the reactions showed by the simulator, under mishap circumstances, ought not be
utilized for security analysis purposes, in spite of the way that they are reasonable with the
purpose of educational training.
Most importantly, the responses manifested by the simulator, under accident situations, should
not be used for safety analysis purposes, despite the fact that they are realistic for the purpose of
educational training. As such, it is appropriate to consider that those simulator model responses
perhaps only provide first order estimates of the plant transients under accidents scenarios.
Pressurized water reactors were mainly designed for submarines. The research and growth works
were performed by Westing house Bettis Laboratories and Knolls Atomic Power Laboratory. As
a result of this initial research and growth work, a commercial PWR was designed and developed
for nuclear power plant applications. Eventually, several commercial PWR suppliers emerge:
Wilcox, Westinghouse and Combustion Babcock Engineering in the USA; Framatone in France
and Siemens in Germany. Subsequently, Agip Nucleari in Italy and Mitsubishi in Japan became
PWR licensees.
Over the past three decades, many PWRs were in service, accumulating thousands of reactor
years of operating experience. In recent years, new generations of advanced PWR nuclear power
plants have been developed, building upon the past success, as well as applying lessons learned
from past operating experience. The advanced PWR design incorporates efforts by utilities, and
the regulators to establish standardized solutions to meet their requirements. This is because the
advanced PWR design has to be suitable for deployment in many countries. As well, the design
has to be economical. In this context, important programmed in the development of advanced
PWRs were initiated in the mid 1980s in the USA. In 1984, the Electric Power Research Institute
(EPRI), in cooperation with US Department of Energy (DOE), and with the participation of US
nuclear plant designers, and several foreign utilities, initiated a programmed to develop utility
requirements to guide the advanced PWR design. As a result of this effort, utilities requirements
were established for large PWRs having ratings of 1200 MW(e) to 1300 MW(e), and for midsize PWRs in the 600 MW range. The effort for advanced PWR design was led by Westinghouse
for the AP The effort for advanced PWR design was led by Westinghouse for the AP-600 and
AP-1000design, which received NRC certification in 1999. Westinghouse indicates that the AP600and AP-1000 designs.
.CHAPTER
LITERATURE REVIEW
2.1 FISSION AND FUSION:
Nuclear fusion is the reaction in which two or more nuclei combine, forming a
new element with a higher atomic number(more protons in the nucleus). The energy
released in fusion is related to E = mc 2 (Einsteins famous energy-mass equation). On
Earth, the most likely fusion reaction is DeuteriumTritium reaction. Deuterium and Tritium
are isotopes of hydrogen.
2
1Deuterium
+ n = 23692U
followed by
236
92U
2.1.1FISSION VS FUSION
Atoms are held together by two of the four fundamental forces of nature: the weak and
strong nuclear bonds. The total amount of energy held within the bonds of atoms is
called binding energy. The more binding energy held within the bonds, the more stable the
atom. Moreover, atoms try to become more stable by increasing their binding energy.
The nucleon of an iron atom is the most stable nucleon found in nature, and it neither fuses
nor splits. This is why iron is at the top of the binding energy curve. For atomic nuclei
lighter than iron and nickel, energy can be extracted by combining iron and nickel nuclei
together through nuclear fusion. In contrast, for atomic nuclei heavier than iron or nickel,
energy can be released by splitting the heavy nuclei through nuclear fission.
The notion of splitting the atom arose from New Zealand-born British physicist Ernest
Rutherford's work, which also led to the discovery of the proton.
proportions, under what is known as Gaussian distribution, the magnetic field must be
maintained for the reactor to function, and control rods must be used to slow down or speed
up neutron activity.
Fusion happens when two lighter elements are forced together by enormous energy
(pressure and heat) until they fuse into another isotope and release energy. The energy
needed to start a fusion reaction is so large that it takes an atomic explosion to produce this
reaction. Still, once fusion begins, it can theoretically continue to produce energy as long as
it is controlled and the basic fusing isotopes are supplied.
The most common form of fusion, which occurs in stars, is called "D-T fusion," referring to
two hydrogen isotopes: deuterium and tritium. Deuterium has 2 neutrons and tritium has 3,
more than the one proton of hydrogen. This makes the fusion process easier as only the
charge between two protons needs to be overcome, because fusing the neutrons and the
proton requires overcoming the natural repellent force of like-charged particles (protons
have a positive charge, compared to neutrons' lack of charge) and a temperature for an
instant of close to 81 million degrees Fahrenheit for D-T fusion (45 million Kelvin or
slightly less in Celsius). For comparison, the sun's core temperature is roughly 27 million F .
Once this temperature is reached, the resulting fusion has to be contained long enough to
generate plasma, one of the four states of matter. The result of such containment is a release
of energy from the D-T reaction, producing helium (a noble gas, inert to every reaction) and
spare neutrons than can "seed" hydrogen for more fusion reactions. At present, there are no
secure ways to induce the initial fusion temperature or contain the fusing reaction to achieve
a steady plasma state, but efforts are ongoing.
A third type of reactor is called a breeder reactor. It works by using fission to create
plutonium that can seed or serve as fuel for other reactors. Breeder reactors are used
extensively in France, but are prohibitively expensive and require significant security
measures, as the output of these reactors can be used for making nuclear weapons as well.
12
13
c) Control rod: It is used control the rate of reaction. Special control rod are used to enable the
core to sustain a low level of power efficiency.
d) Coolant: It is used to transfer the heat it. In light water reactor water is used as coolant.
e) Pressure tube: It is made up of steel and used for hold the fuel and transfer the coolant
through surrounding moderator.
f) Steam generator: Part of cooling system where the high pressure primary coolant bringing
heat from reactor is used to make steam for the turbine. It is also Known as heat exchanger.
g) Containment: It is made by steel or concrete.It protects from radiation which may occurs in
case of any serious malfunction inside.
REACTION
Nuclear reactor are two types by nuclear reaction A) Nuclear fission , B) Nuclear fusion.
Nuclear fusion also two types i) Thermal reactor, ii) Fast neutron. Given blew about this
description.
of neutron capture by uranium-238 compared with the fast neutrons that originally come
out from fission .It allowing use of natural uranium or low-enhanced uranium fuel. The
moderator is often the coolant, more often u water under high pressure and to increase
the boiling point . These are encompassed by a reactor vessel, instrumentation to screen and
control the reactor, radiation protecting, and a containment building.
Fast-neutron reactors: Fast neutron reactors utilize fast neutrons to bring about fission in
their fuel. They don't have a neutron modaretor and utilize less-moderating coolants. It
requires the fuel which is more highly about 20% or more enriched in fissile material to
maintain chain reaction. The fissile material relatively lower possibility of fission against
capture by U-238 . Fast reactors can possibly create less transuranic waste since all actinides
are fissionable with fast neutrons, but they are very difficult to build and more costly to
work. Generally speaking, fast reactors are less regular than thermal reactors in many
applications.
refueled while at full power, which makes them exceptionally proficient in their using of
uranium. This PHWRs have been built, Argentina, Canada, China, India, , Romania, South
Korea and Pakistan. India operates some number of PHWRs.
operation because of neutron capture. These reactors can function much like a PWR in terms of
efficiency, and do not require much high-pressure containment, as the liquid metal does not need
to be kept at high pressure, even at very high temperatures. BN-350 and BN-600 in USSR
and Super phoenix in France were a reactor of this type, as was Fermi-I in the United States.
The Monju reactor in Japan suffered a sodium leak in 1995 and wasre started in May 2010. All
of them use/used liquid sodium. These reactors are fast neutron, not thermal neutron designs.
These reactors come in two types: i)Lead-cooled ii) Sodium-cooled
17
PWR reactors use a pressurzer, reactor vessel ,contain control rods, nuclear fuel, moderator, and
coolant. PWR is cooled and moderated by high-pressure water. The hot radioactive water that
leaves the pressure vessel is looped through a steam generator, which turn warms an secondary
loop of water to steam that can run turbines. They are the larger part of current reactors. This is a
thermal neutron reactor outline, the most current of which are the VVER-1200, Advanced PWR
and the European Pressurized Reactor.\
Generation I reactor : Generation 1 reactors are early prototypes non commercial power
producing and research reactors.
Generation II reactor : Generation II reactor are most current nuclear reactor, its time
between 19651996
Generation III reactor :Generation II reactors are evolutionary improvements of existing
designs 1996-now .
Generation IV reactor : possibly it will come 2030 now technology is under process
18
CHAPTER 3
REPORT ON PRESENT INVESTIGATION
3.1.1 FUEL
In a high temperature, sintering furnace the uranium dioxide(UO2) powder is fired
after
enrichment . Hard, ceramic cylindrical pellets, which are created through the process, are now
clad in zirconium metal alloy named zircaloy which is correction resistant and is backfilled with
19
helium to detect leakages and to aid heat conduction zircaloy has a favorable mechanical
property and also has a low absorption cross section, this is why it is chosen. The fuel rods which
well finished, are now grouped in fuel bundles and then the reactors core is built by using this
fuel bundles. There are 200 to 300 rods in each fuel assembly of PWR and a large reactor
consists of 150-250 such assemblies along with 80-100 tones of uranium. The normal dimension
of fuel rods bundle is 14*14 to 17*17 and length is 4meter.900 to 1600MWe are produced by a
typical PWR.
18 to 24 months are needed for a complete cycle of refueling for most commercial PWRs. Each
fueling replaces one third of the core approximately, though in now a days refueling time is
reduced to a few days by modern refueling scheme and the periodicity of refueling also becomes
short.
3.1.2 MODERATOR:
There are some PWR reactors such as all thermal reactors, which need the fast fission neutrons
to be slow for interacting with the nuclear fuel and sustain chain reaction. The neutrons of the
coolant water undergo several collisions with the H2 atoms in the water in PWRs. In this process
it losses some speed. The process, called moderating of neutrons, will occur when there will be
more dense water will be present. When the temperature increases, the water will expand and
there will be more gaps between the molecules of water which reduce thermalization and thus
reduce the slow down process of neutrons and hence the reactivity reduce in the reactor. If there
isa large increase in reactivity the chain reaction will be slowed down by the moderation process
20
, which will produce less amount of heat. PWR reactors become very stable for this property
called negative temperature coefficient of reactivity. When the coolant gets hot, the reactivity
decreases and shut down slightly to compensate. This entire process is called self regulating. In
this way the plan is controlled by itself for a certain temperature set by the control rods
position.
In PWR there is extra room for increased moderation so PWRs are maintained in under
moderated state. Because it there will be any moderation near saturation, density of the
moderator will decrease, which could cause reduction moderation slightly and making the void
coefficient positive.
21
The now more smoking water enters the upper internals area, where it is steered out the hot
nozzle (outlet nozzle) and goes ahead to the steam generator.
generator contains no moisture. This is finished by heating the steam over the boiling point. In a
Westinghouse steam generator, there is a single outlet for the primary coolant and a single outlet
for the steam. The steam generator design is piped to the turbine, and the coolant is steered to
the suction of the reactor coolant pumps .Given blew the figure of steam generator and also
described the each parameter of steam generator .
Height overall
20.62m
Upper shell OD
4.48m
Lower shell OD
2.44m
15.5MPa
17.2MPa
6.90MPa
0.25%
8.27MPa
4360kgs
325.8 degree/c
291.8 degree /c
Shell material
Mn-Mo steel
Tube OD
2.22cm
1.27
312.208kg
376.028kg
509.384kg
25
26
3.1.7 PRESSURIZER:
The pressurizer
is the part in the reactor coolant system. Pressurizer gives a method for
controlling the system pressure. Pressure is controlled by the utilization of pressurizer shower,
electrical heaters, safety valves and power operated relief valves .
The pressurizer works with a mixture of steam and water in balance. If pressure begins to move
away from the preferred value , the different components will activate to take pressure back to
the normal operating point. The reason for the pressure deviation is generally associated with a
vary in the temperature of the reactor coolant system. If the temperature of reactor coolant is
start to increase ,the reactor coolant density will decrease and the water will consume more room
event that reactor coolant framework temperature begins to build, the thickness of the reactor
coolant will diminish, and. Since the pressurizer is connected with the reactor coolant system by
the surge line, the water will spread out into the pressurizer. This will bring about the steam in
the highest point of the pressurizer to be compressed, and consequently, the pressure to increase.
The inverse effect will happen if the reactor coolant system temperature decreases. The water
will turn out to be more dense , and will possess less space. The pressurizer level will decrease,
which will bring about a pressure decrease . For a pressure decrease or increase, the pressurizer
will work to take pressure back to normal
For example, if pressure starts to increase above the desired set point, the spray line will allow
relatively cold water from the discharge of the reactor coolant pump to be sprayed into the steam
space. The cold water will condense the steam into water, which will reduce pressure (due to the
fact that steam takes up about six times more space than the same mass of water). If pressure
continues to increase, the pressurizer relief valves will open and dump steam to the pressurizer
relief tank. If this does not relieve pressure, the safety valves will lift, also discharging to the
pressurizer relief tank. If pressure starts to decrease, the electrical heaters will be energized to
boil more water into steam, and
therefore increase pressure. If pressure continues to decrease, and reaches a predetermined set
point, the reactor protection system will trip the reactor.
The pressurizer relief tank is a large tank containing water with a nitrogen atmosphere. The
water is there to condense any steam discharged by the safety or relief valves. Since the reactor
28
coolant system contains hydrogen, the nitrogen atmosphere is used to prevent the hydrogen from
existing in a potentially explosive environment
compared with the conventional thermal power plant and 4 pole turbines (1, 500 or 1,800 rpm)
are used due to large turbines.
30
The function of intermediate pressure injection system is also same as that of the high pressure
injection system except that here the primary pressure stays, high, such as small to intermediate
size primary breaks.
The cold leg accumulators contain huge amounts of borated water and pressurized nitrogen gas
bubble and it can be operated without any electric power. When the primary system pressure
drops significantly the borated water is forced out of the tank by nitrogen delivered into the
reactor system. The emergency condition in which the system gets activated is when the primary
pressure drops rapidly line large primary breaks.
The low pressure injection system operates during large breaks which comes low pressure in
reactor coolant system. It takes water from sump and pump it through heat exchanger for cooling
, and then send it to the reactor for core cooling .This system is used for core cooling means
when the refueling water tank becomes empty then this method of cooling is used.
PWR reactors are extremely steady because of their tendency to deliver less power as
temperatures raise, it makes the reactor easy to work from a stability stance.
Pressurized Water Reactor (PWR) turbine cycle loop is isolated from the essential loop,
so the water in the auxiliary loop is not tainted by radioactive materials.
PWRs can inactively scram the reactor if offsite force is lost to instantly stop the essential
nuclear reaction. The control-rods are held by electromagnets and fall by gravity when
electricity is lost, full insertion securely close down the essential nuclear reaction.
31
PWR technology is favored by countries trying to build up and nuclear naval force, the
solid reactors fit well in nuclear submarines and ships.
about serious consumption to control rod drive mechanisms when the boric corrosive
arrangement leaked through the seal between the component itself and the primary system
Only 0.7% uranium-235 is natural, the isotope essential for reactors. This makes it important to
enhance the uranium fuel, which essentially builds the expenses of fuel production. It is a very
serious proliferation for requirement of PWRs enrich fuel .
32
33
Canvas
Button
Frame
checkbutton
combobox
entry
label
labelframe
listbox
menu
menubutton
message
notebook
tk_optionMenu
panedwindow
progressbar
radiobutton
scale
scrollbar
separator
sizegrip
spinbox
text
treeview
window
34
create line(), create arc(). Anything that can be drawn on the canvas can be controlled if we use
the option of tagging it.
3.6 PROGRAMMING
from tkinter import *
class PWR_Simulator:
def __init__(self):
window=Tk()
f1=Frame(window)
window.title("PWR Simulator")
self.c1=Canvas(f1, width=850,height =430,bg="#bebebe")
f1.pack()
self.c1.pack()
self.c1.create_rectangle(20,20,700,400,fill="white",width=2,tags="boundary")
#color begins
self.c1.create_rectangle(430,145,505,75,fill="#E0FFFF",outline="#E0FFFF",tags="clr1")
self.c1.create_rectangle(460,60,474,75,fill="#E0FFFF",outline="#E0FFFF",tags="clr1")
self.c1.create_rectangle(500,200,550,220,fill="#E0FFFF",outline="#E0FFFF",tags="clr1")
36
self.c1.create_arc(430,60,505,90,extent=90,start=100,fill="#E0FFFF",outline="#E0FFFF",tags=
"clr1")
self.c1.create_arc(430,60,505,90,extent=80,start=0,fill="#E0FFFF",outline="#E0FFFF",tags="cl
r1")
self.c1.create_rectangle(435,255,500,130,fill="#E0FFFF",outline="#E0FFFF",tags="clr1")
self.c1.create_rectangle(460,60,550,40,fill="#E0FFFF",outline="#E0FFFF",tags="clr1")
self.c1.create_rectangle(100,205,220,320,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_rectangle(100,125,220,205,fill="#E0FFFF",outline="#E0FFFF",tags="clr1")
self.c1.create_arc(100,105,220,145,extent=180,start=0,fill="#E0FFFF",outline="#E0FFFF",tags
="clr1")
self.c1.create_arc(100,300,220,340,extent=180,start=180,fill="#87CEEB",outline="#87CEEB",t
ags="clr1")
self.c1.create_rectangle(220,165,400,185,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_rectangle(380,185,400,290,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_rectangle(400,270,430,290,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_line(435,278,455,258,fill="#87CEEB",width=17,tags="clr1")
self.c1.create_line(430,285,450,265,fill="#87CEEB",width=15,tags="clr1")
37
self.c1.create_line(380,283,435,283,fill="#87CEEB",width=15,tags="clr1")
self.c1.create_rectangle(435,255,500,230,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_rectangle(445,230,460,150,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_rectangle(475,230,490,150,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_arc(452.5,135,482.5,165,style="arc",extent=185,start=0,fill="#87CEEB",width=1
4,outline="#87CEEB",tags="clr1")
self.c1.create_line(483,260,513,290,fill="#87CEEB",width=17,tags="clr1")
self.c1.create_line(490,266,520,296,fill="#87CEEB",width=17,tags="clr1")
self.c1.create_rectangle(500,290,525,325,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_rectangle(525,305,310,325,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_arc(265,290,325,350,extent=220,start=30,fill="#87CEEB",outline="#87CEEB",ta
gs="clr1")
self.c1.create_arc(263,290,323,350,extent=60,start=290,fill="#87CEEB",outline="#87CEEB",ta
gs="clr1")
self.c1.create_rectangle(283,330,303,380,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_rectangle(303,380,70,360,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_rectangle(50,380,70,185,fill="#87CEEB",outline="#87CEEB",tags="clr1")
38
self.c1.create_rectangle(50,185,110,205,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_rectangle(300,165,320,155,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_rectangle(290,155,330,106,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_rectangle(440,260,495,230,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_arc(455,265,480,275,extent=180,start=180,fill="#87CEEB",outline="#87CEEB",t
ags="clr1")
self.c1.create_rectangle(455,270,480,250,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_rectangle(455,265,485,250,fill="#87CEEB",outline="#87CEEB",tags="clr1")
self.c1.create_line(494,258,498,253,fill="#87CEEB",width=5,tags="clr1")
self.c1.create_line(443,259,438,254,fill="#87CEEB",width=5,tags="clr1")
#color ends
self.c1.create_arc(100,300,220,340,style="arc",extent=180,start=180,tags="bd1")
self.c1.create_line(220,165,300,165,tags="bd1")
self.c1.create_line(320,165,400,165,tags="bd1")
self.c1.create_line(220,185,380,185,tags="bd1")
self.c1.create_line(380,185,380,290,tags="bd1")
self.c1.create_line(400,165,400,270,tags="bd1")
self.c1.create_line(400,270,430,270,tags="bd1")
self.c1.create_line(380,290,435,290,tags="bd1")
self.c1.create_line(430,270,440,260,tags="bd1")
self.c1.create_line(435,290,455,270,tags="bd1")
self.c1.create_line(480,270,500,290,tags="bd1")
self.c1.create_line(495,260,525,290,tags="bd1")
self.c1.create_arc(455,265,480,275,style="arc",extent=180,start=180,tags="bd1")
self.c1.create_line(440,260,435,255,tags="bd1")
self.c1.create_line(495,260,500,255,tags="bd1")
self.c1.create_line(435,255,435,150,tags="bd1")
self.c1.create_line(435,150,430,145,tags="bd1")
self.c1.create_line(430,145,430,75,tags="bd1")
self.c1.create_line(500,255,500,220,tags="bd1")
40
self.c1.create_line(500,200,500,150,tags="bd1")
self.c1.create_line(500,150,505,145,tags="bd1")
self.c1.create_line(505,145,505,75,tags="bd1")
self.c1.create_arc(430,60,505,90,style="arc",extent=90,start=100,tags="bd1")
self.c1.create_arc(430,60,505,90,style="arc",extent=80,start=0,tags="bd1")
self.c1.create_line(460,60,460,40,tags="bd1")
self.c1.create_line(460,40,550,40,tags="bd1")
self.c1.create_line(474,60,550,60,tags="bd1")
self.c1.create_line(500,200,550,200,tags="bd1")
self.c1.create_line(500,220,550,220,tags="bd1")
self.c1.create_line(500,290,500,305,tags="bd1")
self.c1.create_line(525,290,525,325,tags="bd1")
self.c1.create_line(500,305,320,305,tags="bd1")
self.c1.create_line(525,325,320,325,tags="bd1")
self.c1.create_arc(265,290,325,350,style="arc",extent=220,start=30,tags="bd1")
self.c1.create_arc(263,290,323,350,style="arc",extent=60,start=290,tags="bd1")
41
self.c1.create_line(283,347,283,360,tags="bd1")
self.c1.create_line(303,347,303,380,tags="bd1")
self.c1.create_line(283,360,70,360,tags="bd1")
self.c1.create_line(303,380,50,380,tags="bd1")
self.c1.create_line(70,360,70,205,tags="bd1")
self.c1.create_line(50,380,50,185,tags="bd1")
self.c1.create_line(50,185,100,185,tags="bd1")
self.c1.create_line(70,205,100,205,tags="bd1")
self.c1.create_line(300,165,300,155,tags="bd1")
self.c1.create_line(320,165,320,155,tags="bd1")
self.c1.create_line(300,155,290,155,tags="bd1")
self.c1.create_line(320,155,330,155,tags="bd1")
self.c1.create_line(290,155,290,95,tags="bd1")
self.c1.create_line(330,155,330,95,tags="bd1")
self.c1.create_line(290,95,330,95,tags="bd1")
42
self.c1.create_line(100,185,110,185,tags="bd1")
self.c1.create_line(110,185,110,285,tags="bd1")
self.c1.create_line(220,185,210,185,tags="bd1")
self.c1.create_line(210,185,210,285,tags="bd1")
self.c1.create_line(292,105,328,105,width=2,tags="bd1")
self.c1.create_line(435,230,445,230,tags="bd1")
self.c1.create_line(500,230,490,230,tags="bd1")
self.c1.create_line(460,230,475,230,tags="bd1")
self.c1.create_line(445,230,445,150,tags="bd1")
self.c1.create_line(460,230,460,150,tags="bd1")
self.c1.create_line(475,230,475,150,tags="bd1")
self.c1.create_line(490,230,490,150,tags="bd1")
self.c1.create_arc(460,142.5,475,157.5,style="arc",extent=185,start=0,tags="bd1")
self.c1.create_arc(445,127.5,490,172.5,style="arc",extent=185,start=0,tags="bd1")
self.c1.create_rectangle(433,80,437,90,tags="bd1")
self.c1.create_rectangle(440,80,444,90,tags="bd1")
43
self.c1.create_rectangle(447,80,451,90,tags="bd1")
self.c1.create_rectangle(454,80,458,90,tags="bd1")
self.c1.create_rectangle(461,80,465,90,tags="bd1")
self.c1.create_rectangle(468,80,472,90,tags="bd1")
self.c1.create_rectangle(475,80,479,90,tags="bd1")
self.c1.create_rectangle(482,80,486,90,tags="bd1")
self.c1.create_rectangle(489,80,493,90,tags="bd1")
self.c1.create_rectangle(496,80,500,90,tags="bd1")
self.c1.create_line(467.5,230,467.5,275,tags="bd1")
self.c1.create_arc(275,300,315,340,start=0,
extent=359,fill="#2f4f4f",outline="#2f4f4f",tags="bd1")
self.c1.create_rectangle(125,205,135,285,fill="#ff4500",tags="fr1")
self.c1.create_rectangle(145,205,155,285,fill="#ff4500",tags="fr1")
self.c1.create_rectangle(165,205,175,285,fill="#ff4500",tags="fr1")
self.c1.create_rectangle(185,205,195,285,fill="#ff4500",tags="fr1")
44
self.cr1py1=205
self.cr1py2=285
self.c1.create_line(140,self.cr1py1,140,self.cr1py2,width=3,tags="cr1")
self.c1.create_line(160,self.cr1py1,160,self.cr1py2,width=3,tags="cr1")
self.c1.create_line(180,self.cr1py1,180,self.cr1py2,width=3,tags="cr1")
self.c1.create_rectangle(95,145,100,155,fill="black",tags="bd1")
self.c1.create_rectangle(220,145,225,155,fill="black",tags="bd1")
#building outline ends
self.pl1=Label(f1,text="CRP",bg="#98fb98")
self.pl1.place(x=710,y=230,width=130)
bt1=Button(f1,text="UP",command=self.rodup,bg="#cd853f")
bt1.place(x=710, y=255,height=25,width=130)
bt2=Button(f1,text="DOWN",command=self.roddown,bg="#cd853f")
bt2.place(x=710, y=280,height=25,width=130)
45
self.start1=0
self.dx=0
self.pl1=Label(f1,text="POWER",bg="#98fb98")
self.pl1.place(x=710,y=30,width=130)
self.pl2=Label(f1,text="0",bg="white")
self.pl2.place(x=710,y=55,width=100,height=50)
self.pl3=Label(f1,text="MW")
self.pl3.place(x=810,y=55,width=30,height=50)
self.tl1=Label(f1,text="TEMP",bg="#98fb98")
self.tl1.place(x=710,y=130,width=130)
self.tl2=Label(f1,text="300",bg="white")
self.tl2.place(x=710,y=155,width=100,height=50)
self.tl3=Label(f1,text="K")
self.tl3.place(x=810,y=155,width=30,height=50)
self.power=0
46
self.temp=300
window.mainloop()
def displaypower1(self):
self.pl2["text"]=str(self.power+20)
self.power=self.power+20
self.tl2["text"]=str(self.temp+50)
self.temp=self.temp+50
def displaypower2(self):
self.pl2["text"]=str(self.power-20)
self.power=self.power-20
self.tl2["text"]=str(self.temp-50)
self.temp=self.temp-50
47
def rodup(self):
if(self.cr1py2>207):
self.displaypower1()
self.c1.after(10)
self.c1.update()
self.c1.delete("cr1")
self.c1.create_line(140,(self.cr1py1-2),140,(self.cr1py2-2),width=3,tags="cr1")
self.c1.create_line(160,(self.cr1py1-2),160,(self.cr1py2-2),width=3,tags="cr1")
self.c1.create_line(180,(self.cr1py1-2),180,(self.cr1py2-2),width=3,tags="cr1")
self.cr1py1=self.cr1py1-2
self.cr1py2=self.cr1py2-2
if(self.cr1py2<285):
self.start1=1
if(self.cr1py2>=285):
self.start1=0
48
while(self.start1==1):
self.c1.create_line(60,230-self.dx,60,220-self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(60,320-self.dx,60,310-self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(260-self.dx,370,250-self.dx,370,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(110-self.dx,370,100-self.dx,370,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(80+self.dx,195,90+self.dx,195,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(105,235+self.dx,105,245+self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(105,295+self.dx,105,305+self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(130,315-self.dx,130,305-self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(150,315-self.dx,150,305-self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(170,315-self.dx,170,305-self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
49
self.c1.create_line(190,315-self.dx,190,305-self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(190,190-self.dx,190,180-self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(170,190-self.dx,170,180-self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(150,190-self.dx,150,180-self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(130,190-self.dx,130,180-self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(260+self.dx,175,270+self.dx,175,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(350+self.dx,175,360+self.dx,175,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(390,225+self.dx,390,235+self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(405+self.dx,280,415+self.dx,280,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(453,200-self.dx,453,190-self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(483,190+self.dx,483,200+self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(513,290+self.dx,513,300+self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
50
self.c1.create_line(470-self.dx,315,460-self.dx,315,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(360-self.dx,315,350-self.dx,315,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(530-self.dx,210,520-self.dx,210,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(495+self.dx,50,505+self.dx,50,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(440,120-self.dx,440,110-self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(458,120-self.dx,458,110-self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(476,120-self.dx,476,110-self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.create_line(494,120-self.dx,494,110-self.dx,arrow=LAST,width =
5,fill="blue",tags="ar1")
self.c1.after(100)
self.c1.update()
self.c1.delete("ar1")
self.dx=self.dx+2
if(self.dx==20):
self.dx=0
51
self.c1.after(100)
def roddown(self):
if(self.cr1py2>=285):
self.start1=0
self.c1.delete("ar1")
if(self.cr1py2<285):
self.displaypower2()
self.c1.after(10)
self.c1.update()
self.c1.delete("cr1")
self.c1.create_line(140,(self.cr1py1+2),140,(self.cr1py2+2),width=3,tags="cr1")
self.c1.create_line(160,(self.cr1py1+2),160,(self.cr1py2+2),width=3,tags="cr1")
self.c1.create_line(180,(self.cr1py1+2),180,(self.cr1py2+2),width=3,tags="cr1")
self.cr1py1=self.cr1py1+2
self.cr1py2=self.cr1py2+2
PWR_Simulator()
52
CHAPTER 4
RESULT AND CONCLUSION
4.1 RESULTS
PWR reactors use a pressurzer, reactor vessel ,contain control rods, nuclear fuel, moderator, and
coolant. PWR is cooled and moderated by high-pressure water. The hot radioactive water that
leaves the pressure vessel is looped through a steam generator, which turn warms an secondary
loop of water to steam that can run turbines. They are the larger part of current reactors. This is a
thermal neutron reactor outline, the most current of which are the VVER-1200, Advanced PWR
and the European Pressurized Reactor.
The simulator model of PWR shown can be studied to understand the internal operation of PWR
such as movement of control rod, variation of temperature and its effect on output power of the
reactor. In this simulation model I have mainly concentrated on the effect of variation of
temperature on the output power depending upon the movement of control rod. Assigning the
movement of control to a program is difficult task. That is making a program to understand the
mechanical motion of control rod has been typical. For this in the program the logic was given so
that when control rod moves up the previous position gets completely deleted and if we again
move the control rod up then then the previous increment of control rod gets deleted. The reverse
process will be happening when we move the control rod down.
The above figure shows the initiation of PWR operation. On the right hand side we can see the
graphical user interface buttons. The up button will begin the movement of control rod upwards
and as the control rods moves up the rate of fission will increase resulting increase in
temperature of water which will produce steam in another vessel. Thus the output power will
increase. We can clearly see this increment in the output power as long as the control rod moves
up. Now when we press the down button the control rod moves down affecting the rate of
fission in negative way. Thus the output power will decrease. These can be clearly seen the
following figure.
54
4.2 CONCLUSION
In conclusion we can say that understanding the motion of water, control rod and variation in
temperature is affecting the output power and this can be clearly understood in this thesis. In
future this work can be extended by introducing some other complex parameter such as stress or
combination of complex parameters such as temperature and stress etc. introducing these things
can make understanding of internal operation of PWR simulator more easier.
55
REFERENCES
56