Controller and method for controlling performance of a system

By detecting and predicting state changes of objects in complex systems, and applying personalized and aggregated actions, the negative impact of local actions on overall performance is resolved, and controllable optimization of system performance is achieved.

CN116457737BActive Publication Date: 2025-11-28EATON INTELLIGENT POWER LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202080107294.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-11-25
Publication Date
2025-11-28
Estimated Expiration
2040-11-25

AI Technical Summary

Technical Problem

In complex systems, actions that improve the local performance of a single component may have a negative impact on the overall performance of the system, and the uncertainty of the propagation effect makes it difficult to effectively control system performance.

Method used

By detecting changes in the state of system objects, a personalized first modification action is determined and applied. Subsequently, the resulting propagation effect is detected and predicted, and a second modification action is determined and applied to alleviate the overall performance of the system. The overall performance of the system is optimized through a controller, which includes a change detection module, a prediction module, and a modification module.

Benefits of technology

It effectively mitigates the adverse effects on global performance caused by local actions, improves the predictability and controllability of system performance, and ensures that the system maintains or improves overall performance while improving local performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116457737B_ABST
    Figure CN116457737B_ABST
Patent Text Reader

Abstract

The present disclosure provides a controller and method for controlling objects in a complex system. System performance according to a performance metric is controlled based on a state of each of the system objects. A state change of at least one first object in the system is detected (52). A first modifying action to the at least one first object in response to the detected state change is determined and output for application to the at least one first object (54). A state change of at least one second object in the plurality of system objects different from the at least one first object is detected, where the state change of the at least one second object is a result of the application of the first modifying action to the at least one first object (56). A second modifying action is determined and output for application to the system to improve system performance according to the performance metric after the application of the first modifying action (58). In this way, negative effects on global performance of the system caused by local modifying actions are mitigated or eliminated.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure provides a controller for controlling a system having a plurality of system objects, and in particular for controlling performance of the system according to a performance metric based on a state of each of the system objects. BACKGROUND

[0002] Complex systems include many objects, components, and / or data that interact with each other. In particular, complex systems are systems in which it is difficult to model, predict, and / or control the overall performance or behavior of the system because the interactions and relationships between components and their environment are numerous and can be complex.

[0003] The overall performance or behavior of the system can be measured using one or a series of metrics. It can be desirable for the system to achieve or maintain a certain level of performance as defined by one or more such performance metrics. Metrics can be referred to as key performance indicators (KPIs), which generally quantify different aspects of system performance over a period of time to measure the overall performance of the system.

[0004] On the other hand, it can also be important to ensure that the behavior or state of individual components within the system (e.g., processes performed by the components) are at acceptable or desirable levels. Interventions or actions to correct or otherwise modify behavior can generally be made at the individual component level, but the same action can apply to several components.

[0005] There can be a trade-off between the behavior of one or more individual components in the system and the overall performance of the system. That is, an action taken to improve some aspect of one or more individual components can actually have a negative impact on the overall performance of the system or at least one aspect of the overall performance of the system.

[0006] More specifically, a modifying action applied to an individual component to improve its local performance can have a propagating effect on other components of the system, which in turn can degrade the global performance of the system. The complexity of the relationships between the components of the system means that there is uncertainty about the existence or exact nature of the propagating effect before the action is applied.

[0007] This is in contrast to the background art on which the present invention is based. SUMMARY

[0008] According to one aspect of the present disclosure, a controller for controlling a system having a plurality of system objects, elements or parameters is provided. The controller is for controlling a performance of the system according to a performance metric based on a state of each of the system objects. The controller comprises one or more processors configured to implement functional modules of the controller. The controller comprises a first detection module or change detection module configured to detect a state change of at least one first object from the plurality of system objects. The controller comprises a first modification module or individualized action recommendation module configured to: determine a first modification action for the at least one first object in response to the detected state change; and output the first modification action for application to the at least one first object. The controller comprises a second detection module or propagation detection module configured to detect a state change of at least one second object from the plurality of system objects different from the at least one first object, the state change of the at least one second object being caused by the application of the first modification action to the at least one first object. The controller comprises a second modification module or mitigation action recommendation module configured to: determine, after the application of the first modification action, a second modification action to be applied to the system to improve the performance of the system according to the performance metric; and output the second modification action for application to the system.

[0009] The second modification action can comprise a modification to be applied to the at least one second object.

[0010] The second modification action can comprise a modification of a constraint under which the system operates.

