System controller

GB2704178APending Publication Date: 2026-08-26INTUICELL AB
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
GB2025001240
Authority / Receiving Office
GB · GB
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-01-28
Publication Date
2026-08-26

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A control signal C for a system 1 is generated in dependence upon sensor data S of the system 1. The sensor data S is associated with set point data 13 corresponding to a target performance. A control
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field This disclosure relates to a system controller that utilises a feedback control loop to maintain at least one sensed feedback parameter at a target level. Background The use of feedback control loops, or closed loop control, within a system is well known. A parameter of system is measured and a control signal is determined, based on the difference between the measured value and a target value for the parameter, to vary the parameter such that the measured value approaches the target value. Such feedback control loops generally link one measured parameter, for example temperature, with one actuator, for example a heater, that can alter the measure parameter under the control of the control signal. One type of system controller is the PID (Proportional Integral Derivative) controller, which generates a control signal based on an instantaneous difference between the measured value for the parameter and the target value (a proportional component), a cumulative difference over time between the measured value for the parameter and the target value (an integrative component), and a rate of change of the difference between the measured value for the parameter and the target value (a derivative component). The integrative component improves the rate at which the measured value approaches the target value in comparison with a purely proportional feedback control system, while the derivative component seeks to reduce any overshoot from the target value. The operation of conventional system controllers in systems having multiple measured parameters and one or more actuators can be challenging, particularly when the value of a measured parameter may be affected by more than one actuator and / or when the measured parameters correspond to different modalities, for example temperature and position. This disclosure discusses a system controller that adopts a novel approach to system control that addresses such or similar challenges. Summary According to a first aspect, there is provided a computer-implemented method of generating a control signal for a system in dependence upon sensor data associated with the system, with the sensor data being associated with set point data corresponding to a target performance for the system. The method includes receiving, by a control system comprising an artificial neural network having a plurality of nodes interconnected by a plurality of edges, the sensor data and determining, by the control system, input signals for the artificial neural network. The determined input signals are input to the artificial neural network, which generates one or more output signals. The control system then determines the control signal based on the one or more output signals. A local learning rule is applied by a node of the artificial neural network to adjust weights for a subset of the plurality of input edges for which the node receives activity output by other nodes of the artificial neural network to reduce deviation between the sensor data and the corresponding set point data. By adjusting the weights for only a subset of the input edges to the node, the artificial network can more efficiently arrive at a set of weights for which the sensor data signals stably match their target performance. In an implementation, the subset of the plurality of edges is selected in dependence on the magnitude of the activity received from each of the other nodes. For example, the subset of edges may correspond to the edges via which the node receives the highest activity output by other nodes. A technical advantage of the disclosed technology is that the selection of the subset of the plurality of edges in dependence on the magnitude of the activity received from each of the other nodes may provide a form of prioritisation for resolving one or more latent, in other words hidden, problems represented in the sensor data. It will be appreciated that the first aspect relates to a negative feedback controller. For a negative feedback controller, it is detrimental to introduce positive feedback into the environment. This disclosure provides techniques for removing positive feedback loops inside a recurrently connected ANN, and positive feedback loops interacting with the environment through the sensors and actuators of a recurrent ANN, by altering that recurrent ANN, allowing the recurrent ANN to effectively control an environment through sensors and actuators with negative feedback control. A node may process a first set of inputs from excitatory nodes, which increase activity in the node, and a second set of inputs from inhibitory nodes, which reduce activity in the node. For each input, the node selects a larger of the value of the input and a previous value of that input modified by a decay function, and multiplies the selected value by a weight for the corresponding edge to generate a weighted input. The node then generates a first summation of the weighted inputs corresponding to the first set of inputs and a second summation of the weighted inputs corresponding to the second set of inputs, and calculates an output in dependence upon the first summation and the second summation. By selecting a decayed value for a previous value of the input when that decayed value is greater than the current value of the input, performance deterioration caused by high frequency artefacts which may arise in the artificial neural network is ameliorated. In an implementation, each output edge for a node is associated with a latency which determines the timing at which the output of the node is propagated along that edge to a different node. The latencies may be randomly assigned to edges. Introducing latencies in this way has the effect of introducing non-linearity into the artificial neural network, which assists in reaching a robust solution set of weights. According to a second aspect, there is provided a computer-implemented method of generating a control signal for a system in dependence upon sensor data associated with the system. The sensor data is associated with set point data corresponding to a target performance for the system. A control system, comprising an artificial neural network having a plurality of nodes interconnected by a plurality of directed edges, receives the sensor data, determines one or more input signals for the artificial neural network and inputs the one or more input signals to the artificial neural network. The artificial neural network generates one or more output signals and the control system determines the control signal based on the one or more output signals. The method further comprises removing an input edge to a recipient node and inserting a directed edge elsewhere in the artificial neural network in dependence upon determining that the activity received via the input edge is high and the suitability of the recipient node to reduce a difference between the sensor data and the corresponding set point data is low. The first and second aspects above provide feedback loop apparatus that has wide applicability. Various implementations, given by way of example only, will now be described with reference to the accompanying drawings. Brief Description of the Drawings Figure 1 is a block diagram schematically showing the main components of a feedback control loop for a system; Figure 2 is a block diagram schematically showing functional components of a system controller forming part of the feedback control loop of Figure 1; Figure 3 is a block diagram showing functional components of an artificial neural network forming part of the system controller of Figure 2; Figure 4 is a flow chart schematically showing operations performed by the system controller forming part of the control loop of Figure 1; and Figure 5 is a block diagram schematically showing the main physical components of the system controller of Figure 1. Detailed Description System Overview Figure 1 schematically shows the main components of a feedback control loop 1 that could be utilised in many types of system. For example, the feedback control loop 1 could be utilised within a manufacturing system, a tracking system for a camera, a robotic system, an auditory system, or an autonomous vehicle. As shown in Figure 1, multiple sensors 3a-3c (hereafter collectively referred to as sensors 3) measure parameters of the system and the surrounding environment and respectively send sensor data signals Sa, Sb, Sc conveying values for the measured parameters to a system controller 5. While for ease of illustration Figure 1 shows three sensors 3, generally there may be any number of sensors 3 and more specifically there may be a plurality of sensors 3. All the sensors 3 may have the same modality, or alternatively the sensors 3 may include sensors having different modalities. For example, one or more of the sensors 3 may be temperature sensors, while others of the sensors 3 may be photosensors, others of the sensors 3 may be pressure sensors, and still others of the sensors 3 may be position sensors. The system controller 5 processes the sensor data signals Sa, Sb, Sc to generate control signals Ca, Cb and Cc which are respectively applied to actuators 7a-7c (hereafter collectively referred to as actuators 7). While for ease of illustration Figure 1 shows three control signals Ca, Cb and Cc and three actuators 7, generally there may be any number of actuators 7. All the actuators 7 may have the same modality, or alternatively the actuators 7 may include actuators having different modalities. For example, one or more of the actuators 7 may be heaters, while others of the actuators 7 may be motors. The actuators 7 interact with actuated system components 9, and this interaction modifies the parameters sensed by the sensors 3. As shown in Figure 1, the system controller 5 includes a pre-processor 11, which compares each of the sensor data signals Sa, Sb, Sc with respective set point data 13 to generate input signals for an artificial neural network (ANN) 15. As will be described in more detail hereafter, the ANN 15 processes the input signals to generate output signals which, when supplied to a control signal generator 17, cause the control signal generator 17 to generate the control signals Ca, Cb and Cc in such a way that the interaction between the actuators 7 and the actuated system components 9 may result in the measured parameter values conveyed by the sensor data signals Sa, Sb, Sc being modified to be closer to the corresponding set point data 13. In particular, each node within the ANN 15 utilises a local learning rule to modify weights associated with input edges to that node to reduce the activity for that node until a stable solution is reached where the control signals Ca, Cb and Cc have caused the sensor data signals Sa, Sb, Sc to match their respective set point data. By using the ANN 15, the system controller 5 can handle feedback control for systems where there is a complex interaction between the actuators 7 and the parameters sensed by the sensors 3. For example, one of the actuators 7 may impact multiple sensed parameters or multiple actuators 7 may impact a single sensed parameter. The System Controller - Function As shown in Figure 2, in this example the pre-processor 11 includes separate processing streams for each of the sensor data signals Sa, Sb, Sc. In particular, the sensor data signals Sa, Sb, Sc are input to respective pre-processing functions 21a-21c, with each pre-processing function including a corresponding comparator 23a-23c that compares the input sensor data signal with corresponding set point data 25a-25c and outputs a signal corresponding to the difference between the parameter value conveyed by the input signal and the parameter value indicated by the corresponding set point data. In this way, each pre-processing function 23 outputs a signal based on the difference between the parameter value conveyed by the input sensor data signal and the parameter value indicated by the corresponding set point data such that the greater the difference is, the larger is the magnitude of the output signal. In this example, the ANN 15 is a random network including a plurality of artificial neurons (hereafter referred to as nodes) that are configured into three sets, in particular a set of input nodes 27, a set of basic nodes 29 and a set of output nodes 31. While three input nodes 27a-27c are shown in Figure 2 for ease of explanation, typically there is one input node for each pre-processing function and accordingly there is one input node corresponding to each sensor data signal. Similarly, while three output nodes 33a-33c are shown in Figure 2 for ease of illustration, typically there is one output node for each signal generator and accordingly there is one output node for each actuator 7. While four basic nodes 29 are shown in Figure 2 for ease of illustration, typically there will be many more basic nodes, for example from ten to five thousand. All the nodes of the ANN 15 are labelled either “excitatory” (Exc in Figure 2) or “inhibitory” (Inh in Figure 2). More particularly, all the input nodes 27 and all the output nodes 31 are excitatory nodes while a subset of the basic nodes (represented in Figure 2 by the basic nodes 29a and 29d) are excitatory nodes with the remainder being inhibitory nodes (represented in Figure 2 by the basic nodes 29b and 29c). The difference between an excitatory node and an inhibitory node is that signals received by a recipient node from an excitatory node generally contribute to increasing the activity of the recipient node whereas signals received by a recipient node from an inhibitory node generally contribute to reducing the activity of the recipient node, as will explained in more detail hereafter. In this example, nodes within the same set and having the same label are configured to have a predefined number of output edges. Accordingly, each of the input nodes 27 has a single input edge connected to the output of a corresponding one of the pre-processing functions 23 and a first predefined number of output edges interconnecting the input node with basic nodes 29 and output nodes 31. Each of the excitatory basic nodes 29 has a second predefined number of output edges interconnecting the excitatory basic node with other basic nodes 29 and output nodes 31. Each of the inhibitory basic nodes 29 has a third predefined number of output edges interconnecting the inhibitory basic node 29 with other basic nodes 29 and output nodes 31. Each of the output nodes 31 has a single output edge connected to respective one of a set of signal generators 33a-33c, which form the control signal generator of Figure 1, and input edges as mentioned above. In this example, the edges within the ANN 15 are assigned taking into account knowledge of the relationship between sensors 3 and actuators 7. For example, it may be known that operation of a first actuator 7 will have a comparatively strong impact on the parameter value detected by a first sensor 3, whereas the operation of a second actuator 7 will have a comparatively strong impact on the parameter value detected by a second sensor 3. Accordingly, a first population of the basic nodes 29 will be assigned to allow direct paths through the first population of basic nodes 29 from a first input node 27 corresponding to the first sensor 3 to a first output node 31 corresponding to the first actuator 7, and the insertion of directed edges into the ANN 15 will be biassed, using a probabilistic function governing the addition of edges, to add directed edges between the first input node 27, the first population of basic nodes 29 and the first output node 31. Similarly, a second population of the basic nodes 29 will be assigned to allow direct paths through the second population of basic nodes 29 from a second input node 27 corresponding to the second sensor 3 to a second output node 31 corresponding to the second actuator 7, and the insertion of directed edges into the ANN 15 will be biassed, using the probabilistic function, to add directed edges between the second input node 27, the second population of basic nodes 29 and the second output node 31. The probabilistic function will allow the addition of edges connecting the basic nodes 29 of the first population and the basic nodes 29 of the second population, either directly or via other basic nodes, permitting activity in the first population of basic nodes 29 to interact with the second population of basic nodes 29, and vice versa. More generally, the insertion of each of the plurality of directed edges is specified by probabilities to a subset of the plurality of nodes for each source node when the ANN is constructed, such that pre-established relationships between sensors and actuators are emphasized in the resulting connectivity. In this example, the signals output from the output nodes 31 can have a positive or negative effect on a subset of the input signals, and more generally the output signals in combination can have a positive or negative effect on the input signals in combination. The Nodes Figure 3 schematically shows the processing of signals received by a recipient node 41 from multiple excitatory nodes, represented in Figure 3 by three excitatory nodes 43a-43c and hereafter referred to as excitatory nodes 43, and multiple inhibitory nodes, represented in Figure 3 by two inhibitory nodes 45a-45b and hereafter referred to as inhibitory nodes 45. It will be appreciated that the actual number of excitatory nodes 43 and inhibitory nodes 45 in practical implementations will generally be significantly higher. The activity signals received by the recipient node 41 from the excitatory nodes 43 and the inhibitory nodes 45 are input to respective different input functions 47a-47e. For each input function 47, the output y is determined in a periodic manner according to the function y(prev_y, x):=MAX(prev_y*label_specific_decay, x) where x is the value of the input to the input function 47, prev_y is a value corresponding to previous output from the input function 47, and label specific delay is a parameter between zero and one that may have different values when the input signal being processed is from an excitatory node and when the input signal being processed is from an inhibitory node. The effect of the input function is that if there is a reduction in the value x of the input of the input function 47 that results in the value x decaying faster than the decay of the previous output of the input function 47 corresponding to the value of the label specific decay parameter, then the value of the decayed previous output y is used in preference to the value of the input x to the input function as the output y of the input function y. This has the effect of reducing high-frequency signals which assists in determining a solution. Such high frequency signals may be generated within recurrent artificial neural networks because there is always a risk of creating positive feedback loops that saturate the network activity, rendering it unresponsive to actual sensory input, and although such positive feedback loops can be at least partially quenched by the inhibitory nodes, the inhibitory quenching lags the build-up of excitatory activity thereby creating high frequency self-amplifying transients. By smoothing the activity of the individual neurons using a decay function for its activity, such self-amplifying transients can be reduced or even avoided, thereby allowing the network activity to focus on determining control signals that reduce the difference between the sensor data and the set point data. The value y of the output from each input function 47 is then input to a respective weight function 49, where the value y is multiplied by a weight w corresponding to the edge via which the input signal for that input function 47 was received by the recipient node 41. The outputs of the weight functions 49 for signals received from excitatory nodes 43 are then input to a first combiner function 51a, which sums the outputs together to generate a sum L_exc, where: L_exc = Xy*w over all the outputs corresponding to excitatory inputs. Similarly, the outputs of the weight functions 49 for signals received from inhibitory nodes 45 are then input to a second combiner function 51b, which sums the outputs together to generate a sum L_inh, where: L_inh = Ey*w over all the outputs corresponding to inhibitory inputs. The values of the parameters L_exc and L_inc are output by the first combiner 51a and the second combiner 5 lb respectively and input to a base function 53, which determines the magnitude of the activity signal output by the recipient node 41 to other nodes. In this example, the output x of the base function is determined by the expression: x := MAX(0, L_exc - (L_inh / 2)). This expression mitigates against the possibility of positive feedback loops being present within the ANN 15, with the L_inh parameter being a determining factor for the rate at which activity in the ANN 15 is reduced. It will be appreciated that variations to this expression can be made while achieving the same effect. The output x of the base function 53 is input to an output function 55 which propagates the output x along the output edges of the node 41. In this example, the output function 55 introduces a latency to the propagation of the output x, with a latency value being specified for each output edge. In this example, the latency values are specified in a random manner. Introducing latencies to the propagated signals introduces non-linearities into the artificial neural network, which allows the activity of different nodes in the artificial neural network to be differentiated. In this way, the time-varying signal in each node is more unique, thereby increasing the number of options to find solutions in the network by amplifying the weights of the edges from those nodes. This assists in the artificial neural network converging to a robust solution. The base function 53 also outputs the L_exc parameter and the L_inh parameter to a learning function 57 which adjusts the weights corresponding to a subset of the input edges so as to reduce activity in the ANN 15 over time and bring the ANN into a stable solution. More particularly, the learning function 57 is a local learning function which adjusts weights for input edges to the corresponding node based on parameters associated with that node. The learning function 57 only adjusts the weights for the input edges for which the output of the input function 47 is among the highest. By focussing the learning on the received activity signals that are strongest, in effect the ANN 15 acts first to reduce the highest areas of activity. This approach assists in reaching a solution, particularly for complex systems where there is no one-to-one correspondence between an actuator and a sensed parameter. In this example, the learning function 57 only modifies the weights for input edges for which the expression prev_y > ALL_y* 0.75 is satisfied, where ALL_y is the maximum value of the signal y output by a input function 47 for that node, although it will be appreciated that many different expressions could be used to arrive at the result of selecting the edges providing the strongest incoming activity signals to that node. For example, the value 0.75 could be replaced by a higher or lower value in the expression given above, or alternatively a predetermined number of the strongest incoming activity signals or a predetermined proportion of the strongest incoming activity signals could be selected. For each of the weights being modified by the learning function 57, if the corresponding input edge connects to an excitatory node and the value of the output y of the corresponding input function is greater than the value of the L_exc parameter, then the learning function 57 increases that weight w by an amount dw that may be expressed as: dw += MAX(0, y - 1 + s - L_exc)*rate where s is a suitability parameter for the node 41 and rate is a learning rate, which is a scalar value used to control the size of dw, and if the value of the L_exc parameter is greater than a threshold value T, then the learning function 57 reduces that weight w by an amount dw that may be expressed as: dw -= MAX(0, L_exc - T)*rate. Similarly, if the input edge corresponding to a weight being modified by the learning function 57 connects to an inhibitory node then if the output y of the corresponding input function is greater than the value of the L_inh parameter, then the learning function 57 increases that weight w by an amount dw that may be expressed as: dw += MAX(0, y - 1 + s - L_inh)*rate and if the value of the L_inh parameter is greater than a threshold value T, then the learning function 57 diminishes that weight w by an amount dw given by the expression: dw -= MAX(0, L inh - T)*rate. As the condition for increasing a weight is dependent on the output y and the condition for reducing a weight is dependent on the summation L_exc, L_inh, it is possible for both conditions to be satisfied in which case the weight is adjusted by the final value of dw after addition and subtraction. The suitability parameter s of the node 41 is modified in dependence on changes to the length of a vector V = (y, L_exc, L_inh). In particular, if dV is zero or negative, suggesting that one or both of L_exc and L_inh is decreasing, then the suitability s is increased, for example by a fixed amount, whereas if dV is positive, suggesting an increase in one or both of L_exc and L_inh, then the suitability s is diminished, for example by a fixed amount. Increasing the suitability s has the effect that for the same difference between the output y for an edge and L_exc when the node 41 is an excitatory node, or the same difference between the output y for an edge and L_inh when the node 41 is an inhibitory node, the weight w corresponding to that edge can be potentiated by a greater amount. If, however, such an increase in weight results in worse performance of the system and the input y, V will increase over time, leading to the suitability reducing. If a positive feedback loop develops in the ANN 15, then the output y corresponding to an edge forming part of the positive feedback loop will grow. The resultant increase in activity results in the suitability s of edges associated with that positive feedback loop diminishing, thereby reducing or eliminating any increase in the weight w for those edges. In this example, in the event that the output y for an edge exceeds the threshold T (for example y >1) and the weight w cannot be potentiated, then that edge may be randomly assigned a different endpoint node or that edge may be removed and another edge randomly inserted elsewhere in the ANN 15, thereby assisting to break any positive feedback loop. The operation of the ANN 15 described above results in the weights for edges being modified until the dw reaches zero for all nodes and the values of the sensed parameters match the values of the corresponding set point data. If the values of L_exc and L_inh are also stably under the threshold T, then all the pathways between the input nodes and the output nodes form part of a negative feedback control system. Operation of the System Controller As shown in Figure 4, the operation of the system controller 5 starts by the system controller configuring, at SI, an initial configuration for the ANN 15, which includes determining which edges of the random network are initially present and which edges of the random network are initially not present and also initial weights for the present edges. In this example, all the initial weights are set to zero but other initial configurations can be used. Following configuring the ANN 15, the system controller 5 receives, at S3, sensor data in the form of the sensor data signals Sa, Sb and Sc. The system controller 5 then determines, at S5, input signals for the ANN 15 using the pre-processor 11 in the manner described above. In particular, input signals are determined in dependence on the magnitude of the difference between parameter values conveyed by the sensor data signals Sa,Sb and Sc and set point data associated with the parameters. The input signals are then input to the ANN 15, which processes, at S7, the input signals to generate output signals. While processing the input signals, the ANN 15 adjusts, at S9, weights for a subset of the input edges to a node using a local learning rule forthat node. The system controller then determines, at SI 1, a control signal based on the output signals. This control signal can affect the parameter values conveyed by the sensor data signals Sa, Sb and Sc. The adjustment of the weightings has the aim of reducing the magnitude of the difference between the parameter values conveyed by the sensor data signals Sa,Sb and Sc and the set point data associated with the parameters. In general terms, the local learning rule aims to increase the weights of input edges into a node to result in an output signal that causes the parameter values for subsequent sensor data signals Sa,Sb and Sc, such that the activity in the ANN 15 reduces, while decreasing the weights for input edges to nodes for which the activity within the node is too large. The learning rule also maintains a suitability value for each node which is increased if the adjustment of weights tends to reduce activity within the node but is decreased if the adjustment of weights tends to increase activity within the node. In the event that activity signals indicative of a positive feedback loop are detected, the ANN 15 removes the input connection of the edge conveying the largest activity signal into the node with the lowest suitability and randomly connects the removed edge endpoint as an input to a different node within the ANN 15 such that the ANN 15 has a new configuration. Over time, the changes of weights in, and the configuration of, the ANN 15 results in the ANN 15 entering a low activity state in which the output signals result in a control signal for which the resultant parameter values in the sensor data signals Sa,Sb and Sc generally match the set point data, and hence the input signals are low. The System Controller - Physical Device Features Figure 5 shows, by way of example, the main components for a software implementation of the system controller. As shown, the system controller 61 includes input / output devices 63, a processor 65 and memory 67. The input / output devices 63 include one of more input devices for receiving the sensor data signals Sa, Sb and Sc. In some examples, there is one input device for each sensor data signal while in other examples there is a single input device having multiple ports allowing the single input device to receive the sensor data signals Sa, Sb and Sc. It will be appreciated that the input devices may conform to standard specifications as are well know in the art. The input / output devices 63 also include one or more output devices for transmitting the control signals Ca, Cb and Sc. In some examples, there is one output device for each control signal while in other examples there is a single output device which transmits a multiplexed control signal allowing the single output device to transmit the control signals Ca, Cb and Cc. It will be appreciated that the output devices may conform to standard specifications as are well known in the art. While the processor 65 is illustrated as a single component, it will be appreciated that the processor 65 may include multiple processing devices. For example, the processing operations may be distributed between multiple processing devices within the system controller 61. The memory 67 may include multiple memory devices having respective different properties, such as access times and permanence, in a manner well known in the art. The memory 67 stores data 69, program routines 71 and also provides working memory 73. The data 69 includes, for example, ANN parameters 75 providing configuration details and edge weights for the ANN 15 and set point data 77. The routines 67 include a pre-process sensor data routine 79, a propagate activity routine 81, a learning rule routine 83 and a generate control signal routine 85. The pre-process sensor data routine 79 determines the input signals for the ANN 15 based on differences between the sensor data signals Sa, Sb and Sc received by the input / output devices 63 and the set point data 77 stored in the memory 67. The generate control signal routine 85 processes output signals from the ANN 15 to generate the control signals Ca, Cb and Cc, and outputs the control signals Ca, Cb and Cc using the input / output devices 63. The propagate activity routine 81 propagates activity signals through the ANN 15 based on the ANN parameters 75 in the manner described above. The learning rule routine 83 modifies the ANN parameters 75 in the manner described above. It will be appreciated that the system controller could alternatively be implemented in hardware, or a different combination of hardware and software, and perform the same processing operations. Modifications and further examples In the illustrated example, actuators 7 interact with actuated system components 9, and the sensors 3 measure parameters associated with the actuated system components 9 and the surrounding environment. Alternatively, one or more of the sensors 3 could sense parameters associated with the actuators 7. Although the illustrated example shows each sensor data signal being compared to respective different set point data to generate an input signal for the ANN 15, alternative configurations in which sensor data received by the system controller generates one or more input signals 15 for the ANN 15 based on a comparison between the sensor data and associated set point data, which may determine the magnitude of the difference between sensor data and set point data, are possible. For example, a single sensor data signal could be pre-processed to derive three parameters which are each compared with respective set point data to generate input signals for the ANN 15. Further, one or more sensor signals may be compared with set point data to generate a single input signal for the ANN 15. Alternatively, the sensor data from two or more sensor data signals could be pre-processed to determine a sensor data value which is compared with a corresponding set point data value. The set-point data may comprise a time-series of set-points in some embodiments. Similarly, although in the illustrated example each output signal from the ANN 15 is input into a respective different signal generator 33, with each signal generator 33 generating a control signal for a respective different actuator 7, alternative configurations are possible in which one or more control signals are determined based on output from the ANN 15. For example, multiple outputs may be input to a single signal generator to generate a control signal for one actuator. While in the illustrated example the system controller utilises software routines, it will be appreciated that at least some of these software routines may alternatively be implemented by hardware, and that there may be performance benefits in so doing. Applications By way of example only, various applications of a system controller as described above will now be described. Robotic Systems Robotic systems, such as robots with articulated limbs (e.g. biped or quadruped robots), are known. Other robotic systems may comprise autonomous propulsion systems for movement which do not use articulated limbs. By way of example, only, the disclosed technology may be used for autonomously controlling and operating systems such as vehicles, for example, cars and heavy duty vehicles, trains, aircraft, surface vessels or submersibles which do not use articulated limbs for movement, including unmanned airborne vehicles (e.g. drones) or unmanned underwater vehicles or parts thereof. Another example of a system or system component which may be controlled using the disclosed technology, includes a motor. A motor may be configured, for example, to control the actuation of a system component such as a valve or the like for flow regulation or to regulate the speed of a propulsion system. For an example such as biped and quadruped robots, the articulated limbs include motors and sensors, and there have previously been successful attempts to train such robotic systems to walk. The previous attempts have, however, required extensive training of the robotic system, particularly as movement of one limb as a result of actuation of a motor may affect multiple sensed signals. In an application of the system controller described above to robots with articulated limbs, the sensors may detect positional information for different locations on the robotic system. This positional information may, for example, be the distance of each sensed location above the ground. The control signals may be applied to respective motors causing movement of the articulated limbs. By setting the set point data to correspond to positions for the sensed location at which the robotic system is in a standing configuration, the robotic system can in effect learn to stand based only on data from the sensors. By way of another example, for unmanned airborne systems and unmanned underwater systems, navigation can be an issue as environmental factors such as wind or water currents can affect navigation in an unpredictable manner. In an application of the system controller described above to unmanned airborne or underwater vehicles, the sensor signals could be produced by positional sensors, for example utilising a suitable global positioning system. This sensor data is compared with set point data based on a planned journey path to generate input signals for the artificial neural network. The output signals from the artificial neural network are then used to generate control signals for steering devices to maintain the unmanned airborne or underwater vehicle along a desired journey path. A Vision System A vision system may include a multi-pixel camera mounted on a motor-driven platform. Each pixel of the multi-pixel camera may input a sensor signal to the system controller, and the system controller may generate one or more control signals for the motor-driven platform. By using set point data that corresponds to a still image in the border areas of the camera images and clearing the set point during motor actuation, the system controller can cause the motor driven platform to center moving objects within the field of view of the camera Such a vision system may have utility on a vehicle such as an automobile or an airborne vehicle, e.g. a drone, either tracking movement of other vehicles or movement of the vehicle relative to stationary objects. An Auditory System A cochlear implant can be used to amplify audio signals to produce output signals that can be more readily perceived by a person with hearing difficulties. In an application, one sensor detects the time-varying audio signal in the environment and inputs the sensed audio data into the system controller, while another sensor detects the time-varying output signal from the cochlear implant and inputs the sensed output data into the system controller. A pre-processing function in the system controller decomposes the sensed audio data into individual spectral components using, for example, Fast Fourier Transform (FFT) or the Short-Term Fourier Transform (STFT). Similarly, the pre-processing function decomposes the sensed output data into the same individual spectral components using, for example, Fast Fourier Transform (FFT) or the Short-Term Fourier Transform (STFT). The pre-processing function is then able to calculates a gain value for each individual spectral component based on the corresponding decomposed sensed signal data and output signal data, and then compare the gain value for each spectral component with corresponding set point data to generate the input signals for the artificial neural network. The output signals from the artificial neural network are then used to control the gain applied within the cochlear implant. By setting the set point data in dependence on the hearing of an individual in a frequency dependent manner, high performance can be achieved across all frequencies for that individual. Telecommunications Network A telecommunications network, such as a wireless communications network, has multiple network parameters which may have an impact on performance. The performance of such a telecommunications network can be characterized by multiple parameters, including parameters associated with noise, for example bit error rate, data rates and data volumes. The exploration of the network parameters to achieve desired physical performance characteristics, which may for example be determined so as to satisfy one or more service level agreement, is challenging. In an application, the physical performance characteristics of the telecommunications network are measured, and the resultant sensor data corresponding to the measurements is input to the system controller. The set point data in the system controller is determined based on desired physical performance characteristics, which may be dynamically updated as the desired physical performance characteristics change. The control signals are then used to modify the network parameters with the aim of achieving the desired physical performance characteristics. For example, if the aim is meet desired service levels for one or more users of a wireless communications network by optimizing signal coverage and quality, this may be achieved by providing control signals to hardware actuators for one or more of the following: adjusting the tilt angle of one or more antennas in some embodiments; adjusting the power levels of base station transmitters or user equipment to manage interference and ensure adequate signal strength; adjusting the direction of an antenna beam, also known as beam forming, dynamically towards specific areas or users for better coverage and capacity; adjusting small cells and relays to enhances network capacity and remove dead zones in high-density under-served areas; dynamically reconfiguring distributed antenna systems for better load balancing and coverage; and optimizing spatial streams for higher network throughput by adjusting the configuration of multiple input multiple output, MIMO, antennas. For example, to optimise signal coverage and quality in a physical network, the disclosed technology may be used to provide control signals to software actuators configured to actuate physical components, for example, one or more of the following: a software actuator for a self-organization network which automatically optimizes network coverage, capacity, and reduces interference by dynamically reconfiguring the network responsive to receiving control signals according to the disclosed technology; a software actuator for adjusting thresholds for handover decisions and / or adjusts other handover optimization parameters responsive to receiving control signals according to the disclosed technology to minimize cell drops and improve user experience; a software actuator for dynamic spectrum allocation, DSA, which causes frequency bands to be adjusted responsive to receiving control signals according to the disclosed technology based on real-time traffic demand and interference conditions; a software actuator for carrier aggregation which combines multiple frequency bands to increase user throughput and overall network capacity responsive to receiving control signals according to the disclosed technology; a software actuator for network slicing responsive to receiving control signals according to the disclosed technology to create virtual networks optimized for specific use cases, for example, loT, video streaming, etc. a software actuator for traffic offloading responsive to receiving control signals according to the disclosed technology to redirect cellular traffic to Wi-Fi or other networks to reduce congestion on that cellular network; a software actuator for implementing load balancing responsive to receiving control signals according to the disclosed technology to redistribute traffic across cells or frequency layers to avoid overloading; and a software actuator for QoS (quality of service) tuning responsive to receiving control signals according to the disclosed technology which prioritizes certain types of traffic, e.g. Video streaming, VoIP, based on service agreements. Another example of a system or system component which may be controlled using the disclosed technology comprises a network traffic management optimiser configured to maximise available uplink connectivity in a wireless. For example, the system may be used to configure multiple network resources to optimise one or more of: network capacity, network connectivity, spectrum allocation, and the like. Other examples of use cases of the disclosed technology in a networking context include but are not limited to: predictive analytics, e.g. for faults or congestion for proactive or pre-emptive action, e.g. load-balancing, proactive or pre-emptive interference management, energy efficiency, resource scheduling and allocation, content caching, anomaly detection and / or correction management. The disclosed technology may accordingly be used in conjunction with a variety of different sensors, including but not limited to sensors configured to sense physical properties, for example: temperature, humidity, proximity, ultrasound, light including one or more or all of ambient visible light, infra-red light, ultra-violet light, pressure, acceleration, colour, touch, level, position, hall effect, tilt, vibration, gas, chemical(s), vibration. Such physical properties may be sensed using sensor systems comprising one or more of the following types of sensors, which is not intended to be a complete list: optical sensors, image sensors, temperature sensors, depth imaging sensors, event imaging sensors, gyroscopic sensors, position sensors, speed sensors, accelerometers, chemical sensors, pressure sensors, electromagnetic field sensors, magnetic field sensors, spectral sensors, electrical current or voltage sensors. Actuators may comprise pneumatic actuators, hydraulic actuators, electric actuators, linear actuators, rotary actuators, piezoelectric actuators, magnetic actuators, mechanical actuators, electric motors, solenoids, thermal actuators e.g. heaters or heatsinks, valves, diaphragm actuators, stepper motors etc. In some examples, a robotic limb actuator comprise a plurality of different types of actuators, for example, a combination of linear actuators and rotary actuators. The above examples are to be understood as illustrative examples only. Further examples are envisaged. Furthermore, equivalents and modifications not described above may also be employed without departing from the scope of the invention, which is defined in the accompanying claims.

