KB_OAT_HardWired_Diagnosis.txt
Purpose
KB_OAT_HardWired_Diagnosis.txt defines the mental beliefs (hard-wired instinctive responses) that may be activated by the Operator Action Taker during a simulation run. Mental beliefs encode operator cognition that operates at a level below deliberate procedure following — they represent the operator's trained, automatic recognition of plant states and the associated responses.
Once activated, a mental belief may:
- Initiate a memorized (mental) procedure.
- Serve as a prerequisite condition for activating other mental beliefs.
- Contribute to the evaluation of procedure step expectations and knowledge-based action prerequisites.
- Feed the fuzzy logic diagnostic engine (when the mental belief name matches a symptom name in
KB_OAT_Event_Matrix.txt).
Activation Logic
A mental belief is activated when all three of the following conditions are met simultaneously:
- The mental belief confidence level (ratio of satisfied prerequisite conditions to total prerequisite conditions) exceeds the specified
activation_probabilitythreshold. - Mental belief activation is not blocked by the reset time delay.
- The
branch_probabilityis not zero (> 0.000001).
The branch_probability controls whether a branching event is generated:
0.999999 — a single activation branch is generated (deterministic activation).
- < 0.000001 — the mental belief is never activated (useful for symptom-only mental beliefs that feed the diagnostic engine without generating branches).
- Intermediate — two branches are generated: one activating the mental belief (with probability equal to
branch_probability) and one blocking it (with complementary probability).
Special Mandatory Mental Beliefs
Required beliefs: Normal_Operation and Reactor_Tripped
ADS-IDAC recognizes two mental belief names that must be present in this file:
Normal_Operation— used by the goal selection process to determine when the operator concludes that the plant is in a normal operating state. Theactivation_probabilityfor this belief gates the transition to the normal operating high-level goal.Reactor_Tripped— used by the goal selection process and triggers the suspension of all low-priority mental procedures (those with a priority value greater thanpriority_thresholdinActionTaker.txt).
If these special mental beliefs are absent the goal selection process will not function correctly.
Case sensitivity
All string identifiers — mental belief names, alarm names, component names, parameter names, procedure names, and step names — are case-sensitive and must match exactly across all input files. Mismatches will not generate an obvious error; they will silently fail to match prerequisite conditions.
Per-Belief Fields
| Field | Type | Description | Example Value |
|---|---|---|---|
count | Integer (> 0) | Analyst-assigned sequential index for the mental belief entry. Not used by ADS-IDAC; provided for file readability verification only. | 1 |
mental_belief_name | String | Unique descriptive name for the mental belief. No spaces; use _. Must be unique within the file. | Reactor_Tripped |
activation_probability | Double (> 0.0) | Minimum confidence ratio required to enable activation. Low values approximate OR-gate logic; values near 1.0 approximate AND-gate logic. Do not set to exactly 1.0 (numerical bias prevents exact equality). | 0.8 |
branch_probability | Double (0.0 – 1.0) | Probability of generating a mental belief activation branch. Set to 0.0 for symptom-only beliefs (diagnostic engine input only). Set to 1.0 for deterministic activation. | 1.0 |
activation_delay_time | Double, Double, Double (all > 0.0) | Weibull parameters (u, α, β) for the delay between mental belief activation and initiation of the associated mental procedure. | 30.0 20.0 1.0 |
reset_delay_time | Double, Double, Double (all > 0.0) | Weibull parameters (u, α, β) for the dormancy period after activation during which the belief cannot be reactivated. Set to a large value (e.g., 10000.0) to effectively allow only one activation per simulation run. | 10000.0 1.0 1.0 |
Prerequisite Sections
All six prerequisite sections are optional. Set the count for any section to 0 to skip it. Each section may be present, absent, or set to zero entries independently.
1. Alarm States
Number_of_expected_alarm_state NUM_ALARMS
ALARM_NAME_1 ALARM_STATE_1
...
ALARM_NAME_N ALARM_STATE_N| Field | Type | Values |
|---|---|---|
number_of_alarms | Integer | 0 or more |
alarm_name_i | String | Must match an alarm in ControlPanel.txt |
alarm_state_i | Integer | 3022 (VON — alarm active), 3023 (VOFF — alarm cleared) |
2. Component States
Number_of_expected_component_state NUM_COMPONENTS
COMPONENT_NAME_1 COMPONENT_STATE_1
...
COMPONENT_NAME_N COMPONENT_STATE_N| Field | Type | Values |
|---|---|---|
number_of_components | Integer | 0 or more |
component_name_i | String | Must match a component in ControlPanel.txt |
component_state_i | Integer | 3022 (VON — component running/on), 3023 (VOFF — component stopped/off) |
3. Parameter States
Number_of_expected_parameter_value NUM_PARAMETERS
PARAMETER_NAME_1 LOGICAL_OPERATOR_1 VALUE1_1 VALUE2_1
...
PARAMETER_NAME_N LOGICAL_OPERATOR_N VALUE1_N VALUE2_N| Field | Type | Values |
|---|---|---|
number_of_parameters | Integer | 0 or more |
parameter_name_i | String | Must match a parameter in ControlPanel.txt |
logical_operator | Integer | See operator code table below |
value_1 | Double | Threshold value (lower bound for VBETWEEN) |
value_2 | Double | Upper bound for VBETWEEN; dummy value (e.g., 0.0) for all other operators — must always be entered |
Logical operator codes for parameter states:
| Code | Mnemonic | Condition |
|---|---|---|
| 3006 | VGT | Condition satisfied when parameter > value_1 |
| 3007 | VGE | Condition satisfied when parameter >= value_1 |
| 3008 | VEQ | Condition satisfied when parameter = value_1 |
| 3009 | VLE | Condition satisfied when parameter <= value_1 |
| 3010 | VLT | Condition satisfied when parameter < value_1 |
| 3032 | VBETWEEN | Condition satisfied when value_1 < parameter < value_2 |
4. Control States
Number_of_manipulative_control NUM_CONTROLS
CONTROL_NAME_1 MINIMUM_CONTROL_VALUE_1
...
CONTROL_NAME_N MINIMUM_CONTROL_VALUE_N| Field | Type | Values |
|---|---|---|
number_of_controls | Integer | 0 or more |
control_name_i | String | Must match a controller in ControlPanel.txt |
minimum_control_value_i | Double | Prerequisite is satisfied when the controller value >= this minimum |
5. Mental Belief States
Number_of_mental_belief NUM_MENTAL_BELIEFS
MENTAL_BELIEF_NAME_1 MENTAL_BELIEF_STATE_1
...
MENTAL_BELIEF_NAME_N MENTAL_BELIEF_STATE_N| Field | Type | Values |
|---|---|---|
number_of_mental_beliefs | Integer | 0 or more |
mental_belief_name_i | String | Must match a mental belief entry in this same file |
mental_belief_state_i | Integer | See state code table below |
Mental belief state codes:
| Code | Mnemonic | Meaning |
|---|---|---|
| 3020 | VCHECKED (VFAILED) | Mental belief is not active |
| 3021 | VUN_CHECKED (VSUCCEED) | Mental belief is active |
| 3045 | VDONE (VNONE) | No status information available, or mental belief not active |
INFO
The manual lists both the mnemonic used in format examples (VCHECKED/VUN_CHECKED/VDONE) and the internal code names (VFAILED/VSUCCEED/VNONE). Use the integer codes (3020, 3021, 3045) in the actual input file.
6. Procedure States
Number_of_procedure_activity NUM_PROCEDURES
PROCEDURE_NAME_1 PROCEDURE_STATE_1
...
PROCEDURE_NAME_N PROCEDURE_STATE_N| Field | Type | Values |
|---|---|---|
number_of_procedures | Integer | 0 or more |
procedure_name_i | String | Must match a procedure in Procedures.txt |
procedure_state_i | Integer | See state code table below |
Procedure state codes:
| Code | Mnemonic | Meaning |
|---|---|---|
| 3045 | VNONE | No status information available |
| 3089 | VINTERRUPTED | Procedure abandoned |
| 3097 | VDONE (VACTIVE) | Procedure complete |
| 3126 | VACTIVE | Procedure currently in use |
| 3127 | VPAUSE | Procedure temporarily suspended |
Mental Procedure Trigger (Optional)
If a mental belief should initiate a memorized procedure upon activation, append the following section after all prerequisite blocks:
Mental_procedure_priority PRIORITY
PROCEDURE_NAME
STEP_NAME| Field | Type | Description |
|---|---|---|
priority | Integer (>= 1) | Priority level of the mental procedure. Lower integer = higher priority. Used for procedure scheduling and for blocking low-priority procedures after an abnormal condition is detected. |
procedure_name | String | Name of the mental procedure in Procedures.txt. Use the prefix MPBG_ to denote a mental belief-initiated procedure. Enter NONE if no procedure is associated. |
step_name | String | Starting step name within the procedure. Enter NONE if no procedure is associated. |
INFO
If no procedure is to be associated with a mental belief, NONE must still be entered for both procedure_name and step_name. The Mental_procedure_priority section is always required in the format; enter a dummy integer priority value when no procedure is associated.
File Format
Number_of_Hardwired_Diagnosis NUMBER_OF_ITEMS
COUNT MENTAL_BELIEF_NAME
activation_probability ACTIVATION_PROBABILITY
branch_probability BRANCH_PROBABILITY
activation_delay_time U_ACTIVATION ALPHA_ACTIVATION BETA_ACTIVATION
reset_delay_time U_RESET ALPHA_RESET BETA_RESET
Number_of_expected_alarm_state NUM_ALARMS
ALARM_NAME_1 ALARM_STATE_1
Number_of_expected_component_state NUM_COMPONENTS
COMPONENT_NAME_1 COMPONENT_STATE_1
Number_of_expected_parameter_value NUM_PARAMETERS
PARAMETER_NAME_1 LOGICAL_OPERATOR_1 VALUE1_1 VALUE2_1
Number_of_manipulative_control NUM_CONTROLS
CONTROL_NAME_1 MIN_CONTROL_VALUE_1
Number_of_mental_belief NUM_MENTAL_BELIEFS
MENTAL_BELIEF_NAME_1 MENTAL_BELIEF_STATE_1
Number_of_procedure_activity NUM_PROCEDURES
PROCEDURE_NAME_1 PROCEDURE_STATE_1
Mental_procedure_priority PRIORITY
PROCEDURE_NAME
STEP_NAMESample Input
The following example from the manual illustrates five mental beliefs covering the three major categories: (1) diagnostic engine symptom support, (2) mental procedure triggers, and (3) the mandatory special beliefs Normal_Operation and Reactor_Tripped.
Number_of_Hardwired_Diagnosis 5
1 Tave_Increase
activation_probability 1.0
branch_probability 0.0
activation_delay_time 0.0 1.0 1.0
reset_delay_time 3600.0 1.0 1.0
Number_of_expected_alarm_state 0
Number_of_expected_component_state 0
Number_of_expected_parameter_value 4
Tave-Tref 3007 1.0 0.0
RATE_Loop_A_Tave 3007 1.0 0.0
RATE_Loop_B_Tave 3007 1.0 0.0
RATE_Loop_C_Tave 3007 1.0 0.0
Number_of_manipulative_control 0
Number_of_mental_belief 0
Number_of_procedure_activity 0
Mental_procedure_priority 5
None
None
2 Align_B_MDAFP_Flow_Path
activation_probability 0.8
branch_probability 1.0
activation_delay_time 50.0 20.0 1.0
reset_delay_time 10000.0 1.0 1.0
Number_of_expected_alarm_state 0
Number_of_expected_component_state 1
B_MDAFP_On 3022
Number_of_expected_parameter_value 0
Number_of_manipulative_control 0
Number_of_mental_belief 1
Align_A_MDAFP_Flow_Path 3045
Number_of_procedure_activity 0
Mental_procedure_priority 5
MPBG_Align_MDAFP_Valves
Step_1
3 Align_A_MDAFP_Flow_Path
activation_probability 0.8
branch_probability 1.0
activation_delay_time 30.0 20.0 1.0
reset_delay_time 10000.0 1.0 1.0
Number_of_expected_alarm_state 0
Number_of_expected_component_state 1
A_MDAFP_On 3022
Number_of_expected_parameter_value 0
Number_of_manipulative_control 0
Number_of_mental_belief 1
Align_B_MDAFP_Flow_Path 3045
Number_of_procedure_activity 0
Mental_procedure_priority 1
MPBG_Align_MDAFP_Valves
Step_1
4 Normal_Operation
activation_probability 0.8
branch_probability 0.0
activation_delay_time 0.0 1.0 1.0
reset_delay_time 10.0 1.0 1.0
Number_of_expected_alarm_state 0
Number_of_expected_component_state 0
Number_of_expected_parameter_value 3
Tave-Tref 3032 -1.5 1.5
PZR_Pressure 3032 2200.0 2300.0
PZR_Level 3032 0.40 0.55
Number_of_manipulative_control 0
Number_of_mental_belief 0
Number_of_procedure_activity 0
Mental_procedure_priority 5
NONE
NONE
5 Reactor_Tripped
activation_probability 0.8
branch_probability 1.0
activation_delay_time 0.0 1.0 1.0
reset_delay_time 10000.0 1.0 1.0
Number_of_expected_alarm_state 1
A_Reactor_Trip 3022
Number_of_expected_component_state 0
Number_of_expected_parameter_value 0
Number_of_manipulative_control 0
Number_of_mental_belief 0
Number_of_procedure_activity 0
Mental_procedure_priority 5
NONE
NONEInterpretation of the Sample Entries
Tave_Increase — This entry exists solely to support the diagnostic engine; branch_probability = 0.0 means no branch is ever generated. The four parameter prerequisites evaluate whether average temperature and its rate of change indicate an increasing Tave. The activation_probability = 1.0 means the belief is never used to initiate a procedure (but the diagnostic engine reads the confidence directly without needing a branch). No mental procedure is associated.
Align_B_MDAFP_Flow_Path / Align_A_MDAFP_Flow_Path — These two beliefs are symmetric. Each activates when its respective motor-driven AFW pump is running (component state VON) and the companion belief has not been activated (mental belief state 3045 — VNONE/not active). This logic prevents the same mental procedure MPBG_Align_MDAFP_Valves from being executed twice. The reset delay of 10,000 seconds prevents reactivation for simulations lasting less than approximately 165 minutes. Note the differing priorities (5 vs. 1) and activation delays (50 s vs. 30 s).
Normal_Operation — No branch is generated (branch_probability = 0.0); dummy values are entered for activation/reset delays and the associated procedure. However, the activation_probability of 0.8 is used by the goal selection process. The three VBETWEEN parameter prerequisites define a window of normal operating conditions for Tave deviation, pressurizer pressure, and pressurizer level.
Reactor_Tripped — A single deterministic branch is generated when the reactor trip alarm activates. The 10,000-second reset delay limits this to a single activation per simulation run. Although no procedure is associated, activation of this belief triggers two key ADS-IDAC functions: (1) it enables the reactor-tripped branch in the goal selection process and (2) it suspends all mental procedures with a priority value greater than priority_threshold from ActionTaker.txt.
k-of-n logic using activation_probability
If a mental belief has five prerequisite conditions and any three being satisfied is sufficient for activation, set activation_probability in the range 0.4 < x < 0.8. With exactly 5 prerequisites, three satisfied gives a confidence of 3/5 = 0.60, which exceeds a threshold of 0.4 – 0.59 but does not exceed 0.61 – 0.80.