Summary: As a capstone project for this semester you will have to apply nearly all the skills you have learned to complete this final project. One of the most common uses of programs is in system automation(machines controlling other machines). One of the fields that use this the most is the nuclear power industry. That is our assignment.
Task: You will be provided with a scenario, methodology, and equations to build a simplified nuclear reactor simulator. As opposed to a real power plant management system, yours will only take into account a hand full of variables. However ALL of these must be dealt with at the same time the others are handled. This will mean your program itself will have to apply the calculations to simplify the controls the human will use.
Scenario: You will have control of only the following items, Coolant flow into the reactor core, control rod insertion, and starting and stopping the reactor. The program itself will keep track of current core temperature, steam psi, turbine speed, and power output.
Once told to start the reactor, a complete checking and updating of system current temp, and how much heat will be added to it based upon rod insertion, coolant flow, a constant dissipation rate, EVERY 10 SECONDS. THIS WILL REQUIRE USE OF THE TIMER CONTROL WITH ITS INTERVAL SET TO 10000
Steps of the timer event:
NOTE: ALL Formulas MUST be implemented with FUNCTIONS!
Get amount of coolant flow
Get amount of rod insertion
Add set amount of heat – 200 degrees
Apply control rod formula to adjust amount of heat added
Apply coolant formula to adjust the heat amount added
Apply constant heat dissipation of 30 degrees
Calc overall core temp by adding the additional heat (tempadd) to current overall temp (temp)
Calc psi using formula
Calc rpm of turbine using formula
Calc power output using formula
Decide core status
Decide turbine status
Output results to interface
Coolant Flow: Must be able to be adjusted between 100 and 2000 Gallons Per Minute GPM. Current coolant flow level must be represented by a progress bar. Control of level must be adjustable with buttons to increase or decrease the level, NOT a textbox.
Control Rod: Must be adjustable between 0 and 100% insertion to the core. Current insertion level MUST be visually represented by a progress bar. Control of level must be adjustable with buttons to increase or decrease the level, NOT a textbox.
Reactor Core: Start and Stop buttons, essentially these will active and deactivate the timer to start or stop the simulation.
Output: Output of core data and status MUST be clearly shown on the interface. These include; core temperature, PSI, coolant flow, rod %, turbine speed, power output, core status, and turbine status
If gallons per minute(gpm) is less than 500 gpm then
Tempadd= ((500-gpm)/500 + 1) * tempadd
If gpm = 500 then
Tempadd = tempadd
If gpm is greater than 500 then
Tempadd = (1 – ((gpm-500)/500)) * tempadd
Tempadd = (1- (rod /100)) * 200
Psi = current core temp(temp) / 2
Rpm = psi / 10
Power Output(Watts) Formula:
Power = rpm * 500
Core Status Formula:
Status is based upon the temperature of the core
Less than 500 – “Low Power”, 500-800 – “Core Stable”, 801-2500 – “Highly Reactive”, 2501-5999 – “Core Unstable”, any temperature higher than 5999 – “Core Meltdown”
Turbine Status Formula:
Is turbine speed is 225 or above status is “Turbine Damage”, if speed is at or above 50 status is “Highspeed”, otherwise turbine status is “turbine ok”
What needs to be handed in?
• Your visual basic source code
• Screenshot of the interface NOT running
• A screenshot of the program after running for 1 minute
• A screenshot of the program after running for 5 minutes.
*Note: You are free to decide coolant rate and rod insertion %
Add file output capability to your program. Your file output NEEDS to be in html table format.
Control: You must place 2 additional buttons on you program that will start the logging of reactor data, and a button that will stop and save the output file. Create the filestream object publicly and use the START button to insert the initial HTML tags including those to provide headers for the table. It will also allow you to provide for an easy way to decide to send output to the file in addition to the interface.
Sending file output: If logging is turned on(see above) you insert a simple if test immediately before or after output to the interface, sending the same data formatted for HTML table output to the file. ALL information output to the interface MUST be shown and labeled in the HTML log file.
Stopping file output and saving file: The STOP button will change the logging variable to FALSE and then send the closing html tags to the file, and close the WRITER object in order to properly save the file.
• A screenshot of the file output log after program runs for 1 minute
• A screenshot of the file output log after the program has run for 5 minutes
See Question.pdf for notes.