Claims

1. A computer-implemented method of generating a control signal for a system in dependence upon sensor data associated with the system, wherein the sensor data is associated with set point data corresponding to a target performance for the system, the method comprising:receiving, by a control system comprising an artificial neural network having a plurality of nodes interconnected by a plurality of edges, the sensor data;determining, by the control system, one or more input signals for the artificial neural network and inputting the one or more input signals to the artificial neural network;generating, by the artificial neural network, one or more output signals;determining, by the control system, the control signal based on the one or more output signals; andadjusting weights associated with edges of the artificial neural network to reduce a difference between the sensor data and the corresponding set point data,wherein the adjusting of weights comprises a node using a local learning rule to adjust the weights for a subset of the plurality of edges for which the node receives activity output by other nodes.

2. A computer-implemented method according to claim 1, wherein no learning rule is applied to edges not included in the subset of the plurality of edges.

3. A computer-implemented method according to claim 1 or claim 2, further comprising selecting the subset of the plurality of edges in dependence on the magnitude of the activity received from each of the other nodes.

4. A computer-implemented method according to claim 3, wherein the subset of the plurality of edges comprises the edges via which the node receives the highest activity output by other nodes.

5. A computer-implemented method according to any preceding claim, wherein the input signals are determined based on a difference between the sensor data and the set point data.

