RESULTADO DEL EXAMEN
08. Deberá disponer la elaboración de un procedimiento, en el que se determine los tiempos máximos que debe invertirse en el control, ingreso y pago de las adquisiciones
The dissents and transitions are triggered incrementally, using the standard methods used for rule-based and truth maintenance systems. In particular,
the method employed is to maintain counters on the dissents and transitions that maintain a record of the unsatisfied antecedents. In the case of a dissent, there is a counter for the observations. For a transition, there are three different counters, one for the component mode assignment in the source of the transition, one for the control variable assignments and one for the component mode assignments in the constraint of the transition.
For the purposes of example and simplicity, the triggering process is described using dissents. The process is easily extended to transitions by simply repeating the process for the different types of variables in the transition.
As an example, consider a subset of the dissents generated from the system described in Chapter 1, with the full list of dissents given in Appendix A.
The counters of the dissents are shown on the right, with the number of observations in the antecedent shown first, followed by the number of observation variables not in the current list of observations. So, the 1:1 is interpreted to mean that the dissent has one observation assignment, and that this assignment is not in the current list of observations. A 1:0 would indicate that the dissent has one observation assignment, and that the observation is in the current list of observations.
[ ] ⇒ ¬[ SWITCH = STUCK-CHARGER-1 ∧ CHARGER-2 = FULL-ON]
[ ] ⇒ ¬[ SWITCH = STUCK-CHARGER-1 ∧ CHARGER-2 = TRICKLE]
[ ] ⇒ ¬[ SWITCH = CHARGER-2 ∧ CHARGER-1 = FULL-ON]
[ ] ⇒ ¬ [ SWITCH = CHARGER-2 ∧ CHARGER-1 = TRICKLE]
[ BATTERY-TEMPERATURE = HIGH ] ⇒ ¬ [ BATTERY = CHARGING ] [ BATTERY-VOLTAGE = ZERO ] ⇒ ¬ [ BATTERY = CHARGING ] [ BATTERY-TEMPERATURE = LOW ] ⇒ ¬ [ BATTERY = FULL ] [ BATTERY-TEMPERATURE = NOMINAL ] ⇒ ¬ [ BATTERY = FULL ] [ BATTERY-VOLTAGE = NOMINAL ] ⇒ ¬ [ BATTERY = DISCHARGING ] 1:1
[ BUS-VOLTAGE = LOW ] ⇒ ¬ [ SWITCH = CHARGER-1 ∧ CHARGER-1
= OFF ]
[ BUS-VOLTAGE = NOMINAL ] ⇒ ¬[ SWITCH = CHARGER-1 ∧ CHARGER-1 = OFF ]
[ BUS-VOLTAGE = ZERO ] ⇒ ¬[ SWITCH = STUCK-CHARGER-2 ∧ CHARGER-2 = FULL-ON ]
[ BUS-VOLTAGE = LOW ] ⇒ ¬[ SWITCH = STUCK-CHARGER-2 ∧ CHARGER-2 = OFF ]
Figure 6-4 - Sampling of Dissents of the NEAR Power Storage System
A dissent is triggered by determining if each observable in the antecedent is in the current list of observations. This is implemented efficiently using a counter discipline. Each dissent is given a counter, initialized to the number of its antecedents. For each observation assignment in the current list of observations, the counter for all dissents that mention that observation are decremented. If the counter on a dissent goes to zero, then it is triggered. Given the observations:
(bus-voltage = nominal), temperature = low), (battery-voltage = nominal)
These observations would trigger the following dissents since their counters go to zero.
[ ] ⇒ ¬[ SWITCH = STUCK-CHARGER-1 ∧ CHARGER-2 = FULL-ON]
[ ] ⇒ ¬[ SWITCH = STUCK-CHARGER-1 ∧ CHARGER-2 = TRICKLE]
[ ] ⇒ ¬[ SWITCH = CHARGER-2 ∧ CHARGER-1 = FULL-ON]
[ ] ⇒ ¬[ SWITCH = CHARGER-2 ∧ CHARGER-1 = TRICKLE]
[ BATTERY-TEMPERATURE = LOW ] ⇒ ¬[ BATTERY = FULL ]
[ BATTERY-VOLTAGE = NOMINAL ] ⇒ ¬[ BATTERY = DISCHARGING ] [ BUS-VOLTAGE = NOMINAL ] ⇒ ¬[ SWITCH = CHARGER-1 ∧ CHARGER-1 = OFF ]
Figure 6-5 - Triggered Dissents from Observations
These dissents are placed in the list of enabled dissents, DEN. The triggering of the proper dissents is performed with efficiency in mind since the
Compiled Mode Estimation process is designed for real time systems.
There are two outstanding issues. First is to know not just when to decrement the counts in a dissent or transition, but to also increment the counts. The second is to avoid iterating through all of the dissents and transitions when decrementing and incrementing the counts. The approach to handling these nuances is demonstrated using the above example.
A count is decremented or incremented only when an observation variable has changed its value from time step ‘t’ to ‘t+1’. For example, if the bus-voltage had the value ‘nominal’ at time ‘t’, and then ‘low’ at time ‘t+1’, then any dissents mentioning the assignments ‘bus-voltage = nominal’
would be incremented, and those mentioning ‘bus-voltage = low’ must be decremented. Knowing when a variable has changed values then requires maintaining a previous truth value and a current truth value within the variable that signals if it has changed values. Then the algorithm can increment and decrement the dissent counters based on the truth-values of a particular assignment. To illustrate this, consider the two sets of observable values below.
Previous: (bus-voltage = low), (battery-temperature =nominal), (battery-voltage = nominal)
Current: (bus-voltage = nominal), (battery-temperature = low), (battery-voltage = nominal)
The truth values for these observations in the current time step would be:
Truth Value
bus-voltage
= nominal
bus-voltage
= low
battery-temperature
= low
battery-temperature
= nominal
battery-voltage
= nominal
Previous false true false true true
Current true false true false true
Table 6-1 - Example of Truth values for Assignments
From this table, the algorithm would then increment any dissent that mentions the observable values (bus-voltage = low) and (battery-temperature = nominal), and decrement any dissents mentioning (bus-voltage = nominal) and (battery-temperature =low). The algorithm would not bother changing the counters for the observable variable ‘battery-voltage’ since its value did not change from the previous time step to the next.
Finally, to update the dissents and transitions, it is inefficient to iterate through the complete list in a brute force fashion. Instead, only the dissents that mention the changed observation variables need to be updated.
Assuming that an observation assignment has a link to the dissents that mention it, all that is required is to iterate through the list of changed observations, and increment or decrement the linked dissents.
This completes the description of the triggering process for dissents. This triggering is extended to transitions by simply updating the truth-values for control variables in the same way as for observation variables. For component mode variables, the truth-values are updated using the list of
‘previous mode estimates’. The steps of the algorithm for triggering are described below.
1. Update truth values of
a. all xio∈Πo using the current set of observations b. all xic∈Πc using the current set of commands c. all xim∈Πm using the previous mode estimates d. Create lists OBS, CMDS, and MODEPrev, that
represent the lists of assignments that have changed 2. For each xio = vij∈ OBS
a. Increment or Decrement all OBS counters in dissents that mention xio = vij
b. Increment or Decrement all OBS counters in transitions that mention xio = vij
3. For each xic = vij∈ CMDS
a. Increment or Decrement all CMD counters in transitions that mention xic = vij
4. For each xim = vij∈ MODEPrev
a. Increment or Decrement all source mode counters in transitions that mention xim = vij
b. Increment or Decrement all mode counters for constraints in transitions that mention xim = vij
5. Determine which Dissents have ‘counter = 0’, and put them in DEN
6. Determine which Transitions have ‘counter = 0’ for the source, observations, command and mode variable counters, and put them in TEN
The above steps outline the Dissent and Transition triggering algorithms, creating the lists of enabled dissents, DEN, and enabled transitions, TEN. Along with the previous mode estimates, these outputs are used in the Constituent Diagnosis Generator to determine the constituent diagnoses, the reachable current modes and the enabled transitions.