[0011] The second detection module can be configured to receive data indicative of a state of each of the plurality of system objects after the first modification action has been applied. The second detection module can be configured to compare the received state of each of the plurality of system objects other than the at least one first system object with a state of the respective system object prior to the application of the first modification action in order to detect the state change of the at least one second system object.

[0012] The second modification module can be configured to determine the second modification action from a plurality of candidate second modification actions retrieved by the second modification module.

[0013] The at least one second modification action can be a best modification action for the performance of the system according to the performance metric selected from the plurality of candidate second modification actions.

[0014] The best modification action can be determined by optimizing a function describing a relationship between a state of each of the second system objects and the performance of the system according to the performance metric.

[0015] The function can be optimized according to one or more constraints of the system, e.g. a time or cost of performing a particular modification action. The one or more constraints can be fixed. The one or more constraints can comprise an amount of resources available in the system.

[0016] The detected change in state of the at least one second object can correspond to an indication that the resource demand from the system is no longer being met.

[0017] The second modification module can be configured to determine a performance of the system according to the performance metric after application of the first modification action. The second modification module can be configured to determine the second modification action only in the event that the determined performance of the system has decreased or reduced relative to before application of the first modification action.

[0018] The first detection module can be configured to receive data indicative of a state of each of the plurality of system objects at a given time. The first detection module can be configured to compare the state of each of the plurality of system objects at the given time to a state of the respective system object at a time prior to the given time in order to detect a change in state of the at least one first system object.

[0019] The first detection module can be configured to receive data indicative of a state of each of the plurality of system objects at a given time. The first detection module can be configured to compare the state of each of the plurality of system objects at the given time to a state of the respective system object at a time prior to the given time in order to detect a change in state of the at least one first system object.

[0020] The first modification module can be configured to determine the first modification action from a plurality of candidate first modification actions retrieved by the first modification module.

[0021] The first modification action can be an optimal modification action for the first system object selected from a plurality of candidate modification actions.

[0022] The first modification action can be a corrective modification action that returns the first system object to a previous state.

[0023] The detected change in state of the at least one first object can correspond to a detected change in resource demand provided by the system.

[0024] The first modification action can be to meet the detected change in resource demand.

[0025] In some examples, each system object has one or more attributes each having a value that varies over time, the state of each system object being defined by the value of each of its attributes at a given time, and a change in state of one of the system objects corresponds to a change in value of at least one of its attributes.

[0026] According to another aspect of the disclosure, there is provided a computer- implemented method for controlling a system having a plurality of system objects. The method is for controlling a system performance according to a performance metric based on a state of each of the system objects. The method comprises receiving data indicative of a state change of at least one first object from the plurality of system objects. The method comprises determining a first modification action to the at least one first object in response to the detected state change; and outputting the first modification action for application to the at least one first object. The method comprises receiving data indicative of a state change of at least one second object from the plurality of system objects different from the at least one first object, the state change of the at least one second object being caused by the application of the first modification action to the at least one first object. The method comprises determining a second modification action to be applied to the system to mitigate an adverse change in the system performance according to the performance metric caused by the first modification action; and outputting the second modification action for application to the system.

[0027] According to another aspect of the disclosure, there is provided a non-transitory computer-readable storage medium having instructions stored thereon that, when executed by one or more processors, cause the one or more processors to perform the above-mentioned method.

[0028] According to another aspect of the disclosure, there is provided a controller for controlling a system having a plurality of system objects. The controller is for controlling a system performance according to a performance metric based on a state of each of the system objects. The controller comprises one or more processors configured to implement functional modules of the controller. The controller comprises a change detection module configured to detect a state change of at least one first object from the plurality of system objects. The controller comprises a determination module configured to determine a first modification action to be applied to the at least one first object in response to the detected state change. The controller comprises a prediction module configured to predict a state change of at least one second object from the plurality of system objects different from the at least one first object, the state change to be caused by the application of the first modification action to the at least one first object. The controller comprises a modification module configured to determine a second modification action to be applied to the system to mitigate an adverse effect on the predicted system performance according to the performance metric, the adverse effect to be caused by the first modification action; and output the first modification action and the second modification action.

[0029] The modification module can be configured to monitor the system performance according to the performance metric in response to the application of the first modification action and the second modification action. The modification module can be configured to compare the monitored system performance against the predicted system performance. The modification module can be configured to determine an updated second modification action to be applied to the system in dependence on the system performance comparison. BRIEF DESCRIPTION OF DRAWINGS

[0030] Examples of the present disclosure will now be described with reference to the accompanying drawings, in which:

[0031] Figure 1 A system with a plurality of system objects and a data repository and a controller for controlling the system according to an example of an aspect of the present disclosure is schematically illustrated;