6. A computer-implemented method according to any preceding claim, wherein the plurality of nodes comprises a set of excitatory nodes and a set of inhibitory nodes.

7. A computer-implemented method according to claim 6, wherein thenode:receives a first set of inputs from excitatory nodes and a second set of inputs from inhibitory nodes;for each input, selects a larger of the value of the input and a value representative of previous input modified by a decay function, and multiplies the selected value by a weight for the corresponding edge to generate a weighted input;generates a first summation of the weighted inputs corresponding to the first set of inputs;generates a second summation of the weighted inputs corresponding to the second set of inputs;calculates an output in dependence upon the first summation and the second summation; andpropagates the output along the output edges.

8. A computer-implemented method according to claim 7, wherein each output edge is associated with a latency which determines the timing at which the output is propagated along that output edge.

9. A computer-implemented method according to claim 8, wherein the latency for each edge is randomly assigned.

10. A computer-implemented method according to any of claims 7 to 9, wherein the learning rule increases the weights associated with edges within thesubset of edges for which the selected value is greater than the corresponding one of the first summation and the second summation.

11. A computer-implemented method according to claim 10, wherein the increase in weight is dependent on a suitability value for that node, wherein the suitability is dependent on the values of the first summation and the second summation.

12. A computer-implemented method according to claim 11, further comprising removing an input edge and inserting a directed edge elsewhere in the artificial neural network in dependence upon an expression indicating the selected value for the input edge is high and the suitability value for the node is low.

