Skip to content

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:

  1. The mental belief confidence level (ratio of satisfied prerequisite conditions to total prerequisite conditions) exceeds the specified activation_probability threshold.
  2. Mental belief activation is not blocked by the reset time delay.
  3. The branch_probability is 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. The activation_probability for 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 than priority_threshold in ActionTaker.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 ​

FieldTypeDescriptionExample Value
countInteger (> 0)Analyst-assigned sequential index for the mental belief entry. Not used by ADS-IDAC; provided for file readability verification only.1
mental_belief_nameStringUnique descriptive name for the mental belief. No spaces; use _. Must be unique within the file.Reactor_Tripped
activation_probabilityDouble (> 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_probabilityDouble (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_timeDouble, 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_timeDouble, 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 ​

text
Number_of_expected_alarm_state    NUM_ALARMS
ALARM_NAME_1                      ALARM_STATE_1
...
ALARM_NAME_N                      ALARM_STATE_N
FieldTypeValues
number_of_alarmsInteger0 or more
alarm_name_iStringMust match an alarm in ControlPanel.txt
alarm_state_iInteger3022 (VON — alarm active), 3023 (VOFF — alarm cleared)

2. Component States ​

text
Number_of_expected_component_state    NUM_COMPONENTS
COMPONENT_NAME_1                      COMPONENT_STATE_1
...
COMPONENT_NAME_N                      COMPONENT_STATE_N
FieldTypeValues
number_of_componentsInteger0 or more
component_name_iStringMust match a component in ControlPanel.txt
component_state_iInteger3022 (VON — component running/on), 3023 (VOFF — component stopped/off)

3. Parameter States ​

text
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
FieldTypeValues
number_of_parametersInteger0 or more
parameter_name_iStringMust match a parameter in ControlPanel.txt
logical_operatorIntegerSee operator code table below
value_1DoubleThreshold value (lower bound for VBETWEEN)
value_2DoubleUpper bound for VBETWEEN; dummy value (e.g., 0.0) for all other operators — must always be entered

Logical operator codes for parameter states:

CodeMnemonicCondition
3006VGTCondition satisfied when parameter > value_1
3007VGECondition satisfied when parameter >= value_1
3008VEQCondition satisfied when parameter = value_1
3009VLECondition satisfied when parameter <= value_1
3010VLTCondition satisfied when parameter < value_1
3032VBETWEENCondition satisfied when value_1 < parameter < value_2

4. Control States ​

text
Number_of_manipulative_control    NUM_CONTROLS
CONTROL_NAME_1                    MINIMUM_CONTROL_VALUE_1
...
CONTROL_NAME_N                    MINIMUM_CONTROL_VALUE_N
FieldTypeValues
number_of_controlsInteger0 or more
control_name_iStringMust match a controller in ControlPanel.txt
minimum_control_value_iDoublePrerequisite is satisfied when the controller value >= this minimum

5. Mental Belief States ​

text
Number_of_mental_belief    NUM_MENTAL_BELIEFS
MENTAL_BELIEF_NAME_1       MENTAL_BELIEF_STATE_1
...
MENTAL_BELIEF_NAME_N       MENTAL_BELIEF_STATE_N
FieldTypeValues
number_of_mental_beliefsInteger0 or more
mental_belief_name_iStringMust match a mental belief entry in this same file
mental_belief_state_iIntegerSee state code table below

Mental belief state codes:

CodeMnemonicMeaning
3020VCHECKED (VFAILED)Mental belief is not active
3021VUN_CHECKED (VSUCCEED)Mental belief is active
3045VDONE (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 ​

text
Number_of_procedure_activity    NUM_PROCEDURES
PROCEDURE_NAME_1                PROCEDURE_STATE_1
...
PROCEDURE_NAME_N                PROCEDURE_STATE_N
FieldTypeValues
number_of_proceduresInteger0 or more
procedure_name_iStringMust match a procedure in Procedures.txt
procedure_state_iIntegerSee state code table below

Procedure state codes:

CodeMnemonicMeaning
3045VNONENo status information available
3089VINTERRUPTEDProcedure abandoned
3097VDONE (VACTIVE)Procedure complete
3126VACTIVEProcedure currently in use
3127VPAUSEProcedure 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:

text
Mental_procedure_priority    PRIORITY
PROCEDURE_NAME
STEP_NAME
FieldTypeDescription
priorityInteger (>= 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_nameStringName 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_nameStringStarting 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 ​

text
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_NAME

Sample 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.

text
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
NONE

Interpretation 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.

ADS-IDAC Engine Documentation