[0032] Figure 2 The functional modules of the controller of Figure 1 ; and

[0033] Figure 3 The steps of a method performed by the controller of Figure 1 are illustrated. DETAILED DESCRIPTION

[0034] In the following, a controller and a method for controlling a system are described, in which an aggregate action is applied to an object or component of the system that is affected by a modification action applied to a different object or component of the system to mitigate adverse effects on the overall performance of the system resulting from the modification action.

[0035] Figure 1 A complex system 10 comprising a plurality of components or objects 12 is schematically illustrated. Each object 12 comprises one or more attributes, and the value or state of each attribute contributes to the state of the object 12. The values of the attributes change over time, such that the state of each object 12 can change over time.

[0036] The objects 12 interact according to complex, non-linear relationships, in particular non-well-defined relationships. As such, a change in the dynamics or operation of a particular object 12 can not only cause a change in its own state, but also a change in the state of one or more other objects 12 in the system. The attributes and / or states of the different objects 12 in the system 10 are monitored over time, and their current values or states and possibly historical values or states are stored in a data repository or memory 14 of or associated with the system 10.

[0037] The states of the different objects 12 in the system 10 can change over time according to the normal operation and interaction of the objects 12. However, external actions can also be applied to one or more of the objects 12, which can not only cause a change in the state of the object to which the action is applied, but also a change in the state of other objects 12 in the system 10 through the propagating effects of the action according to the non-linear relationships in the system 10.

[0038] Figure 1A controller 20 is shown for determining such external actions to be applied to one or more objects 12 of the system 10, as will be discussed in more detail below. The controller 20 receives data indicative of the current and / or historical state of one or more of the objects 12 in order to make such determinations, and outputs the determined actions to be applied. Figure 1 A database or memory 22 is also shown for storing a range of possible actions that can be applied to the objects 12, and the controller 20 can access the database 22 to retrieve possible actions when determining a particular action to be applied to one or more of the objects 12.

[0039] Figure 2 A specific example of implementing the controller 20 is schematically shown. Four functional elements, units or modules are shown: a first detection module 30, a first modification module 32, a second detection module 34 and a second modification module 36. Each of these modules can be provided by suitable software running on any suitable computing substrate using conventional or custom processors and memory. In particular, each of the modules can use a common computing substrate (e.g. they can run on the same server) or independent substrates, or one or each module can itself be distributed between multiple computing devices. In particular, the controller 20 comprises one or more processors configured to implement the functional modules 30, 32, 34, 36.

[0040] The first detection module 30, or change detection module, receives data 38 indicative of the state of each of the plurality of objects 12 of the system 10. The data 38 can be obtained from any suitable location or source storing such data for the various system objects 12, such as a database (of any suitable type or format) storing records, a cloud location or a local file. Alternatively, the data 38 can be obtained directly from the system objects 12, for example using appropriate sensors for detecting the values of one or more attributes contributing to the overall state of each object 12.

[0041] The first detection module 30 can receive the object state data 38 over any suitable time period. For example, the first detection module 30 can receive data 38 indicative of the current state of each of the objects 12 at predetermined time intervals. Such time intervals can be any suitable period depending on the particular system being monitored. For example, the frequency of receiving the data 38 can depend on how frequently the objects 12 in the system 10 typically change state.

[0042] The object state data 38 received by the first detection module 30 can be the state of each of the objects 12 itself. Alternatively, the object state data 38 can comprise the latest values of the attributes of each object 12, and the first detection module 30 then determines the state of each object 12 based on the received attribute values.

[0043] The first detection module 30 is configured to detect a state change of any of the objects 12 in the system 10 based on the received object state data 38. In one example, details of each of the objects 12 in the system 10 are input to the first detection module 30, e.g. from a data store in which the details are stored. In addition, the first detection module 30 receives the object state data 38 indicating the state of each of the objects 12 at a given time. The first detection module 30 then waits until a state change of at least one of the objects 12 is detected. In the described example, this is achieved by comparing the object state data 38 received for a particular object 12 at different points in time, i.e. indicating the state of the particular object 12 at different points in time, e.g. under successive intervals in a predetermined time interval in which the data 38 is received.

[0044] The one or more objects 12 for which the first detection module 30 detects a state change can be referred to as first objects in the system 12. If more than one object 12 changes state at the same time or within a specified time period of each other, more than one object 12 can be determined to be a first object 12. In particular, in the described example, data 38 indicating the state of each of a plurality of system objects 12 at a given time is received and the first detection module 30 compares the state of each of the plurality of system objects 12 at the given time to the state of the respective system object 12 at a time prior to the given time in order to detect a state change of at least one first system object.