13. A computer-implemented method according to any preceding claim, wherein the plurality of nodes comprises:one or more input nodes respectively configured to receive the one or more input signals and to propagate the one or more input signals to the other nodes of the artificial neural network;one or more output nodes respectively configured to output the one or more output signals; anda plurality of basic nodes interconnected as a network wherein any basic node is connectable to any other basic node by a directed edge, thereby defining a plurality of possible directed edges, and a proportion of the plurality of possible directed edges are assigned.

14. A computer-implemented method according to claim 13, wherein the number of directed edges for each node is determined when the artificial neural network is constructed.

15. A computer-implemented method according to claim 13 or claim 14, wherein the insertion of each of the plurality of directed edges is specified by probabilities to a subset of the plurality of nodes for each source node when theartificial neural network is constructed, such that pre-established relationships between sensors and actuators are emphasized in the resulting connectivity. .

16. A computer-implemented method of generating a control signal for a system in dependence upon sensor data associated with the system, wherein the sensor data is associated with set point data corresponding to a target performance for the system, the method comprising:receiving, by a control system comprising an artificial neural network having a plurality of nodes interconnected by a plurality of directed edges, the sensor data;determining, by the control system, one or more input signals for the artificial neural network and inputting the one or more input signals to the artificial neural network;generating, by the artificial neural network, one or more output signals; and determining, by the control system, the control signal based on the one or more output signals,wherein the method further comprises removing an input edge connection to a recipient node and inserting a directed edge elsewhere in the artificial neural network in dependence upon determining that the activity received via the input edge is high and the suitability of the recipient node to reduce a difference between the sensor data and the corresponding set point data is low.

