Nuclear Power Simulator - User's Manual
IntInt Techniques Used in the Nuclear Power Simulator
Instances of intelligent interface demonstrations are noted by STRONG CAPITAL LETTERS.
These links will bring you to the parts of this User's Manual that discuss the respective technique.
- User Model: Basics of user modeling (especially registration)
- Intelligent Data Presentation: Display of gauges appropriate for user
- Intelligent Use of Knowledge: Suggestions on what to repair
- User Model: Freedom in selecting part to repair based on experience
- Dynamic User Modeling: Upgrade or downgrade user competence by examining user activity
- Plan Recognition: Automatic macro detection
- Intelligent Help: Help makes suggestions based on intelligent use of knowledge and user competency
User's Manual
0. Command Line Parameter
You need to pass a command line parameter to nuclear.exe. This parameter represents the time between system failures (it's not measured in anything concrete like seconds; it's more like "cycles"). So, for example, to run it use "nuclear 20".
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. 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. 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.