[0045] The first modification module 32 or the personalized action recommendation module receives the result of the processing performed by the first detection module 30, in particular it receives the identified one or more first objects 12 for which a state change has been determined. The first modification module 32 is used to determine a modification action to be applied to the one or more identified first objects 12 in response to the detected state change. In particular, the first modification module 32 can determine a personalized modification action to be applied to each of the first objects 12 to improve or restore the state of the respective first object 12.

[0046] In the described example, for each of the identified first objects 12, the first modification module 32 retrieves from the database 22 each of the possible modification actions applicable to each respective first object 12. From these possible modification actions, the first modification module 32 selects one of the possible modification actions to be applied to the particular first object 12 under consideration in response to the detected state change.

[0047] In some cases, it can be the case that not all modification actions retrieved from the database 22 are suitable for application or implementation at a particular time or when the first object 12 is in a particular state. In such cases, the first modification module 32 first computes or extracts those retrieved modification actions that are suitable or applicable for application in the circumstances, e.g. the particular object, its state, the particular time, etc., and then selects from the computed suitable actions the first modification action to be applied to the first object 12.

[0048] In the described examples, for each first object 12, the first modification module 32 determines which of the retrieved possible modification actions can be considered the best modification action as the modification action to be applied to the particular first object 12. This modification action is best in the sense that it is considered to be the best or most appropriate action to apply to the particular first object 12 when only that particular first object 12 is considered. In this way, the first modification action is individualized to the respective first object 12 and determined from a local consideration of that first object 12. The first modification module 32 can determine a first modification action for each of one or more first objects 12, respectively.

[0049] The first modification action can be selected, e.g., based on being the most likely or most suitable modification action for restoring or correcting the (varying) state of the particular first object 12 back to its previous state. More generally, the first modification action can be selected based on providing the greatest improvement in some aspect of the particular first object 12 according to some local measure based on the state of the first object 12, e.g. based on some measure of the performance of the first object 12 according to an appropriate metric based on the state of the first object 12, possibly relative to a required or desired performance.

[0050] The first modification module 32 outputs one or more first modification actions 40 to be applied to the respective first object 12. The first modification module 32 can output control signals to control the first object 12 according to the respective first modification action 40. Alternatively, the first modification module 32 can output the one or more first modification actions 40 as instructions to a system operator, e.g. to a user interface on a system computer, or to an application program of a mobile device or tablet device. More generally, the one or more first modification actions 40 are output to any suitable source for applying the actions to the respective one or more first objects 12.

[0051] The second detection module 34 or propagation detection module can receive from the first modification module 32 an indication that the one or more first modification actions 40 to be applied have been output by the controller 20. The second detection module 34 receives data 42 indicative of the state of the objects 12 of the system 10 after the one or more first modification actions 40 have been applied. The data 42 can be obtained by the second detection module 34 in a similar manner to the object state data 38 obtained by the first detection module 30 or from the same or equivalent sources.

[0052] The second detection module 34 is used to detect which of the objects 12 in the system 10 are affected by the application of the first modification actions 40. In particular, the second detection module 34 is used to identify which of the objects 12 in the system 10, other than the one or more first objects, have undergone a change in state as a result of or in response to the first modification actions being applied to the first objects 12. In this way, the second modification module 34 detects the propagating or secondary effects throughout the system 10 caused by the modification actions being applied to certain system objects 12.

[0053] In the described example, the object state data 42 received by the second detection module 34 comprises data indicative of the state of each of the objects 12 in the system 10 other than the one or more first objects. Alternatively, the second detection module 34 can receive object state data for each of the system objects 12 and filter out the data relating to the first objects 12.

[0054] As the object state data 42 is used to indicate any change in state caused by the application of the one or more first modification actions, the object state data 42 needs to reflect the state of the objects 12 in the system 10 after a sufficient amount of time has elapsed to allow the first modification actions to propagate through the system 10. That is, the object state data 42 reflects the state of the system objects 12 after any secondary effects as a result of the first modification actions have had time to implement.

[0055] The amount of time required to allow the effects of the first modification actions to propagate through the system 10 can be different for different types of system. For example, in some systems, the propagating effects on the state of other system objects can be substantially instantaneous, whereas in some other systems, the controller 20 can need to wait for a specified amount of time for the propagating effects to implement before retrieving the state of the objects so that the retrieved state takes into account any propagating effects.

