Autonomic microprocessor control

The Autonomic Microprocessor Controller

The Autonomic Microprocessor Controller (AMC) was originally given that name because it provided fast autonomic control of the environment whilst higher level processing was carried out to deduce more accurate information from the patterns of sensor firing and from what was predicted from experience. A brief discussion, further down this page, of the original AMC explains its intended goals and also provides a simple user interface screen shot. The version of the AMC used until 2013 can be seen here. Whilst this has now been superseded, it worked reliably for approximately 20 years, operating constantly over that long period of time without any problems. The circuit board which delivered this exceptional service was from Cambridge Microprocessor Systems Ltd. The change of board was for unstated reasons but I have little doubt that the Cambridge board would have functioned reliably for another 20 years if I had left it in place.

The general intentions of the AMC will be continued within the current work and the capabilities of the current AMC are discussed here.

The current AMC

New AMC interface screen

The latest version (2013) of the AMC uses an Arduino Mega 2560 board but the software is very similar to that used in the previous version of the AMC. Since the Arduino does not have the memory available in the Cambridge Microprocessor board, it does not handle any user interface. The Arduino based AMC is a system or environmental interface controller. The figure here shows the Arduino housed in a termination cabinet where all environmental systems terminate. The I/O capabilities of the Arduino Mega mean that it can connect directly to all environmental peripherals. The AMC connects to a higher level system (HLP) which is based on a Raspberry PI. The higher level system now also performs the user interface functions as well as system or engineering interface and will also carry out the long and short term memory functions. This AMC has been configured to stand alone in the absence of any higher level system. If the higher level system goes off line for any reason, the AMC will continue to function and provide autonomous service. However,users will have no direct control of the system. The HLP is configured to automatically reboot itself and ask the AMC for current operating status when it restarts. The AMC is equipped with a watch dog timer and appropriate start up rules in case of failure.

The AMC provides automatic service for many of the lights in the premises, the water heating, the central heating and the alarm system. It measures the environment in terms of movement sensors, door contacts, light level, inside, outside and water temperatures. It also measures the amount of electricity which the premises is currently using.

The AMC monitors all environmental sensors at a frequency of more than 1000 times per second. It contains a set of basic rules which guide its control capability and a slightly more detailed set of rules to cope with more demanding tasks such as what to do if the premises is empty and it gets very cold.

The AMC also provides a full environmental interface for the Higher Level Processor and if instructed to do so, will relay all environmental activity to the HLP so that a complete record of environmental states are available to the user interface and higher level functions.

The Original Autonomic Microprocessor Controller

Original AMC Screen

The figure shows a typical display interface for the original AMC. It also provides some indication of the current activities going on in Short Term Memory as well as providing several administrative tools.. The AMC operated from a set of simple set of control rules of the form :-

If the light level < switch over value
and the kitchen is occupied
and overrides are not in operation
then set the kitchen light timer for a fixed time period

If timer for device x is set
then operate device x

If timer for device x is zero
then make device x inactive

If people have been in bed > 6 hours 
and the water temperature is < 48°C
and overrides are not in operation
then bring the water to 48°C

Environmental sensors were monitored in a continuous loop. The length of the loop was slightly variable but averaged 6ms. This period was well within the time constant for all digital sensors used in this work and more than adequate for analogue sensors. Sensor readings were averaged to provide raw data for LTM. User interface and control functions were part of the basic processing loop.

Higher level control rules were performed more infrequently along with other less urgent system maintenance tasks. AMC-HLP communications was carried out as a parallel operation.

The AMC used a matrix of variable timers to maintain the operation of peripheral devices. Timers were also controlled by overrides and set points. Control options could be performed autonomously by the AMC or through direct intervention from the HLP. Intervention was most successful if performed through an intermediate set point.

The AMC was so labelled because it provided fast, reflex control of the environment. It operated from a simple rule set and could perform independently of the HLP. Data from the AMC was relayed to the HLP, where higher level computation attempted to maintain a computer representation of the environment; chiefly the occupation of the environment.

Occupant location was heavily constrained by the use of a very simple sensing technique. Sensing people was done either by a single movement detector in each room, or from external doorway contacts. It was the highly constrained nature of the sensing method which forced reliance on inductive processes and learning, to attempt to maintain a model of the occupation of the environment. This model was intended to show the number of people who occupy any room in the premises at all times.

Higher level operations relied chiefly on the use of two parallel memory models. Human analogies for such memory models discussing long term, short term and working memory, were developed earlier (Narayanan 1986). Short Term Memory (STM) was used to remember the most recent movement related events which arrived from the environment via the AMC. It was also used as the focus for the inductive processes which deposited a memory model at every cell in STM. This memory model reflected the current belief in the occupation of the environment

Long Term Memory was provided with averaged sensor data by the AMC. Unlike STM, LTM received information about all sensor and actuators including temperature, light level etc. The information in LTM was generalised and applied to a span of time and not a time instant. This information was intended to provide predictions about the likely state of environmental sensors, to assist in event evaluation. LTM was also intended to be an experimental vehicle to evaluate the benefit that learning may bring to a Machine Control system which was to operate entirely in a Human Environment with heavily constrained sensing.

The AMC - Before changes in 2013

New AMC interface screen

This figure shows the user interface to the previous AMC. This is the one which was redesigned in 1995 and which has been updated periodically to reflect changes to the environment and some small requirements changes.The small red or green dots indicate active or inactive movement sensors whilst the larger black or yellow dots indicate inactive or active lights. Note that at the time this screen shot was taken, the light level was very low. Where doors are monitored by the AMC, they are shown as either open or closed but where doors are not monitored, they are always shown as open. The space at the bottom of the interface shows a user command and responce capability. The AMC interprets simple typed text commands by recognising specific key words within the text and acting on the order of the words within the text. The AMC can respond to requests such as reporting the water temperature or it can accept control commands such as turn the hall light on or activate the hall light or turn on the water heater for 30 minutes. There are also a range of other commands which the AMC can accept such as the command to relay any or all of its real time data to the interface, later to be the High Level Processor.

The AMC currently provides automatic service for many of the lights in the premises, the water heating, the central heating and the alarm system. It measures the environment in terms of movement sensors, door contacts, light level, inside, outside and water temperatures. It also measures the amount of electricity which the premises is currently using.

The AMC could therefore understand its environment based on its sensing and control capability.