Reactor X-Section
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This project simulates a nuclear fission reaction in a nuclear power plant. In a fission reaction, free neutrons hit uranium atoms, causing each uranium atom to generate 2 or 3 neutrons and a unit of energy. The uranium atom itself splits into two smaller atoms. The newly generated neutrons, together with the neutron that caused the reaction, keep moving and continue to hit more uranium atoms, which release more neutrons, etc. This is the chain reaction that happens inside an atomic bomb.
Most nuclear energy is used for peaceful purpose, however. Generated in a nuclear power plant, nuclear fission goes on in a much more controlled fashion. Heavy metal plates made of lead help to absorb the free neutrons, thus fewer atoms of uranium are smashed, which in turn limits how much energy is released.
This model simulates the process of a nuclear fission reaction inside such a plant. The reactor core is built of concrete, with adjustable control rods to help control the speed of the reaction. The reactor has a built-in automatic controller, and has a set of manual controls as well.
HOW TO USE IT
The REACTOR-SIZE slider controls the size of the reactor.
The ROD-SPACING slider controls the distance between the control rods.
The SPEND-FUEL switch controls whether or not the fuel is used up when a neutron hits it.
The POWER-RATED slider controls the rated power, which is used for automatic control.
The ROD-DEPTH slider controls the rod depth when under manual control.
The RELEASE NEUTRON button introduces a neutron into the reactor. It can be used at anytime before or during the reaction.
Press the SETUP button to set up the reactor.
When MANUAL is on, use the ROD-DEPTH slider to control the rod depth. If they are too short, too many neutrons can escape and the reactor will generate too much power. If they are too long, all free neutrons will be absorbed, and no power will be generated.
When AUTO-REACT is on, the reactor will adjust itself as needed to keep power production under control.
The POWER monitor shows the current power output.
The POWER-CHANGE monitor shows the change in power over the last clock tick.
Look at the POWER-PLOT plot to see the power curve.
THINGS TO NOTICE
Observe the fluctuation of the power curve. The blue line is the rated-power line and the red line is the actually generated power line.
THINGS TO TRY
There are two procedures, one for manual control, one for automatic control. (Respectively called 'manu-react' and 'auto-controller'.)
The manual controls are very simple. The ROD-DEPTH slider controls how deep the control rods are inserted into the reactor.
The automatic controller is basically an ON and OFF controller. It is based on 1) comparison of power generated and power rated and 2) the power change. The mechanism is described in the following table:
Power > Power Rated Power < Power Rated
------------------- -------------------
Power Change > 0: Increase Length Do Nothing
Power Change < 0: Do nothing Decrease Length
The controller should be fine-tuned, and the length to increase and decrease varies.
In Manual Mode:
Use the slider to adjust the control rod length according to the information given through the two monitors and the plot. You want the power curve to be as flat as possible. The height of the curve should be close to the horizontal line representing the power-rate.In Automatic Mode:
Fine tune the controller by changing the mechanisms to get a flat power curve with the least fluctuation.
EXTENDING THE MODEL
The automatic controller used is just an on and off controller. Try using Proportional, Integral and Differential (PID) controllers to make the reaction more smooth. You could also use some ideas of fuzzy logic (e.g. fuzzy membership) to build a fuzzy controller.
Absorbing free neutrons to control the reaction process is only one of the control mechanisms and is not the most important one. The important factor in controlling the reaction is to keep the speed of a neutron lower than a certain level (to stimulate fission reaction). The speeds of free neutrons depend on the density of the steam. Higher density yields lower speed and vice-versa. This is by nature a negative feedback control mechanism. It works as follows. If generated power is high, then the steam temperature is high and the density of the steam is low, thus the speed of free neutrons is high and is less likely to stimulate fission reaction. Hence a lower generated power. Try to incorporate this process into the automatic controller.
RELATED MODELS
Together with the Reactor Top Down model you can get a decent representation of how a Nuclear Reactor might work in three dimensions. These two models are variations of one another based off of the Fission model from StarLogoT.
NETLOGO FEATURES
More so than most other NetLogo models, the plot of 'Power' plays an active role in the simulation. When using the manual controller, it is quite helpful to watch the power curve, to tell when things are getting out of hand.
HOW TO CITE
If you mention this model in a publication, we ask that you include these citations for the model itself and for the NetLogo software:
- Wilensky, U. (1998). NetLogo Reactor X-Section model. http://ccl.northwestern.edu/netlogo/models/ReactorX-Section. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.
- Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.
COPYRIGHT AND LICENSE
Copyright 1998 Uri Wilensky.
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.
This model was created as part of the project: CONNECTED MATHEMATICS: MAKING SENSE OF COMPLEX PHENOMENA THROUGH BUILDING OBJECT-BASED PARALLEL MODELS (OBPML). The project gratefully acknowledges the support of the National Science Foundation (Applications of Advanced Technologies Program) -- grant numbers RED #9552950 and REC #9632612.
This model was converted to NetLogo as part of the projects: PARTICIPATORY SIMULATIONS: NETWORK-BASED DESIGN FOR SYSTEMS LEARNING IN CLASSROOMS and/or INTEGRATED SIMULATION AND MODELING ENVIRONMENT. The project gratefully acknowledges the support of the National Science Foundation (REPP & ROLE programs) -- grant numbers REC #9814682 and REC-0126227. Converted from StarLogoT to NetLogo, 2001.
Comments and Questions
patches-own [ x y rod? ] globals [ power old-power old-power-2 ; Used to compute average-power old-power-3 ; Used to compute average-power old-power-4 ; Used to compute average-power average-power power-change rod-length n-rods ; Number of rods r ; Constant for half the reactor size ] to setup clear-all set-default-shape turtles "circle" setup-globals ask patches [ set x (abs pxcor) set y (abs pycor) set rod? false build-reactor setup-nuclear-fuel ] setup-control-rods reset-ticks end to setup-globals set power 0 set old-power 0 set old-power-2 0 set old-power-3 0 set old-power-4 0 set r (reactor-size / 2) set rod-length rod-depth set n-rods (reactor-size / (rod-spacing + 1)) - 1 end to build-reactor ;; Patch Procedure if ((x = r) and (y <= r)) or ((y = r) and (x <= r)) [ set pcolor gray set rod? false ] end to setup-nuclear-fuel ;; Patch Procedure if (pcolor = black) and (x < r) and (y < r) [ set pcolor red ] end to setup-control-rods if rod-depth > reactor-size [set rod-depth reactor-size] if (rod-spacing = 5 or rod-spacing = 6 and reactor-size = 10) [ user-message "Spacing too large for reactor size. Spacing set to 4." set rod-spacing 4 set n-rods 1 ] let rod-x 1 - r + rod-spacing ;; Make the rods more evenly spaced at particular settings if (rod-spacing = 2 and reactor-size != 30 and reactor-size != 60) [ set rod-x rod-x + 1 ] if (rod-spacing = 3 and (reactor-size mod 20) != 0) [ set n-rods n-rods + 1 set rod-x rod-x - 1 ] if (rod-spacing = 5 and (reactor-size = 20 or reactor-size = 40 or reactor-size = 70)) [ ifelse (reactor-size = 20) [ set rod-x rod-x + 1 ] [ set rod-x rod-x + 2 ] ] if (rod-spacing = 6 and (reactor-size mod 20) = 0) [ set n-rods n-rods + 1 ifelse (reactor-size = 80) [ set rod-x rod-x - 2 ] [ set rod-x rod-x - 1 ] ] repeat n-rods [ ask patches with [ pxcor = rod-x ] [ set rod? true ] set rod-x rod-x + rod-spacing + 1 ] ask patches [ build-reactor ] place-control-rods end ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Run Time Procedures ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;Forever Button to auto-react if not any? turtles [stop] ifelse power-change >= 0 [ if (power - power-rated) >= 0 [ set rod-length ( rod-length + 50 ) ] ] [ if (power - power-rated) < 0 [ set rod-length ( rod-length - 10 ) ] ] if rod-length < 0 [ set rod-length 0 ] if rod-length > reactor-size [ set rod-length reactor-size ] react end ;;Forever Button to manu-react if not any? turtles [stop] if rod-depth > reactor-size [set rod-depth reactor-size] set rod-length rod-depth react end to react place-control-rods set power 0 ask turtles [ fd 1 if (pcolor = gray) [ die ] if (pcolor = red) [ fission ] ] set average-power ((power + old-power + old-power-2 + old-power-3 + old-power-4) / 5) set power-change (power - old-power) set old-power-4 old-power-3 set old-power-3 old-power-2 set old-power-2 old-power set old-power power tick end to release-neutron ;; Button let whom nobody crt 1 [ set color yellow set xcor ((random (reactor-size - 2)) - r) set ycor ((random (reactor-size - 2)) - r) set whom self if (pcolor = gray) [ die ] ] if whom = nobody [ release-neutron ] end to place-control-rods ask patches with [ rod? ] [ ifelse (pycor >= (r - rod-length)) [ set pcolor gray ] [ set pcolor black ] ] end to fission ;; Turtle Procedure rt random 360 if (pcolor = red) [ if (spend-fuel?) [ set pcolor brown ] let gain (1 / count turtles-here) set power power + gain hatch ((2 + random 2) * gain) [ rt random 360 ] ] end ; Copyright 1998 Uri Wilensky. ; See Info tab for full copyright and license.
There are 10 versions of this model.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Reactor X-Section.png | preview | Preview for 'Reactor X-Section' | over 11 years ago, by Uri Wilensky | Download |
This model does not have any ancestors.
This model does not have any descendants.