[0056] The second detection module 34 is configured to compare the object state data 42 that has emerged after the propagating effect of the first modification action 40 has occurred with the object state data that preceded the application of the first modification action 40 (e.g. the object state data 38 received by the first detection module 30). In particular, the second detection module 34 identifies those system objects 12 (other than the first object) whose state has changed with respect to the state that preceded the application of the first modification action 40.

[0057] The one or more objects 12 for which the second detection module 34 detects a change in state can be referred to as second objects in the system 12. That is, each object 12 in the system 10 other than the first object (in the case that its state after the application of the first modification action 40 is not equal to its state before the first modification action) is recorded as a second object 12.

[0058] The second modification module 36 or mitigation action recommendation module receives the result of the processing performed by the second detection module 34, in particular the second modification module or mitigation action recommendation module receives the one or more identified second objects 12 for which a change in state has been determined. The second modification module 36 is used to determine one or more so-called second modification actions to be applied to the system 10 as a response to the propagating effect through the system 10 caused by the first modification module 32.

[0059] The one or more second modification actions are actions to be applied to the one or more identified second objects. In the described example, a single second modification action is determined to be applied to each of the second objects; however, in different examples, separate, individualised second modification actions can be determined and applied to each of the second objects 12. Alternatively or additionally, the second modification actions can comprise modifying one or more constraints that govern the operation of the system 10.

[0060] The determination and application of the second modification actions is to improve the overall performance of the system 10, in particular to mitigate any adverse or negative effects of the application of the one or more first modification actions on the overall system performance. That is, the first modification actions are determined and applied to provide a local improvement in the individual objects 12 in the system 10, whereas the second modification actions are determined and applied to provide a global improvement in the system 10. In particular, the overall system performance is a certain measure of the system 10 according to one or more metrics, the value of which can be computed using the state of each of the objects 12 in the system 10.

[0061] In the described example, the second modification module 36 retrieves from the database 22 each of the possible modification actions applicable to one or more of the second objects 12. From these possible modification actions, the second modification module 36 determines one of the possible modification actions to apply to the second objects 12 as a response to the detected state change of the second objects 12 caused by the propagating effect of the first modification action 40.

[0062] Similar to the above for the first modification action, in some cases it can be the case that not all modification actions retrieved from the database 22 are suitable for application or implementation at a particular time or when the second objects 12 are in a particular state. In such cases, the second modification module 36 first computes or extracts those retrieved modification actions that are suitable or appropriate for application in the circumstances, e.g., particular objects, their states, particular times, etc., and then determines the second modification action to apply to the second objects 12 from the computed suitable actions.

[0063] The second modification module 36 defines an objective aggregation function to determine the second modification action to apply. In particular, the aggregation function is used to determine which of the retrieved suitable modification actions is the best modification action in the sense that it produces the greatest improvement in overall system performance when applied to the second objects 12. That is, the state of each of the second objects that would result from applying a given possible second modification action is used together with the current states of each of the other system objects 12 to compute one or more performance metrics to obtain an overall system performance, and the system performance is optimized across the various possible second modification actions to determine the particular second modification action to apply. Note that in the described example, the determined second modification action can or can not be the optimal modification action for any given one of the second objects, but rather produces the best effect at some system level in terms of system performance according to the defined metrics.

[0064] The second modification module 36 outputs the second modification action 44 to apply to each of the identified second objects. Similar to the first modification module 32, the second modification module 36 can output control signals to control the second objects 12 according to the second modification action. Alternatively, the second modification module 36 can output the second modification action 44 via a user interface on the system computer, or to an application program of a mobile device or tablet device. More generally, the second modification action is output to any suitable source for applying the action to the second objects 12.

[0065] As a non-limiting example of a system to which the functional controller 20 can be applied, consider an electrical microgrid in which a transformer is designed to provide a maximum power load to a network of users or nodes. One aspect of performance that can be monitored for such a system is network stability. The different network users or nodes are system objects 12, and the state of each of the network nodes can be defined by whether the amount of power demanded by the respective node is being met.

[0066] If there is a sudden increase in demand by one of the network users, for example, a single user simultaneously turning on multiple air conditioners or connecting their motor vehicle to the network to charge the battery of the motor vehicle, the system needs to react to meet this changed demand. In this example, the network user with the increased demand is the "first object" in the system, and the state of this network user changes from a state in which its power demand is being met to a state in which its power demand from the network is no longer being met (because its demand has increased).

[0067] As a "first modifying action" in response to this change in state, the power provided to the network user with the increased demand ("first object") is increased to meet the increased demand. In turn, this corrective action causes the state of the network user to return to a state in which its demand is again being met.

