Intelligent User Interfaces
Program: Nuclear Power Control System
The principal lesson of the Three Mile Island accident was that reactor
operators need much more information in more easily understandable forms
--Encyclopaedia Americana
Contents
I. Overview Describes the basics behind the nuclear power station
II. Program Operation Gives an overview of the program
Overview
The program I chose to write for my Intelligent Interfaces project is a Nuclear
Power Control System. It is important for such a critical system to be as
intuitive as possible so the users may effectively manage the operations of the
system.
My program simulates the operation of a pressurized water reator, or two-loop steam cycle
(to learn more about PWR's, click here).
This is what such a system looks like:
from Encyclopaedia Americana
There are eleven parts of this nuclear plant. On the diagram, from left to
right, top to bottom (as the words are arranged), they are...
- Reactor
- Primary loop
- Core
- Primary pump
- Steam line
- Boiler
- Secondary pump
- Condenser
- Turbine
- Generator
- Condenser cooling water (coolant line)
How a Nuclear Power Station Works
The type of power station used in this simulation is a "pressurized-water reactor" (see diagram).
- The core heats the pressurized water in the reactor
- Heated water is pumped through the primary loop
- In the boiler, heat from the primary loop is transferred to the steam line
- In the steam line, water pumped from the condenser is turned into steam
- The steam moves the turbine
- The turbine turns the generator
- The coolant line cools water in the condenser
Program Operation
Instances of intelligent interface demonstrations are noted by BIG BOLD LETTERING.
Look at this page to get an overview of intelligent techniques used in this program.
I. Title Screen
The program starts by presenting the user with the title screen.
The title
screen says "Nuclear Power Control System" on the top. It has a nuclear symbol
in the middle, and an OK button on the bottom. The title screen is made to look
like it is printed on a raised metal plate. It's really quite chic. It even
has screws in each of the four corners.
II. User Registration
The user is presented with a screen which asks him to select what type of
user he is. This creates the USER MODEL which is used by the system
in determining the most pertinent data to show the user, and how to show it.
First, the user is asked for his stereotype, which can be one of:
- Operations Officer
- Safety Officer
- Environmental Officer
These three stereotypes allow the program to display data which is specific to
the user (more about this in a bit).
The user is then asked for his experience level. He may choose one of
- Less Experienced
- Experienced
- More Experienced
In a typical intelligent interface system, the user would not be asked what type
of a user he is. A user might overrate himself, which could be detrimental
to the user (and to the system which the user is controlling!), or he might
underrate himself, which would not allow him to exercise his full potential on
the system. The program should make the determination between levels of
competence, since the program knows what is required of each level of competence.
However, for this implementation, it is okay for the computer to ask, since
the point here is to show interactive interfacing techniques over a short
period of time.
Users at different levels of competency will receive more or less instructional
information. For example, a less experienced user will receive more comments
on how to get help. A more experienced user might be given more freedom in what
he can do.
III. Simluation
The simulation begins at this point. The screen is divided into the following
sections:
- The title, "Nuclear Power Control Station", is displayed at the top of the screen
- In the upper left portion of the screen is a box for a diagnostic suggestion
- In the upper right portion of the screen is a box for data
- In the middle of the screen is an event log
- In the bottom right portion of the screen is a schematic diagram of the station
- The remainder of the bottom of the screen contains the buttons, which are (from left to right) as follows:
- Display. Used to change what type of data is displayed in the data display box
- Tweak. Used to tweak a part of the simulated system
- Repair. Used to repair a part of the simulated system
- Shutdown. Would be used to shut down the system, but it's not implemented (there is a rationale for this, which is described later)
- Exit. Leave the simulator.
Creation of System Errors
After a certain amount of time (determined randomly), an error will occur in the system. This error
is chosen at random. There is not any external cause for this error; it just
happens. In a real nuclear power station, this probably wouldn't happen (in fact,
nuclear power stations are extremely safe, more so than most people think).
However, what fun would it be if nothing adverse were to happen?
When an error occurs, the affected part of the system will flash on the schematic
diagram. There are two degrees of error which flash on the system:
- Warning. A warning is not critical. It means that the value of something
in the system (radiation, temperature, or pressure) is not optimal, nor is
it critical. Parts of the system which are in a warning state slowly flash
amber.
- Alert. An alert is critical. It means that the value of something in the
system (radiation, temperature, or pressure) is beyond a safe value. Parts of
the system which are in an alert state quickly flash red.
If a part of the system is not in an error state, its color is a subdued tone
of black, red, magenta, or blue, depending on what the part is (the actual color
of the part on the schematic is not important; parts are colored differently
to differentiate between parts of the system).
When there is a problem with a part of the system, that problem could spread
to other parts of the system, particularly in the case of radiation. An irradiated
primary loop will quickly spread radiation to the boiler, then to the steam line, and
so on through the system.
User-Specific Presentation of Data
The data, which is in the form of gauges, in the data box changes in accordance with
the values of a part's radiation, temperature, and pressure. Gauges are vertical
bars which graphically show the amount of radiation / temperature / pressure in a part.
The color of the bar inside the gauge reflects the state of the part: green for
okay, amber for warning, red for alert.
The parts which are included in the data display are determined according to the
user model. This is an example of INTELLIGENT DATA PRESENTATION. The
three stereotypes and their associated data displays are as follow:
- Operations Officer: reactor radiation, reactor temperature, condenser radiation, condenser temperature
- Safety Officer: core radiation, reactor radiation, condenser radiation, coolant line radiation
- Environmental Officer: coolant line radiation, coolant line temperature, condenser radiation, condenser temperature
In addition, there are three other "families" of gauges which may be displayed.
These options are not particular to any user stereotype. They provide flexibility
to the user so he may see whatever data is necessary.
- Radiation: core radiation, reactor radiation, primary loop radiation, steam loop radiation
- Temperature: core temperature, reactor temperature, condenser temperature, coolant line temperature
- Pressure: primary loop pressure, steam line pressure
The initial display is determined by the user stereotype. At any time, the user
may change which display is shown in the data box by selecting the "Display" button.
All six "families" of
data are selectable. There is also an option which allows the user to go back
to the display of his stereotype (yes, there is some redundancy here, in that
the user's stereotype will be listed twice. However, this makes the system
easier to use, because the user's stereotype is immediately available for
selection).
Suggestions Made by the System
When something goes wrong with the system, the system will make a suggestion.
This is an example of INTELLIGENT USE OF KNOWLEDGE: the system knows
what problems are more critical than others, and suggests that the user fix the
most critical part. Something important to realize for this demonstration:
if something goes wrong in the system, other parts of the system eventually
become damaged as well. For example, if the reactor becomes too irradiated,
the radiation eventually speads to the primary loop, then to the boiler, then
to the steam line, and so on. A user faced with many parts of the system in
error may become confused as to which part of the system should be fixed. The
system's suggestion alleviates this problem by telling the user to repair what
is causing the problem. Thus, if the primary pump fails, and the pressure in the
primary loop gets dangerously low, the system will tell the user to repair the
primary pump. The user may then tweak the primary loop to get the pressure
back to normal.
Repairing System Errors
So, assume there is an error in the system. The user will want to fix the error.
To do this, he would select the "Repair" button. If the user is less experienced,
he is brought directly to the text interface, ready to repair the most critical
part of the system. If the user is an experienced or
more experienced user, he gets to choose which part of the system he wishes to fix. The parts
are listed in order of their criticality, so the user has some way of determining
which is the most important part to fix. However, the user is given an additional
degree of freedom, considering that the experienced user probably has more knowledge
and responsibilty than a less experienced user, and can therefore be allowed this
additional freedom. This is another application of the USER MODEL.
Commands and Interaction with the Text Interface
The text interface allows the user to fix the simulated error. The following commands
may be used in this text interface:
- OFFLINE -- Take the part in question offline
- ONLINE -- (Doesn't do anything. Included to demonstrate tab completion)
- ASSIGN-CREW -- Send someone to repair the part
- CHECKLIST -- See what steps still have to be done
- HELP -- Shows available commands, and suggests next logical action
- EXIT -- Leave the repairer
- MACRO -- Use a macro (more on this in a bit...)
The commands ASSIGN-CREW and CHECKLIST have abbreviations, AC and CL, respectively.
These are used in determining user competence, as descibed below.
Upon entering the text interface, the user is presented with a message which
says, "You are about to repair the [part]," where [part] is the part selected.
If the user is less experienced, an additional message is displayed, which
says "Take it offline first by using the OFFLINE command," and "If you need
help, type HELP."
When repairing an error, there are three things which must be done:
- Take the system offline (use the OFFLINE command)
- Send someone to repair the part (use the ASSIGN-CREW command)
- Exit the text interface (use the EXIT command)
Other commands are included to help the user. The Help command displays a list
of available commands. It also suggests the next action which the user should
take. For example, if the user has just entered the text interface and has
asked for help, he will see a list of available commands, and then a suggestion:
"Your next step would probably be to take the [part] offline," where [part] is
the part to be repaired. Additionally, if the user is less experienced, an
additional line will appear: "Use the OFFLINE command." A similar interaction
occurs if the user has taken the part offline but has not yet assigned a repair
crew to the part, or if the user has done everything necessary (suggestions:
"Your next step would probably be to assign a repair crew to the [part]" /
"Use the ASSIGN-CREW command" /// "You may now exit repair mode" / "Use the
EXIT command").
Unrecognized Commands
Unrecognized commands are noted by the reply, "Command not understood."
Command Replies
Commands invoke replies, of course. Typing OFFLINE will take the part offline.
Also, the system will say, "The [part] is now offline." The simulation is
realistic in that it takes into account previous actions when determining what
to say or do. For example, if the user enters OFFLINE, then enters OFFLINE
again, the system will say, "The [part] is already offline."
Tab Completion
The system allows for tab completion of commands: just typing the first few
letters followed by [TAB] will call up the entire command. Thus, OF plus
[TAB] will bring up the command OFFLINE. This is an example of PLAN
RECOGNITION: the system pedicts what command the user wishes to use. If
the user types a letter which is not part of any command, for example W, and
presses [TAB], the program will make a low-pitched beep, which indicates that the
user has made a mistake.
If the user enters a letter which is used by more than one command, such as
O (which is the first letter in both OFFLINE and ONLINE), the program will
make a high-pitched beep, signifying that the user has made a mistake, but the
character entered is recognized. (The only reason why ONLINE exists is to
demonstrate this ability. The command itself is not recognized by the system).
Automatic Assessing of User Competence
This part of the system also demonstrates automatic upgrading or downgrading of
the user's level of competence. This is an example of DYNAMIC USER
MODELING. Each time a user enters a command, a counter is updated. A
separate counter is updated if the user makes a mistake. The same counter
is increased if the user uses the HELP command, which shows an incomplete degree
of knowledge about the system. That same counter is
reduced if the user uses a command abbreviation, which shows that the user
has a good degree of knowledge about the system. Using these two counters,
the system will check to see if the user's level of competence should be
upgraded, downgraded, or unchanged. If the value of (mistakes made)/(total commands)
is 10% or less, the user is upgraded. If it is 50% or more, the user is downgraded.
Any value in between does not change the user's level of competence. The system
does not actually display anything that says "You have been upgraded" or "You
have been downgraded," as not to excite or upset the user. However, for this
program, there are five quick beeps which indicate a change in user competence
(it's the same five beeps whether the user is upgraded or downgraded, so there
is no obvious indication which way the user has changed. However, the user of
this demonstration should have a good idea whether or not he has been doing things
well!)
Detection of Often Used Commands and Automatic Creation of Macros
The system is capable of recognizing repeated actions made by the user. This
demonstrated PLAN RECOGNITION. If the user enters the same sequence of
commands many times when repairing parts of the system, the program will say,
"You do the following actions often:", followed by a list of frequent actions,
followed by, "These commands have been placed in a macro. To use this macro,
type MACRO." Then, whenever the user wants to use the same commands in the same
order, all he has to do is type MACRO. The program can only handle one macro,
but that's okay, since this is only a demonstration. New macros can replace
old macros if a new series of commands becomes frequently used.
Tailored Help with Suggestions
The system also makes use of INTELLIGENT HELP. Calling HELP not only
presents the user with a list of possible commands; it also intelligently
suggests the next course of action to take. It also tailors this output to
the user's level of competence, telling the less experienced user how to do
something ("Use the OFFLINE command", for example).
Tweaking System Malfunctions
By selecting the Tweak button, the user may tweak (well, in this system, "tweaking"
fixes any errors in a part of the system) any part of the system. This function
is made available for completeness. It also gives the user of the simulation the
ability to fix something which may not need repair; something in the amber range, for
example, is not elgible for repair, but the condition of that part could be
upgraded.
When the user selects the Tweak button, he is presented with a list of all of the
parts of the system, placed in order of criticality (even if there is nothing
wrong with a particular part of the system, it still has a higher or lower
criticality than other parts). When the user selects the part to tweak,
a windoe pops up saying "Tweaking [part]..., Press any key". The part which
has just been tweaked is made 100% operational again. The Tweak option contains
no intelligent user interfacing techniques.
Shutdown
The Shutdown button doesn't do anything. I was going to use the text interface
again, but all of the intelligent interfacing techniques would have already been
demonstrated in the Repair section. There's really no reason to complete this
function, since the purpose of this program isn't to be totally realistic; it's
to show intint techniques. Well, maybe for completeness, I'll do this function,
but for IntInt purposes, there's no use in doing this.
Exit
The Exit function is used to leave the simulation. It does not use any
intelligent interfacing techniques.
But it does do this pretty cool thing which looks like what you see when
you turn off a TV -- how the image reduces to a single point in the middle
of the screen, which fades away
Parts of the Nuclear Plant and Initial Conditions
RADIATION PRESSURE TEMPERATURE
NUM DESCRIPTION OKAY Init Warn Alarm Init Warn Alarm Init Warn Alarm
1 CORE T 100 101 101 -1 -1 -1 100 101 101
2 REACTOR T 0 10 30 100 90 70 50 70 90
3 PRIMARY-LOOP T 0 10 30 100 90 70 50 70 90
4 BOILER T 0 10 30 -1 -1 -1 50 70 90
5 STEAM-LINE T 0 10 30 100 90 70 50 70 90
6 CONDENSER T 0 10 30 100 90 70 50 70 90
7 COOLING-LINE T 0 10 30 100 90 70 50 70 90
8 TURBINE T 0 10 30 -1 -1 -1 50 70 90
9 GENERATOR T 0 10 30 -1 -1 -1 50 70 90
10 PUMP-1 T 0 10 30 100 90 70 50 70 90
11 PUMP-2 T 0 10 30 100 90 70 50 70 90
Under "pressure", -1 represents Not Applicable