17. A control system comprising at least one processor and memory storing instructions that, when implemented by the at least one processor, perform a method as claimed in any preceding claim.

18. A system controller comprising:at least one input device to receive sensor data associated with a system;a pre-processor configured to determine one or more input signals based on the sensor data and set point data corresponding to a target performance for the system;an artificial neural network having a plurality of nodes interconnected by a plurality of edges, wherein the artificial neural network is configured to generate one or more output signals in dependence on the one or more input signals and weights associated with the plurality of edges, the artificial neural network being configured to adjust the weights associated with the plurality of edges to reduce a difference between the sensor data and the corresponding set point data;at least one output device configured to output a control signal for controlling at least one actuator of the system,wherein the artificial neural network is configured to adjust the weights by a node using a local learning rule to adjust the weights for a subset of the plurality of edges for which the node receives activity output by other nodes.

19. A system controller according to claim 18, wherein the plurality of nodes comprises a set of excitatory nodes and a set of inhibitory nodes, and wherein a node in the artificial neural network is configured to:receive a first set of inputs from excitatory nodes and a second set of inputs from inhibitory nodes;for each input, select a larger of the value of the input and a value representative of previous input modified by a decay function, and multiplies the selected value by a weight for the corresponding edge to generate a weighted input;generate a first summation of the weighted inputs corresponding to the first set of inputs;generate a second summation of the weighted inputs corresponding to the second set of inputs;calculate an output in dependence upon the first summation and the second summation; andpropagate the output along the output edges.

20. A system controller according to claim 18 or claim 19, wherein the plurality of nodes comprises:one or more input nodes respectively configured to receive the one or more input signals and to propagate the one or more input signals to the other nodes of the artificial neural network;one or more output nodes respectively configured to output the one or more output signals; anda plurality of basic nodes interconnected as a network wherein any basic node is connectable to any other basic node by a directed edge, thereby defining a plurality of possible directed edges, and a proportion of the plurality of possible directed edges are assigned.

21. A system controller according to any of claims 18 to 20, wherein each output edge from a node is associated with a respective latency which determines the timing at which the output is propagated along that output edge.

22. A robotic system comprising a system controller according to any of claims 18 to 21.

23. A vision system comprising a system controller according to any of claims 18 to 21.

24. An auditory system comprising a system controller according to any of claims 18 to 21.

25. A telecommunications network comprising a system controller according to any of claims 18 to 21.

Citation Information

Patent Citations

  • ViewUS8943008B2onEspacenetopensinnewtab

  • ViewUS5159660AonEspacenetopensinnewtab

  • ViewCN1274435AonEspacenetopensinnewtab