[0068] However, when the transformer is providing a maximum power load to the network, then the increased power supplied to the network user with the increased demand has the indirect effect that the power demands of other users in the network are not being met consistently. This is because of network instability caused by the increased demand of the "first" user. The states of those other users (i.e., "second" users) thus change from a state in which their power demand is being met to a state in which their power demand is no longer being met. In this way, the decrease in network stability across the different users is characterized as a decrease in the overall performance of the network / system.

[0069] To reduce the adverse effects on network performance caused by the increased power supplied to the "first" users, those (second) users whose power demand is no longer being met consistently are incentivised to reduce their power consumption. That is, if the second users reduce their power demand to a level such that the network can again meet the demands of all users consistently, the state of each of the "second" users will return to a state in which their power demand is met. This in turn increases the network stability, resulting in an increase in overall system performance. In this case, the incentive provided to the "second" users is a "second modification action". One example of such an incentive can be to change the cost per unit of power supplied to the second users to drive the reduction in demand. Alternatively, the second modification action can be to increase the maximum power that the transformer can supply to the network such that the demands of all nodes can be met while maintaining network stability. Such a second modification action effectively changes the constraints under which the network operates.

[0070] As another non-limiting example of a system to which the functional controller 20 can be applied, consider a water network for supplying water to a local cluster of users. In particular, the amount of water that can be supplied to the cluster is limited by the amount of water available in a supply reservoir of the cluster.

[0071] If there is a large increase in the demand for water by one of the users in the cluster, a "first" modification action is applied to increase the amount of water supplied to this "first" user. This returns the state of the "first" user from a state in which their demand is not being met (caused by the increase in demand) to a state in which their demand is being met.

[0072] The effect of providing more water to the "first" user in the network cluster on the other users is then monitored. For example, it can be the case that the amount of water in the storage reservoir of the network cluster is such that providing more water to the "first" user means that there is not enough water to meet the demands of certain other users. In this case, those users (i.e. "second" users) experience a change in state from a state in which their demand is being met to a state in which their demand is no longer being met. This will result in a decrease in system performance according to any metric that measures whether demands across the system are being met.

[0073] To counteract the negative propagating effects of the "first modification action" of providing more water to the "first" user on the "second" users, a "second modification action" is determined to improve the overall system performance. In one example, such a second modification action can be to reduce the water supply pressure from the reservoir to the "second" users. This will mean that the demands of the "second" users are reduced, returning the state of the "second" users to a state in which their demand for water is being met. In turn, the overall system performance according to a metric that measures whether demands across the network are being met is therefore increased.

[0074] Note that the above example of a "second modification action" is an action applied to a determined "second" user. Alternatively or additionally, the "second modification action" that reduces the aggregate effect of the "first modification action" can be applied to another aspect of the system. For example, the amount of water in the supply reservoir to the network cluster can be increased. This would allow the needs of the "second" users to continue to be met, even in the case of increased demand from the "first" user. Such a change in the amount of water in the reservoir would constitute a change in one of the constraints in the system to provide assistance to the overall system performance.

[0075] As a further non-limiting example of a system to which the functional controller 20 can be applied, consider an organization in which one aspect of the overall performance of the organization is a measure of the amount of employee turnover within the company. High levels of employee turnover are undesirable due to the loss of corporate experience and knowledge and the cost of replacing the employees. Different employees within a particular team can be considered system objects.

[0076] If a first one of the employees is considering leaving the organization, this can be considered a change in state of the employee from a state in which they are satisfied with their position in the company to a state in which they are no longer satisfied with their position in the company. The employee can have many different attributes that contribute to their state of satisfaction, such as age, gender, salary band, experience, department, team size, average team tenure, etc., and these attributes can change over time. If the employee is not satisfied, they are at an increased risk of leaving the company. In response to this change in state of the "first" employee, a modification or corrective (first) action can be taken, such as offering the first employee a promotion, increasing their salary to a salary band above their current level, etc.

[0077] As an unintended consequence of applying this first modification action to the first employee, one or more other employees within the particular team can become dissatisfied due to, for example, the first employee obtaining a promotion. That is, the state of one or more "second" employees in the team changes to a state in which they are dissatisfied within the company. As a result, the performance of the organization according to the employee turnover measure can decrease.

[0078] To mitigate the overall negative effect on the team or organization that results from the action applied to the first employee (e.g., the promotion), a "second" modification or corrective action is applied to the "second" employees. For example, a relatively small in-band salary increase can be offered to each of the "second" employees. This can be sufficient to return the "second" employees to a state in which they are again satisfied with their positions within the organization (which causes the overall company performance according to the employee turnover measure to increase), while still operating within the budget constraints of the company. Other corrective actions are also possible, such as offering the employees training to develop new skills, moving particular employees to different teams / managers, etc.

[0079] Figure 3 The steps of the method 50 performed by the controller 20 are summarised. At step 52, a change in state of one or more first objects of the plurality of system objects 12 is detected. This is performed by the first detection module 30 which detects whether the state of any of the objects 12 in the system 10 has changed by comparing the temporally successive states of each object 12 based on the data received by the controller 20.

[0080] At step 54, a modification or corrective action is determined to be applied to the determined one or more first objects 12 that have undergone a change in state. In some examples, the modification action can only be determined and applied to a particular “first” object 12 if its associated change in state is deemed to be a negative or adverse change in respect of the local object performance. The first modification module 32 determines from a list of possible modification actions retrieved by the controller 20 the modification that is best in terms of its effect on the local performance of the first object as the first modification action to be applied to the first object.

[0081] At step 56, a change in state of one or more second objects of the plurality of system objects 12 different from the first object is detected, the change in state being caused by the application of the first modification action to the first object. That is, the effect of the applied first modification action has a propagating effect through the system 10 affecting objects 12 other than the first object. This can be performed by the second detection module 34 which detects whether the state of any of the objects 12 in the system 10 has changed by comparing the temporally successive states of each object 12 based on the data received by the controller 20, similar to step 52. In particular, the state of each object is compared before and after the application of the first modification action.

[0082] At step 58, a second modification or corrective action is determined to be applied to the system 10. The second modification action can only be determined and applied in the event that the first modification action adversely affects the overall system performance according to the performance metric. That is, the system performance after the first modification action is applied is compared to the system performance before the first modification action was applied and only in the event that there has been a decrease in system performance or a decrease of a specified amount is the further modification action performed.

[0083] The second modification module 36 determines, from the list of possible modification actions retrieved by the controller 20, a modification that is best in terms of its effect on the system 10 global performance of the objects 12 as the second modification action to be applied to the system. This "second" modification action can be applied to the determined second object and / or to one or more constraints defining the operation of the system 10. For example, the constraints of the system 10 can include the amount of resources available in the system. The second modification action can be to modify one or more of the constraints in the system 10. Alternatively, the constraints can be fixed and the second modification action can be determined and applied to the second object 12 while the overall system 12 is still operating within these constraints.

[0084] Many modifications can be made to the above-described examples without departing from the scope of the appended claims.

[0085] In the above-described examples, a mitigation action is always determined and applied to the identified second object, regardless of the propagation effects of the first modification action through the system. There can be certain scenarios in which the application of the first modification action gives rise to propagation effects that have an overall positive effect on the system performance. In such cases, it can not be desirable to determine and apply a second modification action to the objects that have already experienced the propagation effects as a result of the first modification action. As such, in some examples, the system performance according to the performance metric can be determined before and after the application of the first modification action, and if the system performance improves after the first modification action relative to before these actions, the controller can be configured not to determine and apply any second modification action. More generally, in some examples, a second modification action can only be determined and applied if the system performance degrades by a specified amount or improves by less than a specified amount as a result of the application of the first modification action.

[0086] In the above-described examples, the first modification action is applied to one or more first objects, the propagation effects on one or more second objects are determined, and subsequently a second modification action is determined and applied to the second objects. In different examples, the determined first modification action can be used to predict the (unknown or uncertain) propagation effects through the system (i.e., which objects other than the first objects will experience the propagation effects, and what those effects will be), and the second modification action is determined based on the prediction, and subsequently the first and second modification actions are output for application to the first and second objects, respectively. The actual propagation effects of the first and second modification actions can subsequently be monitored and fed back to the system, which in some cases can update the first and / or second modification actions in accordance with the monitored effects in order to (further) improve the overall system performance.

[0087] Advantages of examples of the present disclosure are that they provide a system and method in which the uncertain and unforeseeable adverse effects on the global performance of the overall system caused by actions that are proactively applied to certain objects within the system to improve their local performance are mitigated by applying aggregate or auxiliary actions to the system. In particular, the present disclosure advantageously provides a system for mitigating the risks arising from actions that are proactively defined, applied from the outside to one or more objects within the system, the effects of which propagate through the system in unforeseeable ways to other objects. Advantageously, the knowledge gained from monitoring the propagating effects of the modifying actions in the system, in particular which (secondary) objects are affected by the initial modifying actions, is used to define aggregate actions in order to improve the overall system performance in a more predictable way than would be possible for the initial actions.

Claims

1. A controller (20) for controlling a system (10) having a plurality of system objects (12), the controller being configured to control system performance based on a performance metric according to the state of each system object, the controller comprising one or more processors configured to implement: A first detection module (30) is configured to detect a state change of at least one first object from the plurality of system objects; A first modification module (32) is configured to determine a first modification action (40) on the at least one first object in response to a detected state change and to output the first modification action to be applied to the at least one first object; A second detection module (34) is configured to detect a state change of at least one second object that is different from the at least one first object from the plurality of system objects, the state change of the at least one second object being caused by the first modification action applied to the at least one first object; and, The second modification module (36) is configured to, after applying the first modification action, determine a second modification action (44) to be applied to the system to improve the system performance according to the performance metric, and output the second modification action to be applied to the system.

2. The controller (20) according to claim 1, wherein the second modification action includes a modification to be applied to the at least one second object.

3. The controller (20) according to claim 1 or claim 2, wherein the second modification includes modifying the constraints under which the system operates.

4. The controller (20) according to claim 1 or claim 2, wherein the second detection module is configured to: receive data (42) indicating the state of each of the plurality of system objects after the first modification action has been applied; and compare the received state of each of the plurality of system objects other than the at least one first object with the state of the corresponding system object before the application of the first modification action, so as to detect the state change of the at least one second object.

5. The controller (20) according to claim 1, wherein the second modification module is configured to determine the second modification action (44) from a plurality of candidate second modification actions retrieved by the second modification module.

6. The controller (20) of claim 5, wherein the determined second modification action is the optimal modification action selected from the plurality of candidate second modification actions for the system performance according to the performance metric.

7. The controller (20) of claim 6, wherein the optimal modification action is determined by optimizing a function describing the relationship between the state of each of the second objects and the system performance according to the performance metric.

8. The controller (20) of claim 7, wherein the function is optimized based on one or more constraints under which the system operates.

9. The controller (20) according to claim 8, wherein the one or more constraints are fixed.

10. The controller (20) of claim 8, wherein the one or more constraints include the amount of resources available in the system.

11. The controller (20) of claim 1, wherein the detected state change of the at least one second object corresponds to the indication that the resource requirements from the system are no longer met.

12. The controller (20) of claim 1, wherein the second modification module is configured to determine the system performance according to the performance metric after the application of the first modification action, and wherein the second modification module is configured to determine the second modification action only if the determined system performance has decreased relative to before the application of the first modification action.

13. The controller (20) of claim 1, wherein the first detection module is configured to: receive data indicating the state of each of the plurality of system objects at a given time; and compare the state of each of the plurality of system objects at the given time with the state of the corresponding system object at a time prior to the given time in order to detect the state change of the at least one first object.

14. The controller (20) of claim 13, wherein the first detection module is configured to: receive data indicating the state of each of the plurality of system objects at predetermined time intervals; and compare the state of each corresponding system object at consecutive time intervals in the predetermined time intervals.

15. The controller (20) of claim 1, wherein the first modification module is configured to determine the first modification action from a plurality of candidate first modification actions retrieved by the first modification module.

16. The controller (20) of claim 15, wherein the first modification action is the optimal modification action for the first object selected from the plurality of candidate modification actions.

17. The controller (20) according to claim 1 or claim 2, wherein the first modification action is a corrective modification action that returns the first object to a previous state.

18. The controller (20) of claim 1, wherein the detected state change of the at least one first object corresponds to a detected change in the resource requirements of the at least one first object provided by the system.

19. The controller of claim 18, wherein the first modification action is to satisfy the detected changed resource requirements.

20. The controller (20) of claim 1, wherein each system object has one or more attributes, each having a value that changes over time, the state of each system object is defined by the value of each of its attributes at a given time, and a change in the state of one of the system objects corresponds to a change in the value of at least one of its attributes.

21. A computer-implemented method (50) for controlling a system (10) having a plurality of system objects (12), the method for controlling system performance based on a performance metric based on the state of each system object, the method comprising: Receive data indicating a state change from at least one first object of the plurality of system objects; Determine (54) a first modification action on the at least one first object in response to a detected state change and output the first modification action to apply to the at least one first object; Receive data indicating a state change from at least one second object, which is different from the at least one first object, from the plurality of system objects, wherein the state change of the at least one second object is caused by the first modification action being applied to the at least one first object; as well as, Determine (58) a second modification action to be applied to the system to mitigate adverse changes in system performance caused by the first modification action according to the performance metric, and output the second modification action to be applied to the system.

22. A non-transitory computer-readable storage medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform the method according to claim 21.

Citation Information

Patent Citations

  • System and method for automated household energy management based on classification and location information

    US20150301543A1