Various attempts have been made to implement automated control systems for various types of physical systems having inputs or other control elements that the control system can manipulate to attempt to provide desired output or other behavior of the physical systems being controlled. Such automated control systems have used various types of architectures and underlying computing technologies to attempt to implement such functionality, including to attempt to deal with issues related to uncertainty in the state of the physical system being controlled, the need to make control decisions in very short amounts of time and with only partial information, etc. One example of such an automated control system includes a system for controlling operations of a battery that is discharging electrical power to support a load and/or is charging using electrical power from a source, with uncertainty about an internal temperature and/or chemical state of the battery, and potentially with ongoing changes in load, source and/or battery internal state.
However, various difficulties exist with existing automated control systems and their underlying architectures and computing technologies, including with respect to managing large numbers of constraints (sometimes conflicting), operating in a coordinated manner with other systems, etc. Particular difficulties can arise when attempting to control one or more batteries in situations in which multiple conflicting constraints and/or goals exist.
The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee.
Techniques are described for implementing automated control systems to control or otherwise manipulate at least some operations of specified physical systems or other target systems. In at least some embodiments, the physical target systems include one or more batteries used to store and provide electrical power, and the automated operations to control the target systems include using characteristics of each battery's state to perform automated control of DC (direct current) power that is provided from the battery, such as by using a DC-to-DC amplifier (e.g., a FET, or field-effect transistor, amplifier) connected to the battery to control an amount of electrical current and/or voltage being output from the battery, in a real-time manner and to optimize long-term operation of the battery. The DC-to-DC amplifier may, for example, be part of a buck converter (or step-down converter) that steps down voltage while stepping up current from its input (supply) to its output (bad) and/or be part of a boost converter (or step-up converter) that steps up voltage while stepping down current from its input (supply) to its output (load), referred to generally at times herein as a “boost/buck controller” or “buck/boost controller”. In addition, in some embodiments and situations, multiple batteries may be controlled in such a manner by using multiple control systems that are each associated with one of the batteries, and with the overall control of the multiple batteries being coordinated in a distributed manner, such as based on interactions between the multiple associated control systems for the multiple batteries. A system that includes one or more batteries to be controlled may further include additional components in some embodiments and situations, such as one or more electrical sources and/or one or more electrical loads, with one non-exclusive example of such a type of system being one or more home or business electrical power systems that may optionally include electrical generation sources (e.g., solar panels, wind turbines, etc.) as well as electrical load from the house or business. Additional details are included below related to such techniques for implementing and using automated control systems to control target systems with one or more batteries.
The described techniques may provide a variety of benefits and advantages. Non-exclusive examples of such benefits and advantages include controlling power output of a battery on the DC side (e.g., by varying DC current and voltage of the battery), allowing the battery to operate in its optimal or near-optimal physical state with respect to internal temperature and/or other battery parameters (e.g., by maintaining an internal chemistry of the battery within one or more chemical stoichiometric limits, such as a stoichiometric range), rather than fixing AC (alternating current) voltage and/or current being provided by an inverter connected to the battery at a single specified level, and forcing the battery to operate at a saturation level that provides maximum power but at the cost of possible non-reversible battery damage—in this manner, battery longevity and other operational performance may be optimized or otherwise enhanced by the described techniques, by allowing the battery to operate in a preferred range in which battery chemistry changes are reversible and in which short-circuits and other non-reversible damage is reduced or eliminated. In addition, in at least some embodiments, the automated control of the battery may further include active control of the battery to enhance and maintain power output amount resonance with the other components (e.g., a load and/or an external power grid), such that the amount of power provided does not exceed what is needed, while also satisfying at least a defined percentage or other amount of power output requests or load amounts (e.g., 50%, 65%, 100% or any other defined percentage or other amount). In this manner, such embodiments may be conceptualized as an automated control system to manage the internal state and operational performance (including longevity) of a battery being controlled, while satisfying power output requests if possible, rather than existing systems that fix the output voltage or current of a battery and fulfill all power requests even if it causes battery damage or other problems (e.g., excessive heating). While the benefits and operations discussed above and in some other locations herein relate to controlling power being output from a battery, it will be appreciated that the same techniques may be used to control power being stored into a battery from one or more sources, so as to cause the battery to operate in its optimal or near-optimal physical state with respect to heat and other battery parameters while storing power, and to optimize or otherwise enhance battery longevity and other operational performance by allowing the battery to operate in a preferred range in which battery chemistry changes are reversible, while satisfying at least a defined percentage or other amount of power input requests (e.g., 50%, 65%, 100% or any other defined percentage or other amount) for power being supplied by one or more sources. Additional benefits and advantages include the following, with the term ‘optimizing’ a feature or result as used herein meaning generally improving that feature or result (e.g., via partial or full optimization), and with the term ‘real-time’ as used herein meaning with respect to a time frame (e.g., fractions of a second, seconds, minutes, etc.) specific to a resulting component or system being controlled, unless otherwise indicated:
In the illustrated example of
As part of determining how to control the battery, the battery controller component receives input from a sensor module 3020 regarding an internal state (not shown) of the battery, such as current values for voltage, electrical current, temperature, etc., and supplies corresponding information to a CDI agent 3050. The CDI agent, which is also referred to at times herein as a CDD (Collaborative Distributed Decision) decision module or system, receives the information from the battery controller related to the state of the battery, and also receives power supply requests from a utility component 3060, such as in a situation in which the battery supplies power at some or all times to an electrical grid (not shown) controlled by the utility. In particular, the CDI agent receives a particular request from the utility, receives and analyzes information about the state of the battery, and determines corresponding operations to take at the current time for the battery (e.g., an amount of output power to be supplied from the battery, and/or an amount of input power to be received and stored by the battery), which in at least some situations involve attempting to fully or partially satisfy the request from the utility for power in a real-time manner if the request can be satisfied in a way that also satisfies other constraints on the battery performance given the current state of the battery and the defined goal(s), such as to enable the battery to operate in a desired non-saturation range or level (e.g., with respect to an estimated internal temperature of the battery and/or estimated internal chemistry of the battery). After determining the corresponding operations to take at the current time for the battery, the CDI agent provides a corresponding tracking control signal to the battery controller, which determines how to currently modify or manipulate the actuator to effectuate the corresponding operations for the tracking control signal (e.g., an amount of positive or negative change to make in an amount of current being output from the battery), and sends a corresponding control signal to the actuator as discussed above.
While not illustrated in
In addition, while not illustrated with respect to
It will also be appreciated that the described techniques may be used with a wide variety of other types of target systems, some of which are further discussed below, and that the invention is not limited to the techniques discussed for particular target systems and corresponding automated control systems. For illustrative purposes, some embodiments are described below in which specific types of operations are performed, including with respect to using the described techniques with particular types of target systems and to perform particular types of control activities that are determined in particular manners. These examples are provided for illustrative purposes and are simplified for the sake of brevity, and the inventive techniques may be used in a wide variety of other situations, including in other environments and with other types of automated control action determination techniques, some of which are discussed below.
More generally, a target system to be controlled or otherwise manipulated may have numerous elements that are inter-connected in various manners, with a subset of those elements being inputs or other control elements that a corresponding automated control system may modify or otherwise manipulate in order to affect the operation of the target system. In at least some embodiments and situations, a target system may further have one or more outputs that the manipulations of the control elements affect, such as if the target system is producing or modifying physical goods or otherwise producing physical effects. For example, output of a target system involving automated control of one or more batteries may include electrical power being provided by the batteries, and inputs or other control elements may include the actuator(s) and/or battery tracking controller(s) used to manipulate the power being provided from the one or more batteries.
As part of implementing such an automated control system for a particular target system, an embodiment of a Collaborative Distributed Decision (CDD) system may use the described techniques to perform various automated activities involved in constructing and implementing the automated control system, including one or more CDI agents (also referred to as a CDD decision module or system, or a portion of such module or system) for use in controlling particular target systems. Some aspects of such activities of an example CDD system is provided below, with additional details included in U.S. patent application Ser. No. 14/746,738, filed Jun. 22, 2015 and entitled “Cooperative Distributed Control Of Target Systems;” in U.S. Patent Application No. 62/182,968, filed Jun. 22, 2015 and entitled “Applications Of Cooperative Distributed Control Of Target Systems;” in U.S. Patent Application No. 62/182,796, filed Jun. 22, 2015 and entitled “Gauge Systems;” and in international PCT Patent Application No. PCT/US2015/037022, filed Jun. 22, 2015 and entitled “Cooperative Distributed Control Of Target Systems,” each of which is hereby incorporated by reference in its entirety.
In particular, the CDD system may in some embodiments implement a Decision Module Construction component that interacts with one or more users to obtain a description of a target system, including restrictions related to the various elements of the target system, and one or more goals to be achieved during control of the target system—the Decision Module Construction component then performs various automated actions to generate, test and deploy one or more executable decision modules (also referred to at times as “decision elements” and/or “agents”) to use in performing the control of the target system. When the one or more executable decision modules are deployed and executed, the CDD system may further provide various components within or external to the decision modules being executed to manage their control of the target system, such as a Control Action Determination component of each decision module to optimize or otherwise enhance the control actions that the decision module generates, and/or one or more Coordinated Control Management components to coordinate the control actions of multiple decision modules that are collectively performing the control of the target system.
As noted above, a Collaborative Distributed Decision (CDD) system may in some embodiments use at least some of the described techniques to perform various automated activities involved in constructing and implementing a automated control system for a specified target system, such as to modify or otherwise manipulate inputs or other control elements of the target system that affect its operation (e.g., affect one or more outputs of the target system). An automated control system for such a target system may in some situations have a distributed architecture that provides cooperative distributed control of the target system, such as with multiple decision modules that each control a portion of the target system and that operate in a partially decoupled manner with respect to each other. If so, the various decision modules' operations for the automated control system may be at least partially synchronized, such as by each reaching a consensus with one or more other decision modules at one or more times, even if a fully synchronized convergence of all decision modules at all times is not guaranteed or achieved.
The CDD system may in some embodiments implement a Decision Module Construction component that interacts with one or more users to obtain a description of a target system, including restrictions related to the various elements of the target system, and one or more goals to be achieved during control of the target system the Decision Module Construction component then performs various automated actions to generate, test and deploy one or more executable decision modules to use in performing the control of the target system. The Decision Module Construction component may thus operate as part of a configuration or setup phase that occurs before a later run-time phase in which the generated decision modules are executed to perform control of the target system, although in some embodiments and situations the Decision Module Construction component may be further used after an initial deployment to improve or extend or otherwise modify an automated control system that has one or more decision modules (e.g., while the automated control system continues to be used to control the target system), such as to add, remove or modify decision modules for the automated control system.
In some embodiments, some or all automated control systems that are generated and deployed may further provide various components within them for execution during the runtime operation of the automated control system, such as by including such components within decision modules in some embodiments and situations. Such components may include, for example, a Control Action Determination component of each decision module (or of some decision modules) to optimize or otherwise determine and improve the control actions that the decision module generates. For example, such a Control Action Determination component in a decision module may in some embodiments attempt to automatically determine the decision module's control actions for a particular time to reflect a near-optimal solution with respect to or one more goals and in light of a model of the decision module for the target system that has multiple inter-related constraints—if so, such a near-optimal solution may be based at least in part on a partially optimized solution that is within a threshold amount of a fully optimized solution. Such determination of one or more control actions to perform may occur for a particular time and for each of one or more decision modules, as well as be repeated over multiple times for ongoing control by at least some decision modules in some situations. In some embodiments, the model for a decision module is implemented as a Hamiltonian function that reflects a set of coupled differential equations based in part on constraints representing at least part of the target system, such as to allow the model and its Hamiltonian function implementation to be updated over multiple time periods by adding additional expressions within the evolving Hamiltonian function.
In some embodiments, the components included within a generated and deployed automated control system for execution during the automated control system's runtime operation may further include one or more Coordinated Control Management components to coordinate the control actions of multiple decision modules that are collectively performing the control of a target system for the automated control system. For example, some or all decision modules may each include such a Control Action Determination component in some embodiments to attempt to synchronize that decision module's local solutions and proposed control actions with those of one or more other decision modules in the automated control system, such as by determining a consensus shared model with those other decision modules that simultaneously provides solutions from the decision module's local model and the models of the one or more other decision modules. Such inter-module synchronizations may occur repeatedly to determine one or more control actions for each decision module at a particular time, as well as to be repeated over multiple times for ongoing control. In addition, each decision module's model is implemented in some embodiments as a Hamiltonian function that reflects a set of coupled differential equations based in part on constraints representing at least part of the target system, such as to allow each decision module's model and its Hamiltonian function implementation to be combined with the models of one or more other decision modules by adding additional expressions for those other decision modules' models within the initial Hamiltonian function for the local model of the decision module.
As noted above, the described techniques may be used to provide automated control systems for various types of physical systems or other target systems. In one or more embodiments, an automated control system is generated and provided and used to control a micro-grid electricity facility, such as at a residential location that includes one or more electricity sources (e.g., one or more solar panel grids, one or more wind turbines, etc.) and one or more electricity storage and source mechanisms (e.g., one or more batteries). The automated control system may, for example, operate at the micro-grid electricity facility (e.g., as part of a home automation system), such as to receive requests from the operator of a local electrical grid to provide particular amounts of electricity at particular times, and to control operation of the micro-grid electricity facility by determining whether to accept each such request. If a request is accepted, the control actions may further include selecting which electricity source (e.g., solar panel, battery, etc.) to use to provide the requested electricity, and otherwise the control actions may further include determine to provide electricity being generated to at least one energy storage mechanism (e.g., to charge a battery). Outputs of such a physical system include the electricity being provided to the local electrical grid, and a goal that the automated control system implements may be, for example, is to maximize profits for the micro-grid electricity facility from providing of the electricity.
In one or more embodiments, an automated control system is generated and provided and used to control a vehicle with a battery, a motor and in some cases an engine, such as an electrical bicycle in which power may come from a user who is pedaling and/or from a motor powered by the battery and/or the engine. The automated control system may, for example, operate on the vehicle or on the user, such as to control operation of the vehicle by determining whether at a current time to remove energy from the battery to power the motor (and if so to further determine how much energy to remove from the battery) or to instead add excess energy to the battery (e.g., as generated by the engine, and if so to further determine how much energy to generate from the engine; and/or as captured from braking or downhill coasting). Outputs of such a physical system include the effects of the motor to move the vehicle, and a goal that the automated control system implements may be, for example, to move the vehicle at one or more specified speeds with a minimum of energy produced from the battery, and/or to minimize use of fuel by the engine.
It will be appreciated that batteries may be used in a wide variety of other situations and may similarly be controlled by embodiments of the described techniques, such as with solar panels and other photovoltaic systems, electrical cars and other vehicles, etc.
Use of the described techniques may also provide various types of benefits in particular embodiments, including non-exclusive examples of beneficial attributes or operations as follows:
In particular, in the example environment of
As the decision modules 4124 and automated control system 4122 execute, various interactions 4175 between the decision modules 4124 are performed, such as to share information about current models and other state of the decision modules to enable cooperation and coordination between various decision modules, such as for a particular decision module to operate in a partially synchronized consensus manner with respect to one or more other decision modules (and in some situations in a fully synchronized manner in which the consensus actions of all of the decision modules 4124 converge). During operation of the decision modules 4124 and automated control system 4122, various state information 4143 may be obtained by the automated control system 4122 from the target system 4160, such as initial state information and changing state information over time (e.g., with respect to batteries, not shown, corresponding to control elements 4161 of target system 1), and including outputs or other results in the target system 1 from control actions performed by the decision modules 4124.
The target system 1 in this example includes various control elements 4161 (e.g., batteries and their power output) that the automated control system 4122 may manipulate, and in this example each decision module 4124 may have a separate group of one or more control elements 4161 that it manipulates (such that decision module A 4124a performs interactions 4169a to perform control actions A 4147a on control elements A 4161a, decision module B 4124b performs interactions 4169b to perform control actions B 4147b on control elements B 4161b, and decision module N 4124n performs interactions 4169n to perform control actions N 4147n on control elements N 4161n). Such control actions affect the internal state 4163 of other elements of the target system 1, including optionally to cause or influence one or more outputs 4162 (e.g., aggregate electrical power being produced from the multiple batteries). As discussed in greater detail elsewhere herein, control element 4161a may, for example, be a FET actuator connected to a particular first battery (not shown) of target system 1 that is being controlled, and other control elements 4161b-n may similarly be other FET actuators connected to other batteries (not shown) of target system 1. As operation of the target system 1 is ongoing, at least some of the internal state information 4163 is provided to some or all of the decision modules to influence their ongoing control actions, with each of the decision modules 4124a-124n possibly having a distinct set of state information 4143a-143n, respectively, in this example.
As discussed in greater detail elsewhere, each decision module 4124 may use such state information 4143 and a local model 4145 of the decision module for the target system to determine particular control actions 4147 to next perform, such as for each of multiple time periods, although in other embodiments and situations, a particular automated control system may perform interactions with a particular target system for only one time period or only for some time periods. For example, the local CDD Control Action Determination component 4144 for a decision module 4124 may determine a near-optimal location solution for that decision module's local model 4145, and with the local CDD Coordinated Control Management component 4146 determining a synchronized consensus solution to reflect other of the decision modules 4124, including to update the decision module's local model 4145 based on such local and/or synchronized solutions that are determined. Thus, during execution of the automated control system 4122, the automated control system performs various interactions with the target system 4160, including to request state information, and to provide instructions to modify values of or otherwise manipulate control elements 4161 of the target system 4160. For example, for each of multiple time periods, decision module 4124a may perform one or more interactions 4169a with one or more control elements 4161a of the target system, while decision module 4124b may similarly perform one or more interactions 4169b with one or more separate control elements B 4161b, and decision module 4124n may perform one or more interactions 4169n with one or more control elements N 4161n of the target system 4160. In other embodiments and situations, at least some control elements may not perform control actions during each time period.
In other embodiments and situations (e.g., if only a single battery is being controlled), the deployed copy of the automated control system may include only a single executing decision module, such as to include a local CDD Control Action Determination component but to not include any local CDD Coordinated Control Management component (since there are not other decision modules with which to synchronize and interact).
While not illustrated in
In the illustrated example of
In addition, a number of additional components are illustrated in
While the example of
In this example, the distributed control system 4075 is implemented in a centralized manner in a network-accessible location, such as via an online computing environment (e.g., Microsoft Azure), although it may be implemented in other manners in other embodiments. The distributed control system 4075 includes one or more components to interface with and interact with the utilities 4085, one or more components to interface with and interact with the batteries and associated systems 4005, and one or more monitoring and/or configuration components with which the system administration entities 4090 may interact to monitor and/or control the distributed control system 4075. In addition, the various CDI agents that support the batteries and associated systems 4005 (e.g., with one CDI agent per battery pack and associated system) are executed in the network-accessible location and are clustered together, with various inter-cluster communication mechanisms used (e.g., a publish/subscribe system with various topics, a communication service bus between at least some CDI agents and/or clusters, etc.). The clusters may be formed in various manners in various embodiments, such as to group CDI agents based on having associated batteries and systems that share one or more characteristics, such as geographical location (e.g., being part of the system electrical grid substation area) and/or operating characteristics. In addition, the clusters may be used to coordinate the CDI agents in stages and/or tiers, such as to first coordinate the CDI agents within a cluster, then coordinate between two or more clusters, etc., and optionally with multiple tiers of clusters (e.g., structured in a hierarchical manner). Various additional components may be provided and used as part of the distributed control system 4075, such as a site management system to manage changes in CDI agents and/or batteries and associated systems (e.g., to add new CDI agents for new battery systems and/or to remove existing CDI agents for existing battery systems being removed from system 4075 management; to add new CDI agents to particular clusters and/or to remove existing CDI agents from clusters; to create, remove and modify clusters; etc.), storage services available from the network-accessible location to store state information and other information being used, resource management services available from the network-accessible location to manage computing resources provided by the network-accessible location, etc.
Additional details regarding an example embodiment of a typical battery tracking controller that uses monitoring/synchronization signals from an external entity (also referred to as a ‘hybrid tracker’) are as follows.
One example embodiment of a tracking control system for a generic lithium ion high power battery cell may be modeled by the electric circuit representation in
The dynamic behavior of the circuit in
{dot over (x)}(t)=G(x(t),u(t),parameters) (1)
where the state
and the control u(t)εR, and the time line is represented by tεR.
The function G(x1(t),x2(t),x3(t),x4(t),u(t)) is given by (2)
For simplicity the dependence on the parameters in the argument have been suppressed. The parameters: α1, α2, β1, . . . , β9, φ1, φ2, λ1, . . . , λ4 represent the physical components in the cell model (i.e., resistors, the capacitor, the voltage, current sources and the saturation limits). The parameter τ is a time delay, which can be estimated using the historical data. The parameters: α1, α2, β1, . . . , β6, φ represent the physical components in the cell model (i.e., resistors, the capacitor, the voltage, current sources and the saturation limits). The control design generates an approximate solution of (1) by a piecewise linear stochastic differential equation over small time intervals.
Thus, let t0, t1, . . . ti, ti+1, . . . , be a partition of the time line. On each interval [ti,ti+1), we seek solutions of the form
x(t)=x(ti)+δ{circumflex over (x)} (3)
{dot over (x)}(t)={dot over (δ)}{circumflex over (x)} (4)
over [ti,ti+1), where δ{circumflex over (x)}(t) is the conditional mean of δx(t), and {dot over (δ)}{circumflex over (x)}(t) is the conditional rate, obtained from a Kalman filter based on the following piecewise linear stochastic model. The stochastic increment δx(t) satisfies the following stochastic differential equation:
where the noise has zero mean and the covariance is proportional to the second order term that is taken out in the approximation, e.g.,
where ε>0 and I is the identity matrix.
Sensors provide power, voltage, and current measurements. The observations from the battery sensors are modeled by
y(t)=x(t)+θ(t)
where the observation noise θ(t) is characteristic of the sensors, with zero mean and covariance matrix determined from the signal to noise ratio specifications. From (3) and (5) the incremental observation is given by
δy(t)=δx(t)+θ(t)
with δy(t)=y(t)−x(ti).
An effective of the tracking problem has a criterion of the form
The tracking value {tilde over (x)}δ(t) is generated from rules defining the desired power behavior of the battery, dynamically. Note that rules from a CDI agent may not be given in terms of the original state vector (power, current, voltage, temperature), and if not are translated to state desired behavior in terms of the desired incremental state {tilde over (x)}δ(t). A first example of such rules is given below.
Rule 1: over a week, at least 78% of the power demand should be satisfied.
Rule 2: battery longevity≧five years.
Rule 3: for the battery, satisfy thresholds on amount of charge and discharge.
A second example of such rules is given below.
In (7),
and T(t−τ) is the average temperature for the previous time interval ti−1≦t≦ti. So λT(t−τ) can be considered a constant for ti≦t≦ti+1. The optimization problem formulated in (6)-(9) satisfies the assumptions of the separation principle. This leads to the following approach.
Step 1: Determine the conditional mean δ{circumflex over (x)}(t) and the conditional rate δ{circumflex over ({dot over (x)})}(t) for ti≦t≦ti+1 generated by a Kalman filter, which is described in a separate note.
Step 2: Solve (6)-(9), obtaining a feedback solution of the form
δ{dot over (u)}(t)=K0(t)δx(t)+K1(t)δ{dot over (x)}(t)+K2(t)δu(t)+ψ(t) (10)
where Kj(t), j=0, 1, 2 and ψ(t) are the gains and the affine terms resulting from the optimization.
Step 3. Replace δx(t) and δ{dot over (x)}(t) in (10) with δ{circumflex over (x)}(t) and {dot over (δ)}{circumflex over (x)}(t) from the outputs of the Kalman filter.
Step 4. Integrate the following equation,
δ{dot over (u)}(t)=K0(t)δ{circumflex over (x)}(t)+K1(t)δ{circumflex over ({dot over (x)})}(t)+K2(t)δu(t)+ψ(t). (11)
The intervals [ti, ti+1] for all i, are chosen small enough so that the gains Kj(t), j=0, 1, 2 and ψ(t) can be considered constant over each interval, and are evaluated at ti.
Using the variation of constant formula, the integral of (11) at ti+1− is given by
δu(ti+1)=∫t
Integrate (12) using an impulsive approximation assuming that the integrands are impulses atti. Thus, the incremental control for the low speed controller is
δu(ti+1−)≈eK
Solving for the high speed controller, we get the incremental control for the high speed controller, δuH(ti+1−). Taking the linear combination of the two incremental controls, we get
δu(ti+1−)=ε1δuL(ti+1−)+ε2δuH(ti+1−). (14)
The control to the battery at ti+1 is given by
u(ti+1)=u(t1)+δu(ti+1−). (15)
The state at ti+1 is
x(ti+1)=x(ti)+δ{circumflex over (x)}(ti+1). (16)
the rate of the state at ti+1 is
{dot over (x)}(ti+1)={dot over (x)}(ti)+{dot over (δ)}{circumflex over (x)}(ti+1). (17)
Both (16) and (17) are sent to the rules module for future requirements to update {tilde over (x)}δ(t). This approach is repeated on the next interval. This is illustrated in
The model of the cell may be trained, for example, with the following parameters, which are typical of a 1 kW rated Lithium ion battery.
With respect to the battery operation, the controller for this example compensate very well for the uncertainty in the parameters and approximation errors, and exhibits good quality of robustness and time response.
Additional details regarding an example embodiment of continuously estimating state for a battery in use, such as for a generic lithium ion high power battery cell and for a low speed controller, are as follows:
The stochastic differential equation for the state update is:
dδx(t)=A(t)δx(t)dt+B(t)δu(t)dt+f(t)dt+dω(t) (1)
where the state δx(t)εR3, u(t)εR1, A(t) is a 3×3 matrix, B(t) is a 3×1 vector, ƒ(t) is a 3×1 vector and ω(t) is a 3×1 vector. The noise has zero mean and the covariance matrix W, e.g., ω(t)˜N(0, W).
The observation equation is given by
δy(t)=δx(t)+θ(t) (2)
where the measurement δy(t)εR3, and θ(t) is a 3×1 vector. The noise has zero mean and the covariance matrix V, e.g., θ(t)˜N(0, V).
The state update equation is:
δ{circumflex over ({dot over (x)})}(t)=A(t)δ{circumflex over (x)}(t)+B(t)δu(t)+K(t)(δy(t)−δ{circumflex over (x)}(t)) (3)
where the Kalman gain K is a 3×3 matrix, given by
K(t)=P(t)V−1 (4)
and the covariance update equation is:
{dot over (P)}(t)=A(t)P(t)+P(t)A(t)T+W−P(t)V−1P(t) (5)
In order to determine the conditional mean δ{circumflex over (x)}(t) and the conditional rate δ{circumflex over ({dot over (x)})}(t) for ti≦t<ti+1, the first step is to initialize δ{circumflex over (x)}(ti)=0 and P(ti)=0.
The second step is to solve (5) numerically (e.g., Runge-Kutta method) for P(t), for ti≦t<ti+1. The third step is to get the Kalman gain, using (4).
The fourth step is to solve (3) numerically, where the parameters A(t), B(t) and the observations δy(t) are known. This provides the conditional mean δ{circumflex over (x)}(t) and the conditional rate δ{circumflex over ({dot over (x)})}(t) for ti≦t<ti+1.
Additional details regarding an example embodiment of computing feedback gain for a battery in use, such as for a generic lithium ion high power battery cell and for a low speed controller as described above, are as follows:
An optimal control tracking problem to be solved may be summarized as:
Define the new state variable
and the new control variable v(t)=δ{dot over (u)}(t), the state equation in (2-4) can be rewritten as
{dot over (z)}(t)={tilde over (A)}(ti)z(t)+{tilde over (B)}(ti)v(t)+{tilde over (f)}(ti)
with the initial conditions z(ti)=0, and
The optimal control tracking problem to be solved is summarized as:
Σ(t) is a matrix, and φ(t) is a vector. They are provided by solving the following ordinary differential equations.
{dot over (Σ)}(t)=−Σ(t){tilde over (A)}(ti)−{tilde over (A)}(ti)TΣ(t)+Σ(t){tilde over (B)}(ti)R−1{tilde over (B)}(ti)TΣ(t)−Q with Σ(ti+1)=F (6)
{dot over (φ)}(t)=(−{tilde over (A)}(ti)T+Σ(t){tilde over (B)}(ti)R−1{tilde over (B)}(ti)T)φ(t)−Σ(t){tilde over (f)}(ti)+Q{tilde over (z)}(ti) with φ(ti+1)=0. (7)
v(t)=−R−1{tilde over (B)}T(Σ(t)z(t)+φ(t))=−R−1{tilde over (B)}TΣ(t)z(t)−R−1{tilde over (B)}Tφ(t)=KLQ(t)z(t)+ψ(t) (8)
where KLQ(t)=−R−1{tilde over (B)}TΣ(t), ψ(t)=−R−1{tilde over (B)}Tφ(t).
By the separation principle, we can calculate the KLQ(t) and ψ(t) by solving the deterministic problem first, then replace the state z(t) in (8) with
to get v(t), as shown in (9).
v(t)=δ{dot over (u)}(t)=K0(t)δ{circumflex over (x)}(t)+K1(t)δ{dot over ({circumflex over (x)})}(t)+K2(t)δu(t)+ψ(t) (9)
Using an impulsive approximation assuming that the integrands are impulses at ti, yields
δu(ti+1−)≈eK
To get the state value for the deterministic problem, solve the following differential equation.
An architecture for such operations is illustrated in system 5000 of
Additional details regarding an example embodiment of an emergency battery tracking controller are as follows:
The state space model of the battery system:
δ{dot over (x)}(t)=Aδx(t)+Bδu(t)+f (1)
y(t)=Cδx(t) (2)
The state observer is of the form:
δ{circumflex over ({dot over (x)})}(t)=Aδ{circumflex over (x)}(t)+Bδu(t)+f+K(y(t)−Cδ{circumflex over (x)}(t)) (3)
where {circumflex over (x)}(t) is the estimate of x(t) and K is the latest Kalman filter gain computed by the hybrid tracker before we switch to the closed-loop tracker.
Equation (3) can be rewritten as follows:
δ{circumflex over ({dot over (x)})}(t)=(A−KC)δ{circumflex over (x)}(t)+Bδu(t)+f+Ky(t) (4)
We take the Laplace transform of both sides of the equation:
sδ{circumflex over (x)}(s)−δ{circumflex over (x)}(0)=(A−KC)δ{circumflex over (x)}(s)+Bδu(s)+f(s)+Ky(s) (5)
where δ{circumflex over (x)}(0)=0 and
Solving for δ{circumflex over (x)}(s), we find:
δ{circumflex over (x)}(s)=(sI−A+KC)−1[Bδu(s)+f(s)+Ky(s)] (6)
Multiplying by C on both sides of (6) and replacing Cδ{circumflex over (x)}(s) with y(s), we get:
y(s)=C(sI−A+KC)−1(Bδu(s)+f(s)+Ky(s)) (7)
Solving for y(s), we find:
(I−C(sI−A+KC)−1K)y(s)=C(sI−A+KC)−1(Bδu(s)+f(s)) (8)
y(s)=[I−C(sI−A+KC)−1K]−1C(sI−A+KC)−1(Bδu(s)+f(s)) (9)
Let
G
u(s)=[I−C(sI−A+KC)−1K]−1C(sI−A+KC)−1B (10)
G
f(s)=[I−C(sI−A+KC)−1K]−1C(sI−A+KC)−1 (11)
then,
y(s)=Gu(s)δu(s)+Gf(s)f(s) (12)
Let yref(t) be a reference signal, which can be obtained by setting δ{dot over (k)}(t)=0 and δu(t)=0 in (18), and then solving for δx(t), yielding
y
ref(t)=−(ATA)−1ATf (13)
Design a PI controller, such that
where KK is the proportional gain and Ki is the integral gain to be determined, and
y
ref(s)=−(ATA)−1ATf/s.
The feedback controller 4800 is shown in
Solving for y(s), we get:
Now stabilize the feedback control system with Kp and Ki to be determined. The closed-loop transfer function is:
Chose KK and Ki such that all the poles of T(s) located in the open left half of the s-plane.
The numerical algorithm to compute Kp and Ki is shown below. As previously mentioned, the state space model of the battery system is as follows:
δ{dot over (x)}(t)=Aδx(t)+Bδu(t)+f (18)
δy(t)=Cδx(t) (19)
The state observer is of the form:
δ{circumflex over ({dot over (x)})}(t)=Aδ{circumflex over (x)}(t)+Bδu(t)+f+K(δy(t)−Cδ{circumflex over (x)}(t)) (20)
where {circumflex over (x)}(t) is the estimate of x(t) and K is the latest Kalman filter gain computed by the hybrid tracker before we switch to the closed-loop tracker. δy(t) is obtained from the history measurement data. Equation (20) can be rewritten as follows:
δ{circumflex over ({dot over (x)})}(t)=(A−KC)δ{circumflex over (x)}(t)+Bδu(i)+f+Kδy(t) (21)
Equation (21) can be approximated by
δ{circumflex over (x)}(t+Δ)=e(A−KC)Δδ{circumflex over (x)}(t)+∫tt+Δe(A−KΔ)(t+Δ−τ)(Bδu(τ)τf+Kδy(τ))dτ (22)
Assuming the integrands are impulses at t, we have
Design a PI controller, such that
δu(t)=Kp(δyref−δy(t))+Ki∫0t(δyref−δy(τ))dτ (24)
where Kp is the proportional gain and Ki is the integral gain to be determined, δyref is a reference signal, which can be obtained by setting δ{dot over (x)}(t)=0 and δu(t)=0 in (18), and then solving for δx(t), yielding
δyref=(ATA)−1ATf (25)
Solve a least squares problem for Kp and Ki such that the integral of squared residuals ∫t=0T(δyref−Cδ{circumflex over (x)}(t))T(δyref−Cδ{circumflex over (x)}(t)) is minimized, subject to equation (23), (24) and (25).
where, by Nyquist, N is determined by the minimum eigenvalues of the state transition matrix A, λmin, i.e.,
Let Ã=e(A−KC)Δ, δ{circumflex over (x)}n=δ{circumflex over (x)}(nΔ), δyn=δy(nΔ) and replace δu(nΔ) in (28) with (27), yields:
Solve the problem using a dynamic programming approach. The cost-to-go function is written as:
with V({circumflex over (x)}N,N)=(δ{circumflex over (x)}N)TCTCδ{circumflex over (x)}N−2(δ{circumflex over (x)}N)TCTδyref+(δyref)Tδyref, and equate it to the Riccati form
V(δ{circumflex over (x)}n,n)=(δ{circumflex over (x)}n)TΦnδ{circumflex over (x)}n(δ{circumflex over (x)}n)TΨn+Ωn (36)
where Φn represents a symmetric positive definite matrix, Φn is a positive vector, and Ωn is a positive scalar. Combining the equations (35), (36) and the dynamics in (32), yields
In order to minimize this expression, isolate the terms with Kp and Ki in them,
and take the derivative with respect to each element of Kp and Ki, and set the value to 0. This yields the solution for the optimal gain Kp*, and Ki* with respect to Φn, Φn and Ωn. Equating the Riccati form (36) with the value function in (38) evaluated at Kp* and Ki*, solve for Φn, Φn and Ωn, thereafter, numerical values for Kp* and Ki*.
Additional details regarding an example embodiment of controlling a battery as part of a network of multiple home solar power systems are as follows, which in this example use functionality to support Internet Of Things (IoT) capabilities in an online network environment such as Microsoft's Azure:
In this example, the architecture is designed to control millions of batteries at multiple sites. The architecture consists of the following components:
The battery control units are located in hardware, on site, and are directly connected to the battery. The battery control units connect to the cloud to receive their desired control via the Azure Internet of Things (IoT) Hub. When the connection is lost, the control units provide backup control to the batteries to ensure they stay in a stable state.
As mentioned above, each site will connect to this example system via the Azure IoT (Internet of Things) Hub. This will be done using the HTTPS or AMQPS protocols. The IoT hub allows us to scale the number of batteries to the millions, and will handle authentication and message routing. Each battery control unit will have a unique topic that it sends sensor data to, and a unique topic that other components can send control messages to back to the battery.
Another process is responsible for reading/writing utility requests to the utility. This interface is likely a variant of SCADA, but may be adapted to suit the utility company.
Each battery will have a process, known as a “CDI agent” to compute the optimal control for the battery. The agents will be implemented as service bus listeners in the Azure cloud. The agents communicate with other agents via the Azure Service Bus using AMQP. Each agent subscribes to the IoT topic from the battery it controls, and so can receive the current state of its battery.
To compute an approximate globally optimal control, the CDI agents communicate their estimation state and optimal control with each other (known as a “mean field”). To keep computation and message passing scalable, the CDI agents are clustered into a 2- or 3-level hierarchy, based on location and possibly battery type.
Clusters may, for example, be created for each substation level, and range from 100-1000 agents. Each cluster has a service bus topic to which all agents in the cluster publish and subscribe to. To share state between clusters, a particular node in each cluster is marked as a master. This node additionally subscribes and sends state to another topic shared by other master nodes.
There is another set of nodes that are used for site management, that is, to be able to adapt the network of CDI agents as batteries are added or removed, or repair the network if failures occur.
The network structure is encoded by the list of agents and battery control units, as well as the list of which topics each agent should publish and subscribe to. This data is saved within the Azure Storage Service. Creating, destroying, and updating agents is done using the Azure Resource Management API.
When a new battery is installed, the system will receive new messages from the battery control unit for a request to add to the system; this request will include data about the battery (type, location, substation, etc.) that will be needed to find the appropriate CDI agent cluster to add to.
When a battery goes offline for a short time (e.g., due to loss of connection) then the IoT hub manages the last estimate of the state of the battery, and the battery goes into the backup local control until it reconnects. However, if a battery goes offline for a long time (e.g., because it is permanently disconnected) then the Site Management component then stops the associated CDI agent.
When clusters become too unbalanced, that is, they have too many or too few nodes, the site management component splits the cluster in two or combines nearby clusters into one, such as based on proximity or battery type. The site management component sends the affected agents the new lists of topics they subscribe and publish to. The picking of CDI master nodes is also done by the Site Management component.
The monitoring component listens for messages from each battery control unit and each CDI agent to make sure that
For updates to Battery Control code, the battery control unit is sent a first message to download the new code, and then a second message to stop the current processes and switch to the newly downloaded code. For updates to CDI Agent code, the site management component can stop running agents one at a time, and restart them with the new version of code. To deploy new code to the monitoring, site management, and utility listener, an updated version is started in parallel, and verified to work, then the old version is decommissioned.
As noted above, in some embodiments and situations, a general battery model may be trained to reflect attributes and characteristics specific to a particular battery in use, such as before controlling of the particular battery in use begins and/or during such controlling and use. Additional details regarding an example embodiment of training a model are as follows:
A parameter learning engine is described for adapting the parameters in the incremental model for the power battery cell to reflect a particular power battery cell.
The stochastic differential equation is:
dδx(t)=A(t)δx(t)dt+B(t)δu(t)dt+f(t)dt+dω(t) (1)
where the state δx(t)εR3, u(t)εR1 A(t) is a 3×3 matrix, B(t) is a 3×1 vector, ƒ(t) is a 3×1 vector and ω(t) is a 3×1 vector. The noise has zero mean and the covariance matrix W, e.g., ω(t)˜N(0, W).
The observation equation is given by
δy(t)=δx(t)+θ(t) (2)
where the measurement δy(t)εR3, and θ(t) is a 3×1 vector. The noise has zero mean and the covariance matrix V, e.g., θ(t)˜N(0, V).
The parameter learning engine estimates the A matrix, creating a vector of the nine values vect (α11, α12, α13, α21, α22, α23, α31, α32, α33). These parameters are expected to change slower than the incremental state dynamic updates, so a discrete Kalman filter can be used to estimate the A parameters. For this parameter learning engine, the values of B(t), δu(t), ƒ(t), ω(t), δy(t), and θ(t) are known at times ti, ti−1 and ti−2.
Let ψt=vect(α11, α12, α13, α21, α22, α23, α31, α32, α33)t
and the dynamics of the parameters is, ψt+1=ψt+ (3)
where t is N(0,λ).
Solving (1) using the variation of constants formula, we get
δx(ti+1)=eA(t
and using an impulsive approximation, yields,
δx(ti+1)=eA(t
and applying a first order Taylor series expansion on the exponential term yields,
δx(ti+1)=(I+A(ti+1−t1))(δx(ti)+B(ti)δu(ti)+f(ti)+ω(ti)). (6)
Substituting δx(ti)=δy(ti)−θ(ti) from (2) yields,
δY(ti+1)=(I+A(ti+1−ti))(δy(ti)+B(ti)δu(ti)+f(ti)+ω(ti)−θ(ti))+θ(ti+1). (7)
To simplify the notation, let
γ(ti)=δy(ti)+B(ti)δu(ti)+f(ti) (8)
then,
δy(ti+1)=(I+A(ti+1−ti))(γ(ti)+ω(ti)−θ(ti))+θ(ti+1)δy(ti+1)=A(ti+1−ti)γ(ti)+(γ(ti)+ω(ti)−θ(ti))+θ(ti+1)+Ω(ti+1)
where Ω(ti+1) is a noise term. Then we have,
Let the sum of the independent noise vectors be Ξ(ti+)=ω(ti)−θ(ti)+θ(ti+1)+Ω(ti+1) which has zero mean and because the noises are independent, the covariance matrix is the sum of the individual variances.
Now, to estimate the nine parameter values in A, which are constant over long intervals, we write (9) at times ti, ti−1 and ti−2,
δy=(ti)−γ(ti−1)=A(ti−ti−1)(γ(Ti−1))+Ξ(ti)
δy=(ti−1)−γ(ti−2)=A(ti−ti−2)(γ(Ti−2))+Ξ(ti−1)
δy=(ti−2)−γ(ti−3)=A(ti−ti−3)(γ(Ti−2))+Ξ(ti−2)
and rewrite in matrix form for the parameter observation equation for the parameters, as,
where {tilde over (Ξ)}(ti) is a 9×1 Gaussian vector with zero mean and a diagonal covariance matrix, with diagonal entries equal to the diagonal elements of W+2V+Cov(Ω).
Now, we have,
Now we use a discrete Kalman filter to estimate the parameters
As shown in (3) and (10), the parameter dynamics equation and the parameter observation equation are
ψi+1=ψi+i
Z
i
=G
iψi+{tilde over (Ξ)}i
where is N(0,λ), {tilde over (Ξ)}i is N(0, W+2V+Cov(Ω)), Gi=g(ti) as shown in (11), and the observation
as shown in (10).
The Discrete Kalman filter equations follow.
The predictor equation of the state estimate is
ψi+1|i=ψi|i (12)
and the corrector equation with measurement is
ψi+1|i=ψi+1|i+Kigain(Zi−ψi+1|i) (13)
where Kigain is the gain matrix.
The covariance matrix for the Kalman filter, denoted as Σ, is computed by the predictor equation,
Σi+1|i=Σi|i+λ (14)
and the corrector equation,
Σi+1|i+1=[I−Kigain]Σi+1|i. (15)
The gain is
K
i
gain=Σi+1|i(Σi+1|i+W+2V+Cov(Ω))−1. (16)
The initial condition is
Σ0|0=00. (17)
As noted above, in some embodiments and situations, the internal state of an operating battery may be estimated, such as to estimate an internal temperature of the battery. Rather than managing battery temperature in the manner discussed herein, it is noted that prior systems, if they use temperature at all, typically merely shut down a battery's operation if the external temperature is too high, rather than control the battery's operations to manage the temperature. In addition, while not described in the example temperature model below, in some embodiments additional operations may be performed to control the internal temperature of the battery based at least in part on managing an external temperature surrounding the battery, such as by controlling the external temperature based at least in part on an estimated internal state of the battery.
Additional details regarding an example embodiment of using a battery temperature model to estimate such internal battery temperature are as follows:
where P and Q are polynomials in s, and the order o(P)>o(Q). The Laplace transform of (1) is approximated by
with
Define , we have
From (5) and (8), we also have
Replacing Q(s) in (12) with (7), yields
The inverse Laplace transform of (13) is:
Replacing v(t) in (14) with (2), yields
where is a Gaussian noise.
In (15), we set the values of to be constant during a unit time interval of the lower speed controller, in:
and let to be the control variable for the light speed controller, yielding
The state equation in (17) one be rewritten as:
and Ω(t) is a Gaussian noise.
The optimal control tracking problems for the high speed controller is summarized as:
By the separation principle, we can get the incremental control for the high speed controller.
where is the state estimate by running a discrete Kalman filer, K and Φ are obtained by solving the deterministic trading problem.
then the (2,1) pade approximation for is
The server computing system 4600 has components in the illustrated embodiment that include one or more hardware CPU (“central processing unit”) computer processors 4605, various I/O (“input/output”) hardware components 4610, storage 4620, and memory 4630. The illustrated I/O components include a display 4611, a network connection 4612, a computer-readable media drive 4613, and other I/O devices 4615 (e.g., a keyboard, a mouse, speakers, etc.). In addition, the illustrated client computer systems 4650 may each have components similar to those of server computing system 4600, including one or more CPUs 4651, I/O components 4652, storage 4654, and memory 4657, although some details are not illustrated for the computing systems 4650 for the sake of brevity. The target systems 4660 and 4670 may also each include one or more computing systems (not shown) having components that are similar to some or all of the components illustrated with respect to server computing system 4600, but such computing systems and components are not illustrated in this example for the sake of brevity.
The CDD system 4640 is executing in memory 4630 and includes components 4642-4646, and in some embodiments the system and/or components each includes various software instructions that when executed program one or more of the CPU processors 4605 to provide an embodiment of a CDD system as described elsewhere herein. The CDD system 4640 may interact with computing systems 4650 over the network 4690 (e.g., via the Internet and/or the World Wide Web, via a private cellular network, etc.), as well as the target systems 4660 and 4670 in this example. In this example embodiment, the CDD system includes functionality related to generating and deploying decision modules in configured manners for customers or other users, as discussed in greater detail elsewhere herein. The other computing systems 4650 may also be executing various software as part of interactions with the CDD system 4640 and/or its components. For example, client computing systems 4650 may be executing software in memory 4657 to interact with CDD system 4640 (e.g., as part of a Web browser, a specialized client-side application program, etc.), such as to interact with one or more interfaces (not shown) of the CDD system 4640 to configure and deploy automated control systems (e.g., stored automated control systems 4625 that were previously created by the CDD system 4640 for use in controlling one or more physical target systems with batteries) or other decision modules 4629, as well as to perform various other types of actions, as discussed in greater detail elsewhere. Various information related to the functionality of the CDD system 4640 may be stored in storage 4620, such as information 4621 related to users of the CDD system (e.g., account information), and information 4623 related to one or more target systems that have batteries to be controlled.
It will be appreciated that computing systems 4600 and 4650 and target systems 4660 and 4670 are merely illustrative and are not intended to limit the scope of the present invention. The computing systems may instead each include multiple interacting computing systems or devices, and the computing systems/nodes may be connected to other devices that are not illustrated, including through one or more networks such as the Internet, via the Web, or via private networks (e.g., mobile communication networks, etc.). More generally, a computing node or other computing system or device may comprise any combination of hardware that may interact and perform the described types of functionality, including without limitation desktop or other computers, database servers, network storage devices and other network devices, PDAs, cell phones, wireless phones, pagers, electronic organizers, Internet appliances, television-based systems (e.g., using set-top boxes and/or personal/digital video recorders), and various other consumer products that include appropriate communication capabilities. In addition, the functionality provided by the illustrated CDD system 4640 and its components may in some embodiments be distributed in additional components. Similarly, in some embodiments some of the functionality of the CDD system 4640 and/or CDD components 4642-4646 may not be provided and/or other additional functionality may be available.
It will also be appreciated that, while various items are illustrated as being stored in memory or on storage while being used, these items or portions of them may be transferred between memory and other storage devices for purposes of memory management and data integrity. Alternatively, in other embodiments some or all of the software modules and/or systems may execute in memory on another device and communicate with the illustrated computing systems via inter-computer communication. Thus, in some embodiments, some or all of the described techniques may be performed by hardware means that include one or more processors and/or memory and/or storage when configured by one or more software programs (e.g., by the CDD system 4640 and/or the CDD components 4642-4646) and/or data structures, such as by execution of software instructions of the one or more software programs and/or by storage of such software instructions and/or data structures. Furthermore, in some embodiments, some or all of the systems and/or components may be implemented or provided in other manners, such as by using means that are implemented at least partially or completely in firmware and/or hardware, including, but not limited to, one or more application-specific integrated circuits (ASICs), standard integrated circuits, controllers (e.g., by executing appropriate instructions, and including microcontrollers and/or embedded controllers), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), etc. Some or all of the components, systems and data structures may also be stored (e.g., as software instructions or structured data) on a non-transitory computer-readable storage medium, such as a hard disk or flash drive or other non-volatile storage device, volatile or non-volatile memory (e.g., RAM), a network storage device, or a portable media article to be read by an appropriate drive (e.g., a DVD disk, a CD disk, an optical disk, etc.) or via an appropriate connection. The systems, components and data structures may also in some embodiments be transmitted as generated data signals (e.g., as part of a carrier wave or other analog or digital propagated signal) on a variety of computer-readable transmission mediums, including wireless-based and wired/cable-based mediums, and may take a variety of forms (e.g., as part of a single or multiplexed analog signal, or as multiple discrete digital packets or frames). Such computer program products may also take other forms in other embodiments. Accordingly, the present invention may be practiced with other computer system configurations.
For illustrative purposes, some additional details are included below regarding some embodiments in which specific types of operations are performed in specific manners, including with respect to particular types of target systems and for particular types of control activities determined in particular manners. These examples are provided for illustrative purposes and are simplified for the sake of brevity, and the inventive techniques may be used in a wide variety of other situations, including in other environments and with other types of automated control action determination techniques, some of which are discussed below.
In particular, target system 1160 and target system 2170 are example target systems illustrated in this example, although it will be appreciated that only one target system or numerous target systems may be available in particular embodiments and situations, and that each such target system may include a variety of mechanical, electronic, chemical, biological, and/or other types of components to implement operations of the target system in a manner specific to the target system. In this example, the one or more users (not shown) may interact with the CDD system 140 to generate an example automated control system 122 for target system 1, with the automated control system including multiple decision modules 124 in this example that will cooperatively interact to control portions of the target system 1160 when later deployed and implemented. The process of the users interacting with the CDD system 140 to create the automated control system 122 may involve a variety of interactions over time, including in some cases independent actions of different groups of users, as discussed in greater detail elsewhere. In addition, as part of the process of creating and/or training or testing automated control system 122, it may perform one or more interactions with the target system 1 as illustrated, such as to obtain partial initial state information, although some or all training activities may in at least some embodiments include simulating effects of control actions in the target system 1 without actually implementing those control actions at that time.
After the automated control system 122 is created, the automated control system may be deployed and implemented to begin performing operations involving controlling the target system 1160, such as by optionally executing the automated control system 122 on the one or more computing systems 190 of the CDD system 140, so as to interact over the computer networks 100 with the target system 1. In other embodiments and situations, the automated control system 122 may instead be deployed by executing local copies of some or all of the automated control system 122 (e.g., one or more of the multiple decision modules 124) in a manner local to the target system 1, as illustrated with respect to a deployed copy 121 of some or all of automated control system 1, such as on one or more computing systems (not shown) that are part of the target system 1.
In a similar manner to that discussed with respect to automated control system 122, one or more users (whether the same users, overlapping users, or completely unrelated users to those that were involved in creating the automated control system 122) may similarly interact over the computer network 100 with the CDD system 140 to create a separate automated control system 126 for use in controlling some or all of the target system 2170. In this example, the automated control system 126 for target system 2 includes only a single decision module 128 that will perform all of the control actions for the automated control system 126. The automated control system 126 may similarly be deployed and implemented for target system 2 in a manner similar to that discussed with respect to automated control system 122, such as to execute locally on the one or more computing systems 190 and/or on one or more computing systems (not shown) that are part of the target system 2, although a deployed copy of automated control system 2 is not illustrated in this example. It will be further appreciated that the automated control systems 122 and/or 126 may further include other components and/or functionality that are separate from the particular decision modules 124 and 128, respectively, although such other components and/or functionality are not illustrated in
The network 100 may, for example, be a publicly accessible network of linked networks, possibly operated by various distinct parties, such as the Internet, with the CDD system 140 available to any users or only certain users over the network 100. In other embodiments, the network 100 may be a private network, such as, for example, a corporate or university network that is wholly or partially inaccessible to non-privileged users. In still other embodiments, the network 100 may include one or more private networks with access to and/or from the Internet. Thus, while the CDD system 140 in the illustrated embodiment is implemented in an online manner to support various users over the one or more computer networks 100, in other embodiments a copy of the CDD system 140 may instead be implemented in other manners, such as to support a single user or a group of related users (e.g., a company or other organization), such as if the one or more computer networks 100 are instead an internal computer network of the company or other organization, and with such a copy of the CDD system optionally not being available to other users external to the company or other organizations. The online version of the CDD system 140 and/or local copy version of the CDD system 140 may in some embodiments and situations operate in a fee-based manner, such that the one or more users provide various fees to use various operations of the CDD system, such as to perform interactions to generate decision modules and corresponding automated control systems, and/or to deploy or implement such decision modules and corresponding automated control systems in various manners. In addition, the CDD system 140, each of its components (including component 142 and optional other components 117, such as one or more CDD Control Action Determination components and/or one or more CDD Coordinated Control Management components), each of the decision modules, and/or each of the automated control systems may include software instructions that execute on one or more computing systems (not shown) by one or more processors (not shown), such as to configure those processors and computing systems to operate as specialized machines with respect to performing their programmed functionality.
As the decision modules 124 and automated control system 122 execute, various interactions 175 between the decision modules 124 are performed, such as to share information about current models and other state of the decision modules to enable cooperation and coordination between various decision modules, such as for a particular decision module to operate in a partially synchronized consensus manner with respect to one or more other decision modules (and in some situations in a fully synchronized manner in which the consensus actions of all of the decision modules 124 converge). During operation of the decision modules 124 and automated control system 122, various state information 143 may be obtained by the automated control system 122 from the target system 160, such as initial state information and changing state information over time, and including outputs or other results in the target system 1 from control actions performed by the decision modules 124.
The target system 1 in this example includes various control elements 161 that the automated control system 122 may manipulate, and in this example each decision module 124 may have a separate group of one or more control elements 161 that it manipulates (such that decision module A 124a performs interactions 169a to perform control actions A 147a on control elements A 161a, decision module B 124b performs interactions 169b to perform control actions B 147b on control elements B 161b, and decision module N 124n performs interactions 169n to perform control actions N 147n on control elements N 161n). Such control actions affect the internal state 163 of other elements of the target system 1, including optionally to cause or influence one or more outputs 162. As operation of the target system 1 is ongoing, at least some of the internal state information 163 is provided to some or all of the decision modules to influence their ongoing control actions, with each of the decision modules 124a-124n possibly having a distinct set of state information 143a-143n, respectively, in this example.
As discussed in greater detail elsewhere, each decision module 124 may use such state information 143 and a local model 145 of the decision module for the target system to determine particular control actions 147 to next perform, such as for each of multiple time periods, although in other embodiments and situations, a particular automated control system may perform interactions with a particular target system for only one time period or only for some time periods. For example, the local CDD Control Action Determination component 144 for a decision module 124 may determine a near-optimal location solution for that decision module's local model 145, and with the local CDD Coordinated Control Management component 146 determining a synchronized consensus solution to reflect other of the decision modules 124, including to update the decision module's local model 145 based on such local and/or synchronized solutions that are determined. Thus, during execution of the automated control system 122, the automated control system performs various interactions with the target system 160, including to request state information, and to provide instructions to modify values of or otherwise manipulate control elements 161 of the target system 160. For example, for each of multiple time periods, decision module 124a may perform one or more interactions 169a with one or more control elements 161a of the target system, while decision module 124b may similarly perform one or more interactions 169b with one or more separate control elements B 161b, and decision module 124n may perform one or more interactions 169n with one or more control elements N 161n of the target system 160. In other embodiments and situations, at least some control elements may not perform control actions during each time period.
While example target system 2170 is not illustrated in
While not illustrated in
The server computing system 300 has components in the illustrated embodiment that include one or more hardware CPU (“central processing unit”) computer processors 305, various I/O (“input/output”) hardware components 310, storage 320, and memory 330. The illustrated I/O components include a display 311, a network connection 312, a computer-readable media drive 313, and other I/O devices 315 (e.g., a keyboard, a mouse, speakers, etc.). In addition, the illustrated client computer systems 350 may each have components similar to those of server computing system 300, including one or more CPUs 351, I/O components 352, storage 354, and memory 357, although some details are not illustrated for the computing systems 350 for the sake of brevity. The target systems 360 and 370 may also each include one or more computing systems (not shown) having components that are similar to some or all of the components illustrated with respect to server computing system 300, but such computing systems and components are not illustrated in this example for the sake of brevity.
The CDD system 340 is executing in memory 330 and includes components 342-346, and in some embodiments the system and/or components each includes various software instructions that when executed program one or more of the CPU processors 305 to provide an embodiment of a CDD system as described elsewhere herein. The CDD system 340 may interact with computing systems 350 over the network 390 (e.g., via the Internet and/or the World Wide Web, via a private cellular network, etc.), as well as the target systems 360 and 370 in this example. In this example embodiment, the CDD system includes functionality related to generating and deploying decision modules in configured manners for customers or other users, as discussed in greater detail elsewhere herein. The other computing systems 350 may also be executing various software as part of interactions with the CDD system 340 and/or its components. For example, client computing systems 350 may be executing software in memory 357 to interact with CDD system 340 (e.g., as part of a Web browser, a specialized client-side application program, etc.), such as to interact with one or more interfaces (not shown) of the CDD system 340 to configure and deploy automated control systems (e.g., stored automated control systems 325 that were previously created by the CDD system 340) or other decision modules 329, as well as to perform various other types of actions, as discussed in greater detail elsewhere. Various information related to the functionality of the CDD system 340 may be stored in storage 320, such as information 321 related to users of the CDD system (e.g., account information), and information 323 related to one or more target systems.
It will be appreciated that computing systems 300 and 350 and target systems 360 and 370 are merely illustrative and are not intended to limit the scope of the present invention. The computing systems may instead each include multiple interacting computing systems or devices, and the computing systems/nodes may be connected to other devices that are not illustrated, including through one or more networks such as the Internet, via the Web, or via private networks (e.g., mobile communication networks, etc.). More generally, a computing node or other computing system or device may comprise any combination of hardware that may interact and perform the described types of functionality, including without limitation desktop or other computers, database servers, network storage devices and other network devices, PDAs, cell phones, wireless phones, pagers, electronic organizers, Internet appliances, television-based systems (e.g., using set-top boxes and/or personal/digital video recorders), and various other consumer products that include appropriate communication capabilities. In addition, the functionality provided by the illustrated CDD system 340 and its components may in some embodiments be distributed in additional components. Similarly, in some embodiments some of the functionality of the CDD system 340 and/or CDD components 342-346 may not be provided and/or other additional functionality may be available.
It will also be appreciated that, while various items are illustrated as being stored in memory or on storage while being used, these items or portions of them may be transferred between memory and other storage devices for purposes of memory management and data integrity. Alternatively, in other embodiments some or all of the software modules and/or systems may execute in memory on another device and communicate with the illustrated computing systems via inter-computer communication. Thus, in some embodiments, some or all of the techniques may be performed by hardware means that include one or more processors and/or memory and/or storage when configured by one or more software programs (e.g., by the CDD system 340 and/or the CDD components 342-346) and/or data structures, such as by execution of software instructions of the one or more software programs and/or by storage of such software instructions and/or data structures. Furthermore, in some embodiments, some or all of the systems and/or components may be implemented or provided in other manners, such as by using means that are implemented at least partially or completely in firmware and/or hardware, including, but not limited to, one or more application-specific integrated circuits (ASICs), standard integrated circuits, controllers (e.g., by executing appropriate instructions, and including microcontrollers and/or embedded controllers), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), etc. Some or all of the components, systems and data structures may also be stored (e.g., as software instructions or structured data) on a non-transitory computer-readable storage medium, such as a hard disk or flash drive or other non-volatile storage device, volatile or non-volatile memory (e.g., RAM), a network storage device, or a portable media article to be read by an appropriate drive (e.g., a DVD disk, a CD disk, an optical disk, etc.) or via an appropriate connection. The systems, components and data structures may also in some embodiments be transmitted as generated data signals (e.g., as part of a carrier wave or other analog or digital propagated signal) on a variety of computer-readable transmission mediums, including wireless-based and wired/cable-based mediums, and may take a variety of forms (e.g., as part of a single or multiplexed analog signal, or as multiple discrete digital packets or frames). Such computer program products may also take other forms in other embodiments. Accordingly, the present invention may be practiced with other computer system configurations.
The illustrated embodiment of the routine begins at block 410, where information or instructions are received. If it is determined in block 420 that the information or instructions of block 410 include an indication to create or revise one or more decision modules for use as part of an automated control system for a particular target system, the routine continues to block 425 to initiate execution of a Decision Module Construction component, and in block 430 obtains and stores one or more resulting decision modules for the target system that are created in block 425. One example of a routine for such a Decision Module Construction component is discussed in greater detail with respect to
After block 430, or if it is instead determined in block 420 that the information or instructions received in block 410 are not to create or revise one or more decision modules, the routine continues to block 440 to determine whether the information or instructions received in block 410 indicate to deploy one or more created decision modules to control a specified target system, such as for one or more decision modules that are part of an automated control system for that target system. The one or more decision modules to deploy may have been created immediately prior with respect to block 425, such that the deployment occurs in a manner that is substantially simultaneous with the creation, or in other situations may include one or more decision modules that were created at a previous time and stored for later use. If it is determined to deploy one or more such decision modules for such a target system, the routine continues to block 450 to initiate the execution of those one or more decision modules for that target system, such as on one or more computing systems local to an environment of the target system, or instead on one or more remote computing systems that communicate with the target system over one or more intermediary computer networks (e.g., one or more computing systems under control of a provider of the CDD system).
After block 450, the routine continues to block 460 to determine whether to perform distributed management of multiple decision modules being deployed in a manner external to those decision modules, such as via one or more centralized Coordinated Control Management components. If so, the routine continues to block 465 to initiate execution of one or more such centralized CDD Coordinated Control Management components for use with those decision modules. After block 465, or if it is instead determined in block 460 to not perform such distributed management in an external manner (e.g., if only one decision module is executed, if multiple decision modules are executed but coordinate their operations in a distributed peer-to-peer manner, etc.), the routine continues to block 470 to optionally obtain and store information about the operations of the one or more decision modules and/or resulting activities that occur in the target system, such as for later analysis and/or reporting.
If it is instead determined in block 440 that the information or instructions received in block 410 are not to deploy one or more decision modules, the routine continues instead to block 485 to perform one or more other indicated operations if appropriate. For example, such other authorized operations may include obtaining results information about the operation of a target system in other manners (e.g., by monitoring outputs or other state information for the target system), analyzing results of operations of decision modules and/or activities of corresponding target systems, generating reports or otherwise providing information to users regarding such operations and/or activities, etc. In addition, in some embodiments the analysis of activities of a particular target system over time may allow patterns to be identified in operation of the target system, such as to allow a model of that target system to be modified accordingly (whether manually or in an automated learning manner) to reflect those patterns and to respond based on them. In addition, as discussed in greater detail elsewhere, distributed operation of multiple decision modules for an automated control system in a partially decoupled manner allows various changes to be made while the automated control system is in operation, such as to add one or more new decision modules, to remove one or more existing decision modules, to modify the operation of a particular decision module (e.g., by changing rules or other information describing the target system that is part of a model for the decision module), etc. In addition, the partially decoupled nature of multiple such decision modules in an automated control system allows one or more such decision modules to operate individually at times, such as if network communication issues or other problems prevent communication between multiple decision modules that would otherwise allow their individualized control actions to be coordinated in such situations, some or all such decision modules may continue to operate in an individualized manner, such as to provide useful ongoing control operations for a target system even if optimal or near-optimal solutions cannot be identified from coordination and synchronization between a group of multiple decision modules that collectively provide the automated control system for the target system.
After blocks 470 or 485, the routine continues to block 495 to determine whether to continue, such as until an explicit indication to terminate is received. If it is determined to continue, the routine returns to block 410, and otherwise continues to block 499 and ends.
The illustrated embodiment of the routine 500 begins at block 510, where the routine provides or updates a displayed user interface to one or more users, such as via a request received at an online version of component that is implementing the routine, or instead based on the routine being executed by one or more such users on computing systems that they control. While various operations are shown in the illustrated embodiment of the routine as occurring in a serial manner for the purpose of illustration, it will be appreciated that user interactions with such a user interface may occur in an iterative manner and/or over multiple periods of time and/or user sessions, including to update a user interface previously displayed to a user in various manners (e.g., to reflect a user action, to reflect user feedback generated by operation of the routine or from another component, etc.), as discussed further below.
After block 510, the routine continues to block 520 to receive information from one or more such users describing a target system to be controlled, including information about a plurality of elements of the target system that include one or more manipulatable control elements and optionally one or more outputs that the control elements affect, information about rules that specify restrictions involving the elements, information about state information that will be available during controlling of the system (e.g., values of particular elements or other state variables), and one or more goals to achieve during the controlling of the target system. It will be appreciated that such information may be obtained over a period of time from one or more users, including in some embodiments for a first group of one or more users to supply some information related to a target system and for one or more other second groups of users to independently provide other information about the target system, such as to reflect different areas of expertise of the different users and/or different parts of the target system.
After block 520, the routine continues to block 525 to identify any errors that have been received in the user input, and to prompt the user(s) to correct those errors, such as by updating the display in a corresponding manner as discussed with respect to block 510. While the identification of such errors is illustrated as occurring after the receiving of the information in block 520, it will be appreciated that some or all such errors may instead be identified as the users are inputting information into the user interface, such as to identify syntax errors in rules or other information that the users specify. After block 525, the illustrated embodiment of the routine continues to block 530 to optionally decompose the information about the target system into multiple subsets that each correspond to a portion of the target system, such as with each subset having one or more different control elements that are manipulatable by the automated control system being created by the routine, and optionally have overlapping or completely distinct goals and/or sets of rules and other information describing the respective portions of the target system. As discussed in greater detail elsewhere, such decomposition, if performed, may in some situations be performed manually by the users indicating different subgroups of information that they enter, and/or in an automated manner by the routine based on an analysis of the information that has been specified (e.g., based on the size of rules and other descriptive information supplied for a target system, based on inter-relationships between different rules or goals or other information, etc.). In other embodiments, no such decomposition may be performed.
After block 530, the routine continues to block 535 to, for each subset of target system description information (or for all the received information if no such subsets are identified), convert that subset (or all the information) into a set of constraints that encapsulate the restrictions, goals, and other specified information for that subset (or for all the information). In block 540, the routine then identifies any errors that occur from the converting process, and if any are identified, may prompt the user to correct those errors, such as in a manner similar to that described with respect to blocks 525 and 510. While not illustrated in this example, the routine may in some situations in blocks 525 and/or 540 return to block 510 when such errors are identified, to display corresponding feedback to the user(s) and to allow the user(s) to make corrections and re-perform following operations such as those of blocks 520-540. The errors identified in the converting process in block 540 may include, for example, errors related to inconsistent restrictions, such as if the restrictions as a group are impossible to satisfy.
After block 540, the routine continues to block 545 to, for each set of constraints (or a single constraint set if no subsets were identified in block 530), apply one or more validation rules to the set of constraints to test overall effectiveness of the corresponding information that the constraints represent, and to prompt the one or more users to correct any errors that are identified in a manner similar to that with respect to blocks 525, 540 and 510. Such validation rules may test one or more of controllability, observability, stability, and goal completeness, as well as any user-added validation rules, as discussed in greater detail elsewhere. In block 550, the routine then converts each validated set of constraints to a set of coupled differential equations that model at least a portion of the target system to which the underlying information corresponds.
After block 550, the routine continues to block 553 to perform activities related to training a model for each set of coupled differential equations, including to determine one or more of a size of a training time window to use, size of multiple training time slices within the time window, and/or a type of training time slice within the time window. In some embodiments and situations, the determination of one or more such sizes or types of information is performed by using default or pre-specified information, while in other embodiments and situations the users may specify such information, or an automated determination of such information may be performed in one or more manners (e.g., by testing different sizes and evaluating results to find sizes with the best performance). Different types of time slices may include, for example, successions of time slices that overlap or do not overlap, such that the training for a second time slice may be dependent only on results of a first time slice (if they do not overlap) or instead may be based at least in part on updating information already determined for at least some of the first time slice (if they do overlap in part or in whole). After block 553, the routine continues to block 555 to, for each set of coupled differential equations representing a model, train the model for that set of coupled differential equations using partial initial state information for the target system, including to estimate values of variable that are not known and/or directly observable for the target system by simulating effects of performing control actions over the time window, such as for successive time slices throughout the time window, and to test the simulated performance of the trained model. Additional details related to training and testing are included elsewhere herein.
After block 555, the routine continues to block 560 to determine whether the training and testing was successful, and if not returns to block 510 to display corresponding feedback information to the users to allow them to correct errors that caused the lack of success. If it is instead determined in block 560 that the testing and training were successful, however, the routine continues instead to block 570 to generate an executable decision module for each trained and tested model that includes that model, as well as a local CCD Control Action Determination component that the decision module will use when executed to determine optimal or near-optimal control actions to perform for the target system based on the information included in the model, and in light of the one or more goals for that decision module. The generated executable decision module may in some embodiments and situations further include a local CCD Coordinated Control Management component to coordinate control actions of multiple decision modules that collectively will provide an automated control system for the target system, such as by synchronizing respective models of the various decision modules over time. After block 570, the routine continues to block 580 to provide the generated executable decision modules for use, including to optionally store them for later execution and/or deployment.
After block 580, the routine continues to block 595 to determine whether to continue, such as until an explicit indication to terminate is received. If it is determined to continue, the routine returns to block 510, and otherwise continues to block 599 and ends.
The illustrated embodiment of the routine 600 begins at block 610, where an initial model for the decision module is determined that describes at least a portion of a target system to be controlled, one or more goals for the decision module to attempt to achieve related to control of the target system, and optionally initial state information for the target system. The routine continues to block 615 to perform one or more actions to train the initial model if needed, as discussed in greater detail with respect to blocks 553 and 555 of
After block 615, the routine continues to block 617 to determine a time period to use for performing each control action decision for the decision module, such as to reflect a rate at which control element modifications in the target system are needed and/or to reflect a rate at which new incoming state information is received that may alter future manipulations of the control elements. The routine then continues to block 620 to start the next time period, beginning with a first time period moving forward from the startup of the execution of the decision module. Blocks 620-680 are then performed in a loop for each such time period going forward until execution of the decision module is suspended or terminated, although in other embodiments a particular decision module may execute for only a single time period each time that it is executed.
In block 625, the routine optionally obtains state information for the time period, such as current state information that has been received for the target system or one or more related external sources since the last time period began, and/or by actively retrieving current values of one or more elements of the target system or corresponding variables as needed. In block 630, the routine then initiates execution of a local CCD Control Action Determination component of the decision module, with one example of such a routine discussed in greater detail with respect to routine 700 of
After blocks 642 or 643, the routine continues to block 644 to determine if other decision modules are collectively controlling portions of the current target system, such as part of the same automated control system as the local decision module, and if so continues to block 645. Otherwise, the routine selects the local proposed control actions of the decision module as a final determined control action to perform, and continues to block 675 to implement those control actions for the current time period.
If there are other operating decision modules, the routine in block 645 determines if the local decision module includes a local copy of a CDD Coordinated Control Management (CCM) component for use in synchronizing the proposed control action determinations for the decision module's local solutions with activities of other decision modules that are collectively controlling the same target system. If so, the routine continues to block 647 to provide the one or more proposed control action determinations of the decision module and the corresponding current local model for the decision module to the local CDD CCM component, and otherwise continues to block 649 to provide the one or more proposed control action determinations for the decision module and the corresponding local model of the decision module to one or more centralized CDD CCM components.
After blocks 647 or 649, the routine continues to block 655 to obtain results of the actions of the CDD CCM component(s) in blocks 647 or 649, including to either obtain a further updated model resulting from synchronization of the local model for the current decision module with information from one or more other decision modules, such that the further updated model indicates one or more final control action determinations to perform for the time period for the current decision module, or an indication that no such synchronization was completed in the allowed time. The routine continues to block 660 to determine whether the synchronization was completed, and if so continues to block 665 to store the further updated model from the synchronization, and otherwise continues to block 670 to use the prior proposed control action determinations locally to the decision module as the final control action determinations for the time period.
After blocks 665 or 670, the routine continues to block 675 to implement the one or more final determined control actions for the decision module in the target system, such as by interacting with one or more effectuators in the target system that modify values or otherwise manipulate one or more control elements of the target system, or by otherwise providing input to the target system to cause such modifications or other manipulations to occur. In block 680, the routine optionally obtains information about the results in the target system of the control actions performed, and stores and/or provides information to the CDD system about such obtained results and/or about the activities of the decision module for the current time period.
After block 680, the routine continues to block 695 to determine whether to continue, such as until an indication to terminate or suspend is received (e.g., to reflect an end to current operation of the target system or an end of use of the decision module to control at least a portion of the target system). If it is determined to continue, the routine returns to block 620 to start the next time period, and otherwise continues to block 699 and ends.
The illustrated embodiment of the routine 700 begins at block 703, where information or a request is received. The routine continues to block 705 to determine a type of the information or request, and to proceed accordingly. In particular, if a request is received in block 703 to attempt to determine a solution for a current time period given a current model of the local decision module, the routine continues to block 710 to begin to perform such activities, as discussed in greater detail with respect to block 710-790. If it is instead determined in block 705 that a request to relax one or more rules or other restrictions for the current model of the local decision module is received, such as discussed in greater detail with respect to blocks 760 and 765, the routine continues to block 765. If it is determined in block 705 that a request is received to repair one or more rules or other restrictions for the current model of the local decision module, such as discussed in greater detail with respect to blocks 775 and 780, the routine continues to block 780 to obtain user input to use during the rule repair process (e.g., to interact with a CDD Decision Module Construction component, or to instead interact with one or more users in another manner), such as to allow the current model for the local decision module to later be updated and replaced based on further resulting user actions, or if operation of the target system can be suspended, to optionally wait to further perform the routine 700 until such an updated model is received. If it is instead determined in block 705 that the information or request is of another type, the routine continues instead to block 708 to perform one or more other indicated operations as appropriate, and to then proceed to block 799. Such other indicated operations may include, for example, receiving information about current models and/or control actions proposed or performed by one or more other decision modules that are collectively controlling a target system with the local decision module (such as for use in synchronizing the model of the local decision module with such other decision modules by generating a consensus or converged shared model, as discussed in greater detail with respect to routine 800 of
If it determined in block 705 that a request for a solution was received in block 703 for a current time period and based on a current model of the local decision module, the routine continues to block 710 to receive a current set of coupled differential equations that represent the current model for the local decision module of at least a portion of the target system, optionally along with additional state information for the target system for the current time. The routine then continues to block 715 to determine whether to train or re-train the model, such as if the routine is called for a first time upon initial execution of a corresponding decision module or if error measurements from ongoing operations indicate a need for re-training, as discussed in greater detail with respect to blocks 755, 770 and 730. If it is determined to train or re-train the model, the routine continues to block 720 to determine one or more of the size of a training time window, size of training time slices within the time window, and/or type of training time slices within the training time window, such as in a manner similar to that previously discussed with respect to block 553 of routine 500 of
After block 725, or if it is instead determined in block 715 not to train or re-train the model, the routine continues to block 730 to perform a piecewise linear analysis to attempt to determine a solution for the current model and any additional state information that was obtained in block 710, with the solution (if determined) including one or more proposed control action determinations for the local decision module to take for a current time period, as well as in some embodiments to use one or more model error gauges to make one or more error measurements with respect to the current model, as discussed in greater detail elsewhere. The routine then continues to block 735 to determine if the operations in block 730 determined a solution within a amount of time allowed for the operation of block 730 (e.g., a defined subset or fraction of the current time period), and if so continues to block 740 to update the current set of coupled differential equations and the resulting current model for the local decision module to reflect the solution, with the resulting updated information provided as an output of the routine 700.
If it is instead determined in block 735 that the operations in block 730 did not determine a solution, the routine continues to block 745 to determine if additional time is available within the current time period for further attempts to determine a solution, and if not continues to block 790 to provide output of the routine 700 indicating that no solution was determined for the current time period.
If additional time is available within the current time period, however, the routine continues to perform blocks 755-780 to perform one or more further attempts to identify the solution—it will be appreciated that one or more of the operations of blocks 755-780 may be repeatedly performed multiple times for a given time period if sufficient time is available to continue further solution determination attempts. In particular, the routine continues to block 755 if additional time is determined to be available in block 745, where it determines whether the measurements from one or more gauges indicate model error measurements that are over one or more thresholds indicating modifications to the model are needed, such as based on the model error measurements from the gauges discussed with respect to block 730. If not, the routine continues to block 760 to determine whether there are one or more rules or other restrictions in the current model that are available to be relaxed for the current time period (that have not previously attempted to be relaxed during the time period, if this is not the first pass through this portion of the routing for the current time period), and if so continues to block 765 to relax one or more such rules or other restrictions and to return to block 730 to re-attempt the piecewise linear analysis with the revised model based on those relaxed rules or other restrictions.
If it is instead determined in block 755 that the model error measurements from one or more of the gauges are sufficient to satisfy one or more corresponding thresholds, the routine continues instead to block 770 to determine whether to re-train the model based on one or more of the gauges indicating sufficient errors to do so, such as based on accumulated errors over one or more time periods of updates to the model. If so, the routine returns to block 720 to perform such re-training in blocks 720 and 725, and then continues to block 730 to re-attempt the piecewise linear analysis with the resulting re-trained model.
If it is instead determined in block 770 not to re-train the model (or if the model was re-trained already for the current time period and the resulting re-attempt in block 730 again failed to find a solution), the routine continues to block 775 to determine whether the model error measurements from one or more of the gauges indicate a subset of one or more rules or other restrictions in the model that potentially have errors that need to be repaired. If so, the routine continues to block 780 to provide information to one or more users via the CDD Decision Module Construction component, to allow the users to revise the rules or other restrictions as appropriate, although in other embodiments some or all such rule repair activities may instead be attempted or performed in an automated manner. After block 780, or if it is instead determined in block 775 not to repair any rules, the routine continues to block 790 to provide an indication that no solution was determined for the current time period. After blocks 740, 708, or 790, the routine continues to block 799 and ends. It will be appreciated that if the routine 700 was instead implemented as a centralized routine that supports one or more decision modules remote from the executing component for the routine, the routine 700 may instead return to block 703 to await further information or requests.
The illustrated embodiment of the routine 800 begins at block 805, where it waits to receive information or another indication. The routine continues to block 810 to determine if a consensus model or other updated information for another decision module has been received, such as from a copy of the routine 800 executing for that other decision module, and if so continues to block 815 to use the received information to update local intermediate shared model information for use with the local decision module on whose behalf the current copy of the routine 800 is executing, as discussed in greater detail with respect to block 830. If it is instead determined in block 810 that the information or request received in block 805 is not information related to one or more other decision modules, or after block 815, the routine continues to block 820 to determine whether to currently perform a synchronization for the current local model of the local decision module by using information about an intermediate shared model of the local decision module that includes information for one or more other decision modules, such as to do such synchronization each time that an update to the local decision module's model is received (e.g., based on operation of the routine 700 for a copy of the CDD Control Action Determination component local to that decision module) in block 805 and/or each time that information to update the local decision module's intermediate shared model is received in block 805 and used in block 815, or instead as explicitly indicated in block 805—if the synchronization is to currently be performed, the routine continues to block 825 and begins to perform blocks 820-880 related to such synchronization activities. Otherwise, the routine continues to block 885 to perform one or more other indicated operations as appropriate, such as to receive requests from the CDD system or other requestor for current information about operation of the routine 800 and/or to provide corresponding information to one or more entities (e.g., to reflect prior requests), etc.
If it is determined in block 820 that synchronization is to be currently performed, such as based on updated model-related information that is received in block 805, the routine continues to block 825 to obtain a current local model for the local decision module to use in the synchronizing, with the model including one or more proposed control actions to perform for a current time period based on a local solution for the local decision module. The routine then continues to block 830 to retrieve information for an intermediate shared model of the local decision module that represents information for one or more other decision modules (e.g., all other decision modules) that are collectively participating in controlling the target system, with that intermediate shared model similarly representing one or more other proposed control actions resulting from local solutions of those one or more other decision modules, optionally after partial or complete synchronization has been performed for those one or more other decision modules between themselves.
The routine then continues to block 835 to attempt to determine a consensus shared model that synchronizes the current model of the local decision module and the intermediate shared model by simultaneously providing solutions to both the local decision module's current model and the intermediate shared model. In some embodiments, the operations of block 835 are performed in a manner similar to that discussed with respect to blocks 710-730 of routine 700 of
After block 835, the routine continues to block 840 to determine whether the operations of block 835 succeeded in an allowed amount of time, such as a fraction or other portion of the current time period for which the synchronization is attempted to be performed, and if so the routine continues to block 845 to update both the local model and the intermediate shared model of the local decision module to reflect the consensus shared model. As earlier noted, if sufficient time is allowed for each decision module to repeatedly determine a consensus shared model with changing intermediate shared models representing one or more other decision modules of a collective group, the decision modules of the collective group may eventually converge on a single converged shared model, although in other embodiments and situations there may not be sufficient time for such convergence to occur, or other issues may prevent such convergence. After block 845, the routine continues to block 850 to optionally notify other decision modules of the consensus shared model determined for the local decision module (and/or of a converged shared model, if the operations of 835 were a last step in creating such a converged shared model), such as if each of the notified decision modules is implementing its own local version of the routine 800 and the provided information will be used as part of an intermediate shared model of those other decision modules that includes information from the current local decision module's newly constructed consensus shared model.
If it is instead determined in block 840 that a synchronization did not occur in the allowed time, the routine continues to perform blocks 860-875 to re-attempt the synchronization with one or more modifications, sometimes repeatedly if sufficient time is available, and in a manner similar to that discussed with respect to blocks 745-780 of routine 700 of
If it is instead determined in block 870 that no further actions are to be performed with respect to relaxation, repair and/or re-training, the routine continues instead to block 880. After blocks 850, 880 or 885, the routine continues to block 895 to determine whether to continue, such as until an explicit indication to terminate or suspend operation of the routine 800 is received, such as to reflect an end to operation of the target system and/or an end to use of the local decision module and/or a collective group of multiple decision modules to control the target system. If it is determined to continue, the routine returns to block 805, and otherwise continues to block 899 and ends.
The routine begins at block 910, where it optionally provides initial state information for the target system to a CDD system for use in an automated control system of the CDD system for the target system, such as in response to a request from the CDD system or its automated control system for the target system, or instead based on configuration specific to the target system (e.g., to be performed upon startup of the target system). After block 910, the routine continues to block 920 to receive one or more inputs from a collective group of one or more decision modules that implement the automated control system for the target system, including one or more modified values for or other manipulations of one or more control elements of a plurality of elements of the target system that are performed by one or more such decision modules of the automated control system. As discussed in greater detail elsewhere, the blocks 920, 930, 940 may be repeatedly performed for each of multiple time periods, which may vary greatly in time depending on the target system (e.g., a microsecond, a millisecond, a hundredth of a second, a tenth of a second, a second, 2 seconds, 5 seconds, 10 seconds, 15 seconds, 30 seconds, a minute, 5 minutes, 10 minutes, 15 minutes, 30 minutes, an hour, etc.).
After block 920, the routine continues to block 930 to perform one or more actions in the target system based on the inputs received, including to optionally produce one or more resulting outputs or other results within the target system based on the manipulations of the control elements. In block 940, the routine then optionally provides information about the outputs or other results within the target system and/or provides other current state information for the target system to the automated control system of the CDD system and/or to particular decision modules of the automated control system. The routine then continues to block 995 to determine whether to continue, such as until an explicit indication to terminate or suspend operation of the target system is received. If it is determined to continue, the routine returns to block 920 to begin a next set of control actions for a next time period, and otherwise continues to block 999 and ends. As discussed in greater detail elsewhere, state information that is provided to a particular decision module may include requests from external systems to the target system, which the automated control system and its decision modules may determine how to respond to in one or more manners.
The following sections describe a variety of specific, non-exclusive embodiments in which some or all of the techniques may be implemented. It will be appreciated that particular details of particular embodiments may not be included in or true for all embodiments, and that the described embodiments may be implemented individually or in combination with any and all other combinations of other embodiments.
The following discusses several non-exclusive example embodiment, in which one or more specified embodiments of the Collaborative Distributed Decision system are each referred to as a Collaborative Distributed Inferencing (CDI) system or a Cooperative Distributed Inferencing Platform (CDIP), in which one or more specified embodiments of the Decision Module Construction component are each referred to as the “Rules Builder” or including or being performed by a “Rule Conversion Engine” (RCE) or a “CDL Compiler” or a “Rule(s) Entry Interface” (REI) or a “Rules and Goals UI”, in which one or more specified embodiments of the Control Action Determination component are each referred to as having “chattering” subcomponents or performing “chattering” functionality or including or being performed by a “Query Response Engine” (QRE) or an “Optimization Element” or via “Hamiltonian-Chattering Control”, in which one or more specified embodiments of the Coordinated Control Management component are each referred to as having or performing “mean field” information or functionality or including or being performed by a “Tellegen” agent or a “Pareto Multi-Criteria Optimization Engine” (PMOE) or a “Pareto element”, in which decision modules are referred to as “agents” or “peer agents” or “agent nodes” or “decision elements”, in which an automated control system may include a “cluster” of agents and in some cases is referred to as a “distributed architecture”, in which a target system is referred to as an “application domain”, in which a decision module's stored information about a target system includes an “Internal Heterogeneous Database” (IHDB) and/or a “Domain Rules Knowledge Base”, in which a decision module's consensus shared model is referred to as an “internal optimum” generated using mean field information, in which changes propagated from one decision module to others is referred to as a “delta”, etc.
CDI is built using a Peer-to-Peer (P2P) based distributed architecture that allows for partitioning the overall optimization problem into smaller sub-tasks or work-loads between peer agents. CDI Peer Agents are equally privileged participants in the application domain. They are configured to form a peer-to-peer network of nodes. This allows each agent in the network to solve the problem independently, using its own internal knowledge base. Each agent also internally engages in Pareto game playing to reach internal optimum before sharing changes with other agents. The agents then communicate the mean field changes with other agents in the network using a gossip protocol to synchronize their internal mean field approximation in an eventually consistent fashion.
When system is initially configured certain agents are tagged as seed-nodes in the network. The seed agent nodes can be started in any order and it is not necessary to have all the seed agent nodes running. When initializing the CDI cluster at least one seed agent node is preferably running, otherwise the other CDI seed nodes may not become initialized and other CDI agent nodes might not join the cluster.
Each agent has a built-in registry of active CDI agent nodes in the cluster. This agent registry is started on all CDI agent nodes and is updated with every change in cluster membership including new agents joining the cluster, agents leaving the cluster, agent timeouts etc. Agents inform each other of active membership through a heartbeat mechanism. The registry is eventually consistent, i.e. changes may not immediately be visible at other nodes, but typically they will be fully replicated to all other nodes after a few seconds. The changed are propagated using the change deltas and are disseminated in a scalable way to other nodes with a gossip protocol.
The CDI agent nodes in the cluster monitor each other by sending heartbeats to detect if a CDI agent node is unreachable from the rest of the CDI cluster. The heartbeat arrival times is interpreted by an implementation of the Phi Accrual Failure Detector (Hayashibara, D{tilde over (e)}fago, Yared, & Katayama, 2004).
The suspicion level of failure is given by a value called phi. The basic idea of the phi failure detector is to express the value of phi on a scale that is dynamically adjusted to reflect current network conditions.
The value of phi is calculated as:
Phi=−log 10(1−F(timeSinceLastHeartbeat))
F is the cumulative distribution function of a normal distribution with mean and standard deviation estimated from historical heartbeat inter-arrival times.
Once a CDI agent node becomes network partitioned it will stop receiving mean field updates from the other agents in the Cluster. This however, should not prevent it from continuing to perform local optimizations based on its internal knowledge base, local mean field and sensor inputs that it will continue to receive.
The Rules Builder contains the following components:
The Master Agent is responsible for interaction with all Chattering components, including the following:
The Rules Entry Interface is responsible for receiving rules in a syntax familiar to a domain expert. The entry interface is a text entry tool where a domain expert would insert the rules, goal and system information (rules script(s)) to provide continuous control suggestions for a given problem. The entered rules script(s) would be composed in the CDI Domain-Specific Language (DSL). The CDI DSL facilitates functional translation of the entered rules script(s) into a problem definition which houses the control definitions (measurable variable with ranges allowed and any associated constraints on the control variable).
For example:
In the entry interface using the CDI DSL one would specify an upper and lower bound using the following syntax first defining a rule, with the parameters and the rule logic that evaluates against the system state.
rule id: “max production”, params: [“production”], {it<=15.0}
rule id: “min production”, params: [“production”], {it>=−50.0}
control var: “production”, min: “min production”, max: “max production”
In the entry interface using the CDI DSL one would specify the dynamics (variables that change with relation to other measurable variables and the definition of this change)
delta var: “inventory”, params: [“production”, “demand”], {p, d−>p−d}
In the entry interface using the CDI DSL one would specify the goal (an objective i.e., to minimize or maximize a relationship between the control and controllable dynamics).
goal objective: “minimize”, params: [“inventory”, “production”], {inventory, production−>((inventory−10)*(inventory−10))+(production*production)}
Finally, the entry interface is also responsible for facilitating a domain expert to provide certain settings that are used by the system as well as providing user workflow steps. The settings provided represent key: value terms used by the system and are available throughout by the Settings Provider encapsulated within the Rules Engine. An domain expert might write initial values of the following form:
settings [initialState: “20”, initialCoState: “0”, terminalCoState: “0”, numChatteringLevels: “9”, horizon: “3”, delta: “0.1”, iterations: “15”]
The CDL Compiler is responsible for the conversion of said rules into evaluatable constraints, system information and an optimization goal. The CDI Compiler translates the entered script(s) into a problem definition. A problem definition is composed of labeled rules. A rule is a tuple comprised of a unique name and a Term. A Term is an evaluatable function where the logic was authored as previously described above, the input to which contains a representation of the system state (StateMap).
The Validator is responsible for the validation of converted constraints with regards to restrictions the optimization problem needs to satisfy as a prerequisite to its solution and/or reaching a solution quality threshold.
The converted constraints defined in the problem definition, along with the settings provider, is validated for controllability, observability, stability and goal completeness.
controllability—this check ensures that every control variable has a defined rule relating it to one or more dynamic state variables. The above example satisfies this check since our single control variable ‘production’ is used in the dynamic definition of ‘inventory’;
observability—checks the statemap against the defined rules in the script(s). An observability check does not impede the solution of a problem, however if failing, represents that our problem may not be well defined;
stability—this check ensures that our system will converge over time on a solution, which can be tested in the testing stage; and
goal completeness—ensures that every control variable appears in the goal.
The conversion of rule scripts into mathematical expressions that can be yielded through an explicit contract to the chattering agent for use in solving the optimization goal, manifests in the compiled artifact that we label the Compiled Rules Engine
The Rules Engine defines and implements several interfaces for acquiring the values of these mathematical expressions, as later described with respect to “chattering” components. The Rules Engine is compiled as an artifact available to the Chattering component by the Compiler and made available for use in continuous processing.
Furthermore, the rules builder is also responsible for facilitating the workflow steps an individual domain expert would need to undertake before deploying such a system. These steps include:
The workflow component allows for training and testing a system. This is integrated into the DSL in the form of a workflow step builder.
For example,
Here a domain expert instructs the default bootstrapper to be used in loading predefined sensor data, train the system on this data, persist the trained model output to the file ‘/tmp/model’, then once trained to begin running the system (as a single agent). The inputs are tested by analyzing the results from the run. The artifacts and model information are persisted to a persistent store. The Steps Processor facilitates the dispatch of interpreted workflow steps to the Remote Control for delegation to the Master Agent of a running system for processing.
With respect to the discussion below,
The real-time problem we would like to solve is really over an infinite time horizon in real-time, but our approach is to consider a window of fixed length, and then apply invariant imbedding as we increase the window length to achieve an optimal relaxed control. The chattering control is applied to the window of fixed length, and results in a relatively easily solved problem. Then the window slides to a point where, perhaps, a new measurement is available, or a new control action is applicable. And the algorithm iterates in this manner.
To develop our chattering control method, we first start with a classical, deterministic control problem of the form,
where x(t)ε, u(t)εU⊂n, is twice continuously differentiable with respect to x and continuous with respect to u, ψ(x(T))):n→ and is continuous and twice continuously differentiable with respect to x. Also, f(x(t), u(t)) is twice continuously differentiable with respect to x and u. The time horizon T is assumed to be finite and known. We also assume initial conditions x(t0) are known.
The objective is to get the behavior at T based on information from the recent past. We develop discrete time windows with dynamics of recent past, update the state with sensory information, and construct an open loop feedback strategy.
We reformulate Problem (1) to a standard form. First we introduce a new variable xn+1(t), with xn+1(t0)=0, and defined by
{dot over (x)}
n+1(t)=(x(t),u(t)). (2)
Note that, for t0≦t≦T,
x
n+1(t)=∫t
Further, convert the terminal term in the criterion by defining a state variable y(t)ε1, with y(t0)=0, and
for t0≦t≦T. Note that y(T)=ψ(x(T)) for any trajectory since
The original control problem (1) is now of the form
For ease of notation, we create an n+2 dimension state vector,
and denote the dynamics in integral form as
z(t)=z(t0)+∫t0tF(z(τ),u(τ))dτ
or, if the dynamics are differentiable, as
Note that the state vector z(t) captures the original dynamics, criterion and terminal cost.
Without loss of generality, we now consider the following optimal control problem
where Q is a row vector of dimension n+2 with Q=[1 01×n 1], so that Qz(T)=xn+1(T)+y(T). We assume z(t0) is known (since x(t0) is assumed known, xn+1(t0)=0, and y(t0)=0).
For the rolling horizon approach, we consider the initial problem on a window [t0,γ], partitioned into N sufficiently small intervals of length Δ. We let Δ be the same for all intervals for ease of notation. Note that t0+NΔ=γ. We get a sequence of windows as the window moves, and the kth window is [t0+kΔ,γ+kΔ]. See
We reformulate the control problem specified in (4) for the kth window, as follows,
We let k=0; 1; . . . , and consider the end of each window as corresponding to real-time.
Our approach is to chatter on the control, in a similar manner as in Kohn et al. (2010). In this paper, we use a probability distribution to derive a chattering control in a probability space, and find an approximation to the relaxed control problem.
The relaxed form of the control problem for the kth window specified in (5) is
where c is the control distribution defined by constructing the control probability distribution α. The resulting α* provides the optimal distribution that solves the problem in (5).
Problem (6) can be viewed as a relaxed optimal control problem with respect to the Young measure.
Note that Δ and γ should be sufficiently small, so that F remains continuous and differentiable in z, and measurable in the control.
The idea underlying the chattering control is to approximate the control trajectory using Lebesgue integration instead of the more traditional Riemann integration. See
The chattering approximation to the relaxed problem (6) for the kth window is
where ci for i=1; . . . ; I is the ith quantization level of u(t) at time t, providing specific control levels for the Lebesgue integration, and/is the number of levels in the interval. For ease of notation, we let the number of levels I be the same over the whole time interval. The sum of αi over i should equal one, for all t, since αi is representing a probability. Also, upper and lower bounds on a; should be satisfied, i.e., 0≦αi≦1 for all i and all t.
Notice that ci(t) has the same dimension as u(t). And the number of levels I should be large enough to cover the range of u(t). For example, if u(t) is in two dimensions, and the number of levels on dimension 1 is three, and the number of levels on dimension 2 is two, then the number of levels in is six.
If we know z(t0+kΔ), we could solve the chattering problem (7) for αi at discrete times t0+kΔ, t0+kΔ+Δ, . . . , γ+kΔ−Δ using an optimization engine, such as FMINCON. This involves evaluating F at all discrete times and a levels, so we only want to solve this chattering problem occasion-ally. Instead of solving it frequently, we develop continualized incremental dynamics and an incremental optimization that has less computation. Then we only solve (7) when we have a large change in values or the accumulated error grows to be too large.
Also, if we know z(t0+kΔ), we can easily solve the one-time period chattering problem for αiz(t0+kΔ). For a single time period, the chattering problem (7) reduces to
Notice that one-time period chattering problem (8) is very easy to solve, since it is a type of relaxed knapsack problem, so the optimal a is determined by rank ordering the coefficients in the objective (since the coefficients in the constraint are all equal to one). Also note that Q only has two non-zero values, so only the first and last elements of F need to be evaluated (at z(t0+kΔ) and all ci).
Hence we know analytically that the optimal ci is given by,
We start by adding an argument to the variables in (7) to indicate they are associated with the kth window problem. For instance, z(t, k) indicates the state at time tin the kth window. We also linearize with respect to F, yielding
z(t,k)=z(t,k−1)+δz(t,k)+O(Δ2) (10)
for t0+kΔ≦t≦γ+(k−1)Δ. We use a continualization approach ?? to yield
where δz(t,k) is the change in z(t, k).
For most of the systems we are considering, the value of the Jacobian matrix,
changes slowly with the state, so we can approximate it by its value at the state at the beginning of the time window z(t0+kΔ,k). Thus, the matrix is only computed at the beginning of the time window. It also could be computed using finite differencing.
With this approximation, the incremental optimization problem with continualized incremental dynamics is given by,
From Pontryagin's minimum principle for the incremental problem (11), the three necessary conditions for optimality are,
with initial condition δz(t0+kΔ)
with terminal condition p(γ+kΔ)=QT. Notice that the p equation is not incremental (p, not δp), but it includes an approximation because the Jacobian matrix is evaluated at the beginning of the window.
for α satisfying Σi=1Iαi(t,k)=1 and 0≦αi(t,k)≦1.
Solving (12) and (13) will allow us to propagate over the length of the window, and then update the Jacobian matrix when the error reaches a threshold value.
The following discusses an example implementation that may be used for such chattering.
The optimization problem we're solving is the following:
The function is the objective function; this comes from adding the original objective function specified in the DSL with penalty terms for the rules.
The function f specifies the dynamics of the system; these are specified in the DSL.
The variable x represents the state of the system at time t; the variable u is the control (to be found) at time t.
Finally, ψ represents the cost at being in the terminal state x(T). This term is typically set to 0, but does not have to be
The rules-builder engine creates code that allows us to compute functions used in this system, specifically
For these algorithms, we introduce two new (scalar) variables
Let z be the vector
Define the function F(x, u, t) as
Also define the matrix Q=[101×n 1].
Observe that all entries of F may be computed at any time based on the functions provided by the rule builder. (Use finite differencing to compute
The notation here is the same as in the paper Parametric
Chattering Control of Dynamic Systems.
Inputs:
Outputs:
Let N=T/Δ be the number of intervals.
Steps:
Chattering—Online Prediction
Inputs:
Outputs:
Steps:
Chattering—Computing optimal values for T and Δ
Inputs
Outputs
Δ, the time step to use
T, the time horizon
Steps
The following discusses further details regarding possible use with such chattering.
In the chattering algorithm, there are two timing parameters, the length of the window T, and the time slice Δ (where NΔ=T). For accuracy purposes, these two parameters should be sufficiently small, but for computational efficiency, these two parameters should be large. Therefore, we want to keep the parameters as large as possible, as long as the error is tolerable.
The incremental state equation (for δz) relies on the Jacobian matrix evaluated at the beginning of the time window. To characterize the error, we compare two linear systems, one that has a constant matrix, denoted A(t0), and the other has a time varying matrix, denoted A(t).
Consider both linear systems:
{dot over (x)}=A(t)x(t) (1)
{dot over (y)}=A(t0)y(t) (2)
with the same initial conditions, x(t0)=y(t0).
The solution to (1) is of the form
x(t)=φ(t,t0)x(t0)
where φ(t, t0) satisfies several properties,
{dot over (φ)}(t,t0)=A(t)φ(t,t0)
φ(t0,t0)=I
φ−1(t,t0)=φ(t0,t).
The solution to (2) is of the form
y(t)=eA(t−t
The error due to approximating A(t) with A(t0) is:
E(t)=φ(t,t0)−eA(t−t
Taking the derivative yields
{dot over (E)}(t)={dot over (q)}(t,t0)−A(t0)eA(t−t
and replacing {dot over (φ)}(t, t0) with A (t)φ(t, t0) yields
{dot over (E)}(t)=A(t)φ(t,t0)−A(t0)eA(t−t
and substituting for φ(t, t0) yields
This provides the error as a function of (A(t)−A(t0)), and if the eigenvalues of A(t) for all t have real values less than zero, the error is linearly proportional to (A(t)−A(t0)).
The procedure to choose T is to ask the customer what size of error is tolerable. The customer may say an error of 20% is tolerable, in which case the window length T can increase until reaching the associated threshold. The measure of the error is related to the difference,
The size of the time slice Δ is related to the magnitude of the largest eigenvalue of
Let |λ|=√{square root over (λreal2+λimage2)} and suppose |λ|i has the largest value. Then
The following discusses further details regarding an example of synchronizing a decision module's model and current information with that of information from one or more other decision modules.
In the multi-agent self-organizing architecture of CDI, all agents synchronize in some way. This is analogous in the worst case to the many-body problem, which Isaac Newton first formulated, and is unsolvable for three or more bodies. However, good approximations for systems of more than two bodies are computationally tractable. The approach in CDI is to solve a series of two-body problems that emulate a mean field aggregation, and update sequentially through a Pareto game.
Consider N agents, and each agent i, i=1, . . . , N, has its own optimization problem with criterion, state and control:
Minu
s.t. {dot over (x)}
i
=f(xi,ui)
The N problem in a single optimization problem is not algorithmically solvable, but it is possible to solve algorithmically a Pareto-optimization problem with two players (the Pareto game), and approximate the solution to the N player problem. The two-agent (agent 1 and agent 2) Pareto-optimization problem is
Minu
subject to
{dot over (x)}
1=ƒ(x1,u1)
{dot over (x)}
2=ƒ(x2,u2)
α1(t)+α2(t)=1
The CDI approach is that each agent i plays a two-agent game with the CDI Mean Field agent composed of the criteria from all other agents except agent i. Instead of solving the two-agent optimization problem directly, we convert the formulation to a Hamiltonian problem (using Pontryagin's minimum principle).
The Hamiltonians are additive for Pareto optimization. Therefore, we can add local Hamiltonians for individual agents to create an aggregate mean field Hamiltonian.
Let Hi be the local Hamiltonian for agent i and let HiMF be the mean field Hamiltonian composed of the Hamiltonians for all other agents, excluding i. That is, the mean field Hamiltonian for agent i is a functional form of the Hamiltonians of the other agents.
Then the two-agent optimization problem is
Minu
subject to the state and costate equations of the combined Hamiltonian, and
α1(t)+α2(t)=1.
The state consists of [xi,xiMF]T, the costate is [pi,piMF]T, and the control is [ui, uiMF]T. The initial conditions for xiMF and piMF come from the previous solution, and ui is the local solution from the previous pass.
The solution to the two-agent Pareto game provides α1(t) and α2(t), and the total Hamiltonian for agent i is updated:
H
i
T=α1Hi+α2HiMF
The modified Hamiltonian for agent i is constructed by projecting the total Hamiltonian into the local state space. The modified mean field Hamiltonian is constructed by projecting the total Hamiltonian into the mean field state space.
Now, the another agent plays the game, solving the two-agent Pareto game, and updating locally, and each agent updates its mean field agent when it is ready to play its game.
The following discusses further details regarding example embodiments.
The Cooperative Distributed Inference (CDI) platform is a unique advanced technology offering to enable near-optimal and near-real-time decision making on vast amount of heterogeneous and distributed information, in complex knowledge-based decision support systems, combining absolute, hard and soft rules to handle various requirements from natural or governing laws, policies, and best practices.
The CDI platform features a Distributed Architecture (DA) for resolving queries by accessing information from both an Internal Heterogeneous Database (IHDB) and external data sources referred to as Sensors. CDI utilizes a network of computing devices as its nodes—called Decision Elements (DE)—that cooperate to resolve queries given to them.
The Decision Elements (DE) in a given DA can work together to reach best outcome for the whole group, i.e., reaching Pareto Efficiency (also referred to as Pareto equilibrium)—a stable state where no change by any individual can be made to make the sum of whole group better.
Each DE can solve the problem independently if provided with complete knowledge and data. DE solves the query with a very unique approach, using Optimal Control Theory, starting with a technique called analytic continuation (transforming query and rules into differential equations whose dependent variables represent internal variables and parameters of the rules), then using its own internal knowledge to solve the query, providing an outcome.
In distributed environments, group of Decision Elements synchronize in an iterative process utilizing updates from other DEs and provide a final result, via a Pareto multi criteria optimization strategy.
The CDI platform needs rules, not necessarily exact criteria, to reach the objective state, producing the near-optimal solution. This is a very attractive feature when exact quantitative criteria cannot be provided in advance due to uncertainty or other reasons.
CDI is perfect for big data analytics, supporting many data types:
CDI can integrate different types of business rules: absolute, hard and soft rules, from natural or government laws, operational or policy requirements, and practice guidelines. Absolute rules and hard rules always take logic value 0 (false) or 1 (true) when instantiated. Soft rules, however, may take any value in the interval [0,1], or more generally more than two values. Absolute rules reflects a should-satisfy situation, such as FDA/USDA requirements; hard rules are operational requirements such as “no serious persistent side effects”, but which may be temporarily relaxed in specific situations; and soft rules can come from guidelines or experiences, such as “better not give drug XYZ to diabetes patients with heart problems”.
CDI platform features a self-learning design. As CDI converts the original query solving into an optimal control problem, it can use feedbacks from the environment (external sensor or internal updates from peer decision elements) to refine its internal model: a Hamilton-Jacobi-Bellman equation will be updated to reflect new information and automatically form soft-rule like constraints internally. The process to update internal mathematical model is similar to reconstructing 3D images from CT or MRI imaging by tomographic reconstruction, but used for dynamic systems.
CDI platform enables functionality to:
CDI stands out in being able to do the following things:
CDI platform works great in areas where there are a lot of heterogeneous data, government compliances and business requirements, such as healthcare and energy.
A Clinical Auto-Coding (C.A.C.) application can be used to detect medical under-coding, over-coding, and miscoding, highlighting potential opportunities where higher billing is justified. It automatically generates clinical codes, including ICD-10 directly from clinical encounter notes such as physician notes, lab results, and discharge records, while supporting workflows accommodating the roles played by administrators, coders and doctors in coding.
CDI powers the following intelligent healthcare services that can be easily integrated:
In healthcare, CDI helps assess and monitor risk of medical fraud, waste and abuse (FWA) by uncovering providers, and to a lesser extent pharmacies, who are suspected of having committed fraud via a variety of schemes. Similar application domains include financial frauds.
By ingesting a wide variety of data that is difficult to link (including live public data), a FWA service analyzes data to find evidence and patterns of fraud, and provides a dashboard application for agents/detectives to prioritize and act on the discovered suspected cases of medical fraud. The service features strict and fuzzy rules-based detection as well as automatic pattern discovery, and runs in real-time and continuous mode to support proactive monitoring and action.
Smart Grid can involve uncertain bi-directional exchange in distributed grids, so intelligent control can be used to provide active synchronization between the network of element controllers and the outside grid management system allows high quality of service to be maintained in a cost-effective manner, hence the dynamics can be learned from sensory observations. CDI enables distributed micro-grid control, supports inductive modeling with “soft” rules that are learned and continuously updated, to optimize the grid.
The DA is a network of interacting components called decision elements (DEs). The DEs collaborate in the resolution of a query posed by one of them. The DA's block diagram is shown in
A decision element is a higher-level functional component solving queries locally. It can have subcomponents such as a programmable search engine, internal heterogeneous database, Inference engine, Inference rule base, API/user interface, and network interface. A decision element is capable of providing a quick and near-optimal solution to a complex query with complete input of data.
IHDB is data preprocessed and stored by a specific decision element (DE).
External Knowledge Base (EKB) refers to data, including rules, as input into specific decision elements, such as patient's body temperature, blood pressure, or instantiated rule to determine if patient's cholesterol level is high. EKB can also contain communicated information from other DEs. Domains for variables include: real, complex, integer, binary numbers and symbolic token on finite domains.
The following components act between users and the data via API and/or GUI.
The minimization function generator converts a query to a minimization function (i.e. analytic continuation). This is useful because the problem is converted from search problem in a large discrete space (like graph search problems, which are usually NP-complete) into an optimization problem in continuous space (polynomial algorithms exist). An analogy is NP-hard integer programming, while continuous linear programming has a very efficient solution.
The Query Response Engine is the core of the whole system responsible solving the query (locally). A mathematical model is constructed based on these equations obtained from previous steps, containing the current state and object state (goal state). The continuous-space optimization automatically handles forward and backward rule chaining by moving along the trajectory toward target state. It also manages uncertainty by keeping a large set of possible states and reducing the solution space only when more information becomes available. Standard optimization techniques (e.g. Newton-Raphson Method) can be employed to solve the problem.
Feedbacks and updates (data from EKB or other DE in the architecture) will be used to refine the mathematical model over time; therefore, the core engine is self-adapting.
The Pareto Multi-Criteria Optimization Engine (PMOE) is the aggregation step where all DE in the network settle to obtain a good stable solution—a state where no improvements can be made to any individual DE without reducing the whole team's performance—a state belongs Pareto Optimal Set in Game Theory. It is like each DE is playing a game and they communicate and interact and work together to make the best outcome for the criteria (query). To efficiently synchronize all decision elements, Mean Field Theory is applied for dimension reduction using knowledge obtained.
The system can take many different data types via ingestion API and has adapters from different public data sources. The supported data types include common ones from XML, CSV, TSV, SQL, Spreadsheet, JSON, and more. OData support is also available. Output types can be API (XML or JSON), as well as exporting to CSV, SQL or directly to services such as SOLR and Cassandra.
CDI can run in the cloud as Software as a Service platform. We can provide whole end-to-end support by setting up the infrastructure in a Virtual Private Cloud or deploy and configure it with the cluster clients provide. The system features SaaS architecture and provides APIs to be used by third parties. For advanced integration requests, Java/Scala and Python libraries are available.
To sum up, CDI platform utilizes many advanced techniques from Mean Field Theory, Lagrangian and Hamiltonian functions, Pareto Optimal Set, Gauge Theory, and so on derived from modern mathematics, quantum physics, optimal control and game theory to achieve high performance. In the detailed computation process, lots of transformation, approximation, optimization, caching and other advanced computing techniques are used to improve accuracy, speed and scalability. Due to this unique approach, CDI is able to solve complex decision making problem in a smoothly, efficient manner and achieve near optimal results.
The Cooperative Distributed Inference (CDI) platform is a unique advanced technology offering to enable near-optimal and near real-time decision making on vast amount of heterogeneous and distributed information, in complex knowledge-based decision support systems, combining absolute, hard and soft rules to handle various requirements from natural or governing laws, policies, and best practices.
Each agent in the Distributed Architecture is a Decision Element that can solve the problem independently, provided with knowledge base and data. In a very unique manner, the agent uses Optimal Control Theory to obtain a near optimal solution, starting with a technique called analytic continuation (transforming query and rules into differential equations whose dependent variables represent internal variables and parameters of the rules), then using its own internal knowledge to solve the problem as an optimization problem in continuous space, to allow for efficient solving.
The outcome will be fed back to the Rules Editor and optimization process (the Chattering algorithm) to enable automatic adjustment of weights of soft rules (constraints) and achieve optimal score of the objective function.
A CDI agent is an independent decision element that can take in sensor data (input from the environment, streaming or in batches), as well as the knowledge-bases (rules composed by domain experts, including absolute, hard and soft rules) to generate a set of partial differential functions (Lagrangian constraints), through continualization. Similarly, the objective is also converted into a minimization function, as part of the Lagrangians which will be solved via the Hamilton-Jacobi-Bellman equation. Each agent will talk to other agents via a “mean field” abstraction layer to greatly reduce the communication and computation overhead, and incorporate additional information to reach the global optimal state (a stable, near optimal set of states across all agents). Finally, the agent exercises control over the system.
Various domain knowledge is captured from experts in the form of Domain Specific Language. Some are constraints; logic forms need be converted to Boolean equations; and variables in soft rules take values [0 . . . 1]. This creates a set of equations to be solved by the optimization algorithm. The optimization process takes data from a time range and finds the best state configuration to reach optimality. It starts with a “learning” process to find a good initial configuration by taking in a short history of data, before processing real-time streams.
Each CDI agent computes a “mean field” view of the system via its neighbors, and responds to queries with the latest updates. The approximate mean field view of a group greatly reduces computational dimensions. The agents synchronize with others and understand the global state via the mean-field approximation. They engage in games to reach Pareto Optimal (also referred to as Pareto equilibrium)—the best output.
An example home solar micro-grid system illustrates one example embodiment of a CDI application or automated control system, which takes the sensor data from the solar panel (in the house), substation, and power network, and decides whether or not to fulfill the utility requests in real time using a set of complex rules.
Further details related to an example CDI system are shown below and included in provisional U.S. Patent Application No. 62/015,018, filed Jun. 20, 2014 and entitled “Methods And Systems For Cooperative Distributed Inferencing,” which is hereby incorporated by reference in its entirety. In addition, further details related to example details of using gauges to perform model error measurements are included in provisional U.S. Patent Application No. 62/182,796, filed Jun. 22, 2015 and entitled “Gauge Systems,” which is also hereby incorporated by reference in its entirety. Furthermore, further details related to examples of using the CDD system in particular manners with particular types of target systems are included in provisional U.S. Patent Application No. 62/182,968, filed Jun. 22, 2015 and entitled “Applications Of Cooperative Distributed Control Of Target Systems,” which is also hereby incorporated by reference in its entirety—the example types of target systems discussed include, for example, a vehicle being controlled, controlling inventory management, controlling a micro-grid electrical generation facility, controlling activities in a day trader financial setting, etc.
k
(o,T)
This document introduces and specifies the architecture for the Cooperative Distributed Inferencing Platform (CDIP). The primary instance of this is the Distributed Architecture (DA) for resolving queries by accessing both an Internal Heterogeneous Database (IHDB) populated by a special class of Horn Clause rules and external data sources referred to as sensors.
The architecture implements a network of active devices at its nodes. These devices are called Decision Elements (DE's). The DE's cooperate in the resolution of a query posed to one or several of them. The DE's in a given DA are referred to as the team.
Every DE in a team is programmed to transform rules in its domain, determined by a posed query, into an ordinary differential equation (ODE), whose dependent variables represent internal variables and parameters. The dependent variables include unknowns of the query posed to the DE. The DE's in the architecture are synchronized via a Pareto multi criteria optimization strategy.
The components of the CDIP include:
Subcomponents are fundamental parts of the architecture that perform particular roles. This section contains descriptions for each of the subcomponents of the architecture. The subcomponents are:
The DA is a platform of interacting components called DE's. The DE's collaborate in the resolution of a query posed by one of them. The DE's implement a distributed, dynamic optimization process, herein referred as the optimization process (OP). OP implements an optimization process that computes an answer to the active queries as a function of data stored in two categories of repositories: IHDB and EKB's. These repositories of the data needed to implement OP given a query.
The EKB's are a collection of public or private repositories of knowledge relevant to the DE posing a query. A DE has a list of external repositories (LER). Each entry in an LER includes 1) a protocol, 2) a heading sub-list, and 3) a translation grammar. Each protocol entry prescribes the access procedure to the corresponding knowledge repository. Each heading sub-list entry contains a summary of the knowledge contents of the corresponding repository. Finally, each translation grammar entry provides a procedure for converting knowledge elements of the corresponding repository in to the rule representation in the IHDB of the DE.
Functional characteristics of this architecture and in particular, the DE's, IHDB, and the sensors are described, including the following concepts:
The Internal Heterogeneous Database (IHDB)
Composition of IHDB as a Set of Knowledge Components
The IHDB encodes knowledge about the implemented application. The IHDB is divided into knowledge components (KC's). Each KC is consulted and updated by a DE in the DA. Any pair of KC's may have an overlapping set of rules by which they operate, but there is no a priori constraint on intersections or inclusion. The collection of KC's constitutes the existing knowledge of the system.
Algorithmic Formulation of a Rule
A KC is a collection of rules, written in a restrictive Horn clause format. The rules are logic entities. When a rule is instantiated, it has a logic value. The logic values a rule can have are taken from the interval [0,1]. The entire system of rules is evaluated using variables and parameters which are collectively referred to as the generalized coordinates of the system and are indexed as follows:
q(t)={q(1)(t), . . . ,q(N)(t)}. (3.2-1)
The time argument t refers to the algorithmic time of the system which means that it has no other meaning than as a continuous index with respect to the evolution of the system. There is therefore no requirement that it correspond to a physical aspect of the system although this may naturally occur. Physical time may be represented specifically by a canonical coordinate of choice q(i)(t). Alternatively, we may refer to the q's without expressly stating the independent time argument and write
q(t)={q(1), . . . ,q(N)}. (3.2-2)
Then we should also note that the time derivatives are referred to notationally as
These coordinates are referred to variously as q depending on the context and the expected arguments of the function to which they are applied. When it is necessary to distinguish between more than one q in equational form we generally write qf where f denotes the reference function or appropriate domain. Typically, we assume without loss of generality the entire set of canonical coordinates q is an argument to any function, term or proposition. In practice, we may further assume it is possible to apply the particular required coordinates as need to mathematical construct in question.
The rules in each knowledge component are of three types: absolute rules, hard rules, and soft rules. Absolute rules and hard rules take logic value 0 (false) or 1 (true) when instantiated. Soft rules take any value in the interval [0,1].
The format of the restrictive Horn Clauses in the IHDB is illustrated in Equation 3.2-2. A Horn Clause is an object composed of two objects a HEAD and a BODY connected by backward Implication () The logic implication transfers the logic value of the BODY to the HEAD. If the rule is an absolute rule or a hard rule, the logic value is 1(if the BODY is logically true) or 0 (if the BODY is logically false). If the rule is a soft rule, the logic value transferred by the body is any number in [0,1].
The HEAD is a data structure composed of two objects: A name, h, and a list of arguments described by the argument vector q=(q(1), . . . , q(n)). The list of arguments includes variables and parameters. The variables take values in the domain of the rule and the parameters are constants passed to the rule and unchanged by the instantiation of the rule. The domain of the rule is a set of values that each of its variables can take. In general, variables can take values over numerical or symbolic domains. As an example, a symbolic domain can be a list of diseases. A numeric domain can be a set of pairs of numbers representing blood pressure.
For the applications of CDI, the domains for variables are: real numbers, complex numbers (floating point and floating point complex numbers), integer numbers, binary numbers and symbolic token on finite domains.
The BODY of a clause is a data structure composed of one or more terms, denoted φi(q). The composition operation is extended- and, denoted by: . The extended- and works as a regular and in absolute rules and hard rules and as a functional product2 on soft rules.
A rule with a head but not a body is called a fact. A fact's truth value is determined on the basis of the instantiation of its variables.
Each term in the body of a rule is an extended disjunction (or denoted by ) of sub-terms. The operator behaves like the standard- or for absolute and hard rules and behaves in a functional form, described later, when connecting sub-terms encoding heads of soft rules.
A sub-term is either the HEAD of a rule, a relation or a truth valuation (TV). When it is a HEAD it may have the same name as the one in the HEAD of the rule but with different arguments. This provides a recursive mechanism for rule evaluation.
When a rule has a sub-term that is the head of another rule it is said that the two rules are chained together by the corresponding sub-term. Note that a rule can be chained to several rules via corresponding sub-terms.
Constraint Domains
Constraint domains augment the BODY clause of Horn clauses to facilitate dynamic programming. Constraints are specified as a relationship between terms. Define the relationship between two terms
φ(q)relσ(q). (3.2-4)
as a member of the following set
relε{=,≠,≦,≧, statistical propagation}. (3.2-5)
A relation can be of two types numeric or symbolic. Numeric relations establish equational forms between two functional forms. (For the initial phase only polynomial and affine linear functional forms will be considered.)
In general, an equational form is a set of one or more relations. For numeric relations, φ(q) rel σ(q), rel ε {=, ≠, ≦, ≧, <, >, statistical propagation}. The table below gives the relations considered and their symbols.
The adopted code forms are the ones used in constraint logic programming.
A symbolic relation can be of two types: inclusion and constraint. Inclusion relations are of the form:
qεSet (3.2-6)
Where x is a variable or a parameter, ε is the inclusion symbol and Set is a set of symbolic forms or a set of numbers or a composite set of the form shown in the table below.
Constraint forms of the symbolic relational type may be one or a set of the forms presented in the table below For numeric relations, φ(q) rel σ(q), relε{=≠, ⊂, ⊃, ⊂, ⊃}.
⊂
⊃
A TV is either a variable or a constant with values in the interval [0,1]. The TV of a Horn Clause that is an absolute rule or a hard rule can only take two values: 1 or 0. The TV when instantiated is 0 or 1. If the TV for an absolute or hard rule is 1, the rule is said to be in inactive state; if the TV is 0, the rule is said to be in active state.
The TV, Ti, of a soft rule satisfies
0≦Ti≦1. (3.2-7)
If Ti above satisfies,
T
i
≧T
threshold (3.2-8)
the soft clause is said to be in inactive state. If
T
i
<T
threshold, (3.2-9)
the soft clause is said to be in active state, where Tthreshold is a constant in [0,1] defined for each soft clause. The default value is 0.5.
This concludes the description of the knowledge representation. The instantiation process of the goal in a DE, as function of its knowledge base, is carried out by the inference engine of the DE. This process is the central component of CDI and will be described later on the document.
The following table summarizes the terminology we have just reviewed.
The following example illustrates a Horn clause:
has fever(name, temperature, white_count, heartrate, blood_pressure)
(temperature >37)
((heartrate ≧70)bp (name, temperature, blood_pressure)
wc(name, white_count)) (3.2-10)
The clause establishes under which conditions the patient of name name, has a fever. The variables in clause are:
name, temperature, white_count, heartrate, blood_pressure.
When instantiated they represent, respectively, the name of the patient, his current body temperature, his white blood cell count, his heart rate range, and his blood pressure.
The clause body includes other clauses: bp (blood pressure) and we (white count).
This completes the specification of the rule-based framework. The next step is to specify a complete process for converting all rules of this form to a set of equations.
Rule Entry Interface (REI)
The Rule Entry Interface provides a mechanism for:
Rule Editor (RE)
The Rule Editor allows users to specify rules associated with the systems to be interrogated.
External Knowledge Base (EKB)
Rule Conversion Engine (RCE)
The rule conversion engine converts rules of the IHDB into equations.
Method for Specification of a Simple Term as an Equation
Consider the term φ(q) with the following truth assignment.
Then we can define the set of arguments which yield positive truth assignment.
{qεφ|φ(q)←T}. (3.6-2)
Define the corresponding equation {hacek over (φ)}(q) of the term φ(q) as
Then extend the range of {hacek over (φ)}(a) to the closed unit interval
{hacek over (φ)}(q)→[0,1]. (3.6-4)
Revisiting the taxonomy of absolute, hard and soft rules, we recognize that hard and soft rules (terms in this example) can take values along the interval
0≦{hacek over (φ)}(q)≦1. (3.6-5)
And for absolute rules we add the constraint {hacek over (φ)}(a)→{0,1}
{hacek over (φ)}(q)(1−{hacek over (φ)}(q))=0. (3.6-6)
Conversion of Fundamental Clauses of Propositional Calculus to Equations
Define the following notation for the propositional calculus.
Theorem 3.6.1.
Given the method for the specification of equations from propositions, we prove the following transformations.
Proof by enumeration for equational representation of conjunction
Define the function {hacek over (r)}(q; φ, σ) which represents the equation corresponding to conjunction (). Verify by enumeration the correspondence of the mathematical equation values corresponding to the mapping T→1 and F→0.
Proof by enumeration for equational representation of disjunction
Define the function {hacek over (r)}(q; φ, σ) which represents the equation corresponding to disjunction (). Verify by enumeration the correspondence of the mathematical equation values corresponding to the mapping T→1 and F→0.
Proof by enumeration for equational representation of negation
Define the function {hacek over (r)}(q; φ, σ) which represents the equation corresponding to negation (). Verify by enumeration the correspondence of the mathematical equation values corresponding to the mapping T→1 and F→0.
Proof by enumeration for equational representation of implication
Define the function {hacek over (r)}(q; φ, σ) which represents the equation corresponding to disjunction (). First note the equivalence of
φ(q)σ(q) and ˜φ(q)σ(q) (3.6-7)
Verify by enumeration the correspondence of the mathematical equation values corresponding to the mapping T→1 and F→0.
Proof for equational representation of tail recursion
Tail recursion is propositionally defined as
φ(q)φ1(q)φ2(q) . . . φk−1(q)φ(q) (3.6-8)
where s represent the current state. To develop an equational representation of the recursive formulation, first define the general function {tilde over (φ)}(n, q) where n represents the nth iteration of the tail recursion ad {tilde over (φ)}(n, q) is the logical consequent. Then rewrite the above formulation using the recursive step.
{tilde over (φ)}1(n,q){tilde over (φ)}2(n,q) . . . {tilde over (φ)}k−1(n,q){tilde over (φ)}(n−1,q){tilde over (φ)}(n,q) (3.6-9)
{tilde over (σ)}(n,q)≈{tilde over (φ)}1(n,q){tilde over (φ)}2(n,q) . . . {tilde over (φ)}k−1(n,q)
{tilde over (r)}(n−1,q)≈{tilde over (σ)}(n,q){tilde over (φ)}(n−1,q) (3.6-10)
Then the tail recursion is rewritable as
{tilde over (σ)}(n,q){tilde over (φ)}(n−1,q){tilde over (φ)}(n,q)
{tilde over (r)}(n−1,q){tilde over (φ)}(n,q). (3.6-11)
According to the equational representation of implication, let
{hacek over (h)}(n−1,q)=1−(n,q)·(n−1,q)+(n,q)·(n−1,q)·(n,q). (3.6-12)
Since by definition {tilde over ({circumflex over (r)})}(n−1, q)=(n, q)·(n−1, q). Then
with boundary condition n=0.
Converting rules based system of inference to the problem of constrained minimization
Consider the following example.
h(q)φ1(q)φ2(q) . . . φm(q) (3.6-14)
To constraints of the form
{hacek over (h)}(q)={hacek over (φ)}1(q)·{hacek over (φ)}2(q)· . . . ·{hacek over (φ)}m(q). (3.6-15)
Decision Element (DE)
A diagram of the Decision Element Architecture is shown in illustration OO.
It is composed six elements:
List of External Repositories (LER)
A DE has a List of External Repositories (LER). Each entry in an LER includes 1) a protocol, 2) a heading sub-list, and 3) a translation grammar. Each protocol entry prescribes the access procedure to the corresponding external knowledge repository. Each heading sub-list entry contains a summary of the knowledge contents of the corresponding repository. Finally, each translation grammar entry provides a procedure for converting knowledge elements of the corresponding repository in to the rule representation in the IHDB of the DE.
Programmable Search Engine
The programmable search engine implements a standard hashing algorithm for detecting active rules as a function of the current instantiation of the variables in a variable buffer (VB) of the IE, and the contents of the active rule buffer (ARB). The VB contains the variables that form part of the query and all additional variables incorporated to this buffer during the inference process (IP). The VB includes all relevant data from the EKB beneficial to perform the query. The IP will be described below. The ARB contains all the currently active rules in the IP.
The search hashing algorithm is characterized by the search rules in the Inference Rule Base.
Internal Heterogeneous Database
The IHDB is the repository of the application clauses associated with the DE. These encode the domain of knowledge characterizing the expertise of the DE. For example in a medical application, a decision element may deal with expertise on heart illnesses, and the corresponding clauses might encode diagnoses and treatments for these diseases.
Inference Ermine
The IE encodes an algorithm, the IP, for assigning values to the variables appearing in the query.
Inference Rule Types
The DE incorporates inference rules (IR) that are a collection of rules for transforming and inferring instantiations of the goal. These rules provide the Inference Engine with directives for processing database rules to give a satisfactory instantiation to a given query or to request additional information so that a satisfactory instantiation can be generated. They are organized according to their functionality as follows. (See Illustration PP)
Equation Rules
These rules include the formal rules for inference. This includes all rules for natural language modeling from first principles.
Optimizer Rules
These rules include rules for finding the interior point in optimization.
Search Rules
These rules include rules for identifying the nature of insufficient potential. The goal is to apply these rules to acquire additional information required to satisfy the optimization goal.
Adaptation Rules
Adaptation rules are used to update the soft rules to relax them further to reduce the complexity and constrains of the optimization problem. The adaptation also serves to update the search rules to improve information acquisition.
Language Statistics and Pattern Rules
These rules embody the machine learning models.
Network Rules
These rules define how information is distributed over the network and what information is available from which resources.
Hybridization Rules
The rules define how other rules may be combined.
User Interface
The UI provides the utilities for entering queries, pragma rules, displaying query answers, status and for general interaction with the IE.
Network Interface
The NI provides a generic mechanism for interacting with other DE's via a procedure termed companionship. The companionship procedure implements the active coupling for the cooperation of the DE's in query resolution. This procedure is not hierarchical and implements a Pareto Agreement set strategy as the mechanism for CDI.
Query Language Interface (QLI)
Information about the QLI is available elsewhere herein.
Process for Determining Active Constraints
The process for determining active constraints is available elsewhere herein.
Minimization Function Generator (MFG) and Determining Active Constraints
The minimization function generator converts a query to a minimization function. Again, we assume without loss of generality the entire set of canonical coordinates q is an argument to any proposition φi. In practice, we may further assume it is possible to apply the particular required coordinates as need to the proposition or function in question. Then let φ(k) be the set of propositions associated with DEk in the context of query Q. These propositions are composed of the proposition associated with the query φQ(q), and other propositions φi(q), comprising the constraints of the system. The proposition φQ(q) associated with a given query Q can be converted to an equation {hacek over (φ)}Q(q). Queries that are satisfiable specify a set.
{q|φQ(q)←T} (3.10-1)
Similarly, a satisfied query represented as an equation is also a set
{q|{hacek over (φ)}Q(q)=1}. (3.10-2)
Relaxing the values that {hacek over (φ)}Q(•) can take to include the unit interval so that soft rules are incorporated yields the following constrained optimization expression. Let J(q)=({hacek over (φ)}Q(q)−1)2. Then specify the optimization
which yields the two logarithmic barrier functions
{hacek over (V)}{hacek over (φ)}i−=−log({hacek over (φ)}i(q)) (3.10-6)
and
{hacek over (V)}{hacek over (φ)}i+=−log({hacek over (φ)}i(q)) (3.10-7)
According to the method of Lagrange multipliers, combine this with the equality constraints to form the static Lagrangian function
the roots of which can be found using a formulation of Newton-Raphson. Since here includes absolute, hard and soft rules we may call it the total static Lagrangian for DEk and refer to it as (T).
Construct Equations of Motion
Information for equations of motion is available elsewhere herein.
Query Response Engine (QRE) which Includes Process for Constructing Differential Equations
Application of Newton-Raphson
Consider a continuous analog of the independent variables of (•)
where each of the v total independent variables of (•) is mapped to its corresponding position in q(t), the column vector that is represented with a lower-case q. To reiterate, the independent variable t refers algorithmic time as opposed to physical time which may also be represented in the system. The corresponding unconstrained optimization goal can be written as
so that ∇L(q)
with positive definite Hessian matrix
Write the recursion for Newton's method
q
(k+i)(t)=q(k)(t)−(∇2(q(k)(t)))−1∇(q(k)(t)). (3.12-5)
This is equivalently rewritten
Via continualization we approximate the derivative
Translation of Inverted Matrix
Consider M, an invertible and positive definite matrix. Then we make the following provable assertions.
Then as t→∞, M(t)→A−1=∇2(q(k)(t))−1. Using (3.12-3) and (3.12-4) approximate {dot over (q)}(t) by rewriting the derivative in the context of M(t). This yields the following two equations.
The approximation proceeds as follows, applying the Magnus expansion to compute the integral:
1. Fix M(0)=∇2(q(0)) and =∇2(q(t)).
2. Use the variation of constants formula to solve
The following is computation flow, flowing down unless otherwise indicated.
Process for Determining Dynamic Lagrangian Via Hemholtz Equations
If the three conditions
with i, j=1, . . . , n hold, then
This is a second order, linear hyperbolic differential equation on the Lagrangian L. It can be solved efficiently by the method of characteristics.
Process for Determining Hessian Rank of Dynamic Lagrangian
Information for determining Hessian rank of dynamic Lagrangian is available elsewhere herein.
Converting the Lagrangian to the Hamiltonian Via the Legendre Transformation.
In our formulation the Lagrangian, Lk(T)(q, {dot over (q)}; ω), may be converted to the Hamiltonian using the Legendre transformation, so that
Pareto Multi-Criteria Optimization Engine (PMOE)
Consider the problem of determining the relaxed Pareto optimal solution to a given system query at a given time step. There are N decision elements, k=1, . . . , N. A given decision element, DEk, has the following associated parameters which are constituent to the ARB:
The ARB has the following components which determine the constraints of DEk:
H
k
(o)(q,{pa}). (3.13-1)
H
k
(A)
=F
k
(A)(H1(T), . . . ,Hk−1(T),Hk+1(T), . . . ,HK(T)) (3.13-4)
System Initialization
Determining the relaxed Pareto optimal point of the system is a process which includes:
System Operation
Illustration SS shows how decision elements interact with the network, receive queries, and return results. In this example, the distributed system effectively implements an abstract classifier that has no real implementation. The DE's receive sensor data from the network which includes new available information which may benefit classification. The user submits a query that is received by a DE which then returns a result.
Gauge Systems in a Hamiltonian Domain
The time integral of the Lagrangian L(q, {dot over (q)}) is the action SL defined as
S
L=∫t
where
The Lagrangian conditions for stationarity are first that
where n=1, . . . , N,
And, secondarily
where
The generalized accelerations {umlaut over (q)}(n) are immediately determined if L{dot over (q)}
det(L{dot over (q)}
for i=1, . . . , N. If for some n, det (L{dot over (q)}
The departing point for the Hamiltonian approach is the definition of conjugate momentum
p
n
=L
{dot over (q)}
(3.14-4)
where n=1, . . . , N. We will see that (3.14-3) is the condition of non-invertibility of
of the velocities of the functions of the coordinates q and momenta p. In other words, in this case, the momenta defined in (3.14-4) are not all independent. Define the relations that follow from (3.14-4) as
φm(q,p) (3.14-5)
where m=1, . . . , M. Write (3.14-4) in vector notation as
p=L
{dot over (q)}(q,{dot over (q)}).
Then compatibility demands
φm(q,L{dot over (q)}(q,{dot over (q)}))=0
is an identity with m=1, . . . , M.
Relations specified in (3.14-5) are called primary constraints. For simplicity let's assume that rank(L{dot over (q)}{dot over (q)}) is constant throughout the phase space, (q, {dot over (q)}), so that (3.14-5) defines a submanifold smoothly embedded in the phase space. This manifold is known as the primary constraint surface. Let
rank(L{dot over (q)}{dot over (q)})=N−M′ (3.14-6)
Then there are M′ independent constraints among (3.14-5) and the primary constraint surface is a phase space submanifold of dimension 2N−M′.
We do not assume that all the constraints are linearly independent so that
M′≦M. (3.14-7)
It follows from (3.14-5) that the inverse transformation from the p's to the q's is multivalued. That is, given q, p that satisfies (3.14-5), the inverse image (q, {dot over (q)}) that satisfies
is not unique, since (3.14-8) defines a map from a 2N-dimensional manifold (q, to the smaller (2N−M′)-dimensional manifold. Thus the inverse image of the points of (3.14-5) form a manifold of dimension M′.
Conditions on the Constraint Function
There exist many equivalent ways to represent a given surface by means of equations of the form of (3.14-5). For example the surface p1=0 can be represented equivalently by p12=0, √{square root over (|p1|)}=0, or redundantly by p1=0 and p12=0. To use the Hamiltonian formalism, it is necessary to impose some restrictions which the regularity conditions for the constraints.
Regularity Conditions
The (2N−M′)-dimensional constraint surface φm(q, p) should be covered of open region: in each region the constraints can be split into independent constraints
{φm′|m′=1, . . . ,M′}.
Their Jacobian matrix
with m′=1, . . . , M′ and n=1, . . . , N, is of rank M′.
The dependent constraints φm, m=M′+1, . . . , M of the other φm′, =0 φm, =0. Alternatively the condition on the Jacobian.
dφ
1
. . .
dφ
M′≠0 (3.14-9)
(local proof). Set φm′, m′=1, . . . , M′ as coordinates (ym′,xα) with ym′=φm′. In these coordinates G(0,x)=0 and
If the sum Σ(λ(n)δq(n)+μnδpn)=0 for arbitrary variations δq(i), δpi tangent to the constraint surface {φm(q, p)=0|m=1, . . . , M}, then
The dimension of {φm} is 2N−M′. Thus the variations at a point (p, q) forms a 2N−M′ dimensional space
By the singularity assumption, there exists exactly M′ solutions to (3.14-14). Clearly, the gradients
are linearly independent. They are the basis for solutions to (3.14-14).
Note that in the presence of redundant constraints, the functions u(m) exist but are not unique.
Canonical Hamiltonian
The Hamiltonian in canonical coordinates is
The rate {dot over (q)} enters through the combination through conjugate momenta defined for each coordinate
p
n(q,{dot over (q)})=L{dot over (q)}
This remarkable property is essential for the Hamiltonian approach. It is verified by evaluating the change δH involved by arbitrary independent variations of position and velocities.
Utilizing (3.14-16) in (3.14-17) yields
The Hamiltonian defined by (3.14-15) is not unique as a function of p, q. This can be inferred from (3.14-18) by noticing that {δpn|n=1, . . . , N} are not all independent. They are restricted to preserve the primary constraints φn≈0 which are identities when the p's are expressed as functions of q's via (3.14-16).
Using the definition of the differential in several variables applied to δH=δH({q(n)}, {pn}), (3.14-18) can be rewritten
From theorem 2 we then conclude for each n that.
So for each n:
Note that if the constraints are independent, the vectors
m=1, . . . , M are also independent because of the regularity conditions (this is proved later). Hence no two sets of {u(m)|m=1, . . . , M} can yield the same velocities via (3.14-21).
Thus, using
we can find u(m)(p, {dot over (q)}). If we define the transformation from (q, {dot over (q)}) to the manifold {φm(q, p)=0|m=1, . . . , M}, from q, {dot over (q)}, u→q, p, u by
q=q,n=1, . . . ,N
p
n
=L
q
(q,{dot over (q)}),n=1, . . . ,N−M′
u
(m)
=u
(m)(q,{dot over (q)}),m=1, . . . ,M′
We see that this transformation is invertible since one has from q, p, u→q, {dot over (q)}, u
Thus invertibility of the Legendre transformation when
det(L{dot over (q)}{dot over (q)})=0
can be regained at the prices of adding extra variables.
Action Principle of the Hamiltonian Form
With (3.14-21) and (3.14-22) we can rewrite (3.14-1) in the equivalent Hamiltonian form
The Hamiltonian Equations (3.14-23) can be derived from the following variational principle:
for arbitrary variations of δq(n), δpn, and δu(m) subject to
δq(t1)=δq(t2)=0
where the u(m) appear now as Lagrange multipliers enforcing the primary constraints
φm(q,p)=0,m=1, . . . ,M.
Let F(p, q) be an arbitrary function of the canonical variables, then
The equation (3.14-25) introduces the new binary operator [•,•] which is the Poisson bracket and has the form
Secondary Constraints
The basic consistency condition is that the primary constraints be preserved in time. So for
F(p,q)=φm(q,p)
we should have that {dot over (φ)}m=0. {φm(q, p)=0}. So this means
This equation can either reduce to a relation independent of the u(m′), or, it may impose a restriction on the u's.
u=−{[φ
m,φm′]}[φm,H](q,p) (3.14-28)
In the case (3.14-27) is independent of the u's (3.14-27) is called a secondary constraint. The fundamental difference of secondary constraints with respect to primary constraints is that primary constraints is that primary constraints are the consequence of the definition (3.14-8) while secondary constraints depend on the dynamics.
If X(q, p)=0 is an external constraint, we most impose a compatibility condition
Next we need to test whether this constraint:
Implies new secondary constraints or whether it only restricts the u's. After the process is finished we are left with a number of secondary constraints which will be denoted by
φk=0,k=M+1, . . . ,M+K
where K is the total number of secondary constraints. In general, it will be useful to denote all the constraints (primary and secondary) in a uniform way as
φj(q,p)=0,j=1, . . . ,M+K=J (3.14-32)
We make the same regularity assumptions on the full set of constraints.
Weak and Strong Equations
Equation (3.14-32) can be written as
φj(•)≈0 (3.14-33)
To emphasize, the quantity φj is numerically restricted to be zero but does not vanish throughout the space. What this is means is that φj has non-zero Poisson brackets with the canonical variables.
Let F, G be functions that coincide on the manifold {φj≈0|j=1, . . . , K} are said the be weakly equal and denoted by F≈G. On the other hand, an equation that holds throughout the entire phase space and not just on the submanifold {φj≈0} is called strong. Hence, by theorem 1
Restrictions on the Lagrange Multipliers
Assume that we have found a complete set of constraints
{φj≈0|j=1, . . . ,J} (3.14-35)
We consider (3.14-36) as a set of non-homogeneous linear equations with M≦J unknowns with coefficients that are functions of the q's and p's.
The general solution of (3.14-36) for each j is of the form
u
(m)
=U
(m)
+V
(m)
,m=1, . . . ,M (3.14-37)
with V(m) the solution of the homogeneous equation
The most general solution of (3.14-38) is a linear combination of linearly independent solutions of Vα(m) where α=1, . . . , A with A≦M. Under the assumption that the matrix
is of constant rank, the number of independent solutions A is the same for all p, q. Thus the general solution to (3.14-36) can be written as
Irreducible and Reducible Cases
If the equations {φj=0|j=1, . . . , J} are not independent, one says that the constraints are reducible. The system is irreducible when the constraints are independent. However the separation of constraints into dependent and independent ones might be difficult to perform. It also may disturb invariance properties under some important symmetry. In some cases it may be impossible to separate irreducible from irreducible contexts. Reducible cases arise for example when the dynamical coordinates include p-form gauge fields.
Any irreducible set of constraints can always be replaced by a reducible set by introducing constraints of the ones already at hand. The formalism should be invariant under such replacements.
Total Hamiltonian
We now discuss details of the dynamic equation (3.14-25)
where from (3.14-40)
This is the result of theorem 3 (see below).
Theorem 3.
and from (3.14-34) in (3.14-45), (3.14-43) follows. By a similar process we show (3.14-44). We now prove the validity of (3.14-41).
Theorem 4.
Let F(q, p) be a regular function, then F(p, q) propagates in time according to the approximate equation (3.14-41).
From (3.14-40) into (3.14-46) we obtain,
Thus from (3.14-43) and (3.14-44) of theorem 3, we get
Now define
So we obtain
First and Second Class Functions
The distinction between primary and secondary constraints is of little importance. We now consider a fundamental classification. It depends on the concept of first class and second class functions.
Definition 1.
A function F(q, p) is said to be first class if its Poisson bracket with every constraint vanishes weakly, [F, φj]≈0, j=1, . . . , J. A function of the canonical variables that is not first class is called second class. Thus F is second class if [F, φk]≠0 for at least one k, k=1, . . . , M.
Theorem 5.
If F and G are first class functions, then their Poisson bracket is also a first class function.
Proof:
By Hypothesis,
Applying the Jacobi identity, we get
We now use theorem 5 to show the following.
Theorem 6.
H′ defined by (3.14-49) and φα defined by (3.14-50) are first class functions.
Proof:
This follows directly from (3.14-36) and (3.14-38).
We learn from theorem 6 that the total Hamiltonian defined by (3.14-51) is the sum of the first class Hamiltonian H′ and the first class primary constraints φα multiplied by arbitrary coefficients.
First Class Constraints as Generators of Gauge Transformations
Gauge transformations are transformations that do not change the physical state.
The presence of arbitrary functions of time v(α), α=1, . . . , A in the total Hamiltonian, HT (see (3.14-51)) imply that not all the q's and p's are observable given a set of q's and p's where the state of the physical system is uniquely determined. However the converse is not true: there is more than one set of values of the canonical variables that defines a state. To illustrate this, we see that if we give an initial set of values of physical state at time t, we expect the equations of motion to fully determine the state at other times. Thus any ambiguity in the value of the canonical variables at t2≠t1 should be irrelevant from the physical point of view.
We propose here an alternate formulation of Dirac's formalism.
Primary Constraints
Recall that the momenta, canonically conjugate to the generalized “coordinates” q(j), j=1, . . . , N is given by
For non-singular systems the equations allows us to express {dot over (q)}(j), j=1, . . . , N in terms of the canonical variables,
{dot over (q)}
(i)
=f
i(q,p),i=1, . . . ,N (E-2)
By performing a Legendre transformation
We obtain the Hamiltonian of the system Hc. And from this function we obtain the standard equations of motion of the system.
For (E-2) to be well-defined we need to have the Hessian W of satisfy
detW≠0 (E-4)
In this case the accelerations {umlaut over (q)}(i) are uniquely determined by the q(j) and {dot over (q)}(i).
When det W≠0, the Hamiltonian equations of motion do not take the standard form, and we speak of a singular Lagrangian. For illustration purposes, consider a Lagrangian of the form
with W a symmetric matrix. From (E-1), the canonical momentum for (E-5) is given by
If W is singular of rank RW, then it possesses N−RW eigenvectors with corresponding zero eigenvalues. Then for eigenvectors vj(α)
So pre-multiplying (E-6) by vj(α) and summing over i we get
Let {pα}, α=1, . . . , N−RW, denote the linearly dependent elements of p. Let {pα}, a=1, . . . , Ra be the momenta satisfying (E-1). Then the constraint equations are of the form
The matrix {Mαβ} is necessarily invertible because otherwise M would possess eigenvectors with zero eigenvalues, implying existence of additional constraints. Note that (E-8) can be written as
p
α
−g
α(q,{pa})=0,α=1, . . . ,N−RW
with
with dim{pa}=RW. So we can define,
φα(q,p)=pα−gα(q,{pα})=0,α=1, . . . ,N−RW (E-11)
In Dirac's terminology, constraints of the form of (E-11) are referred to as primary constraints. Although the derivation above is based on a Lagrangian, quadratic in the velocity terms, it is generally valid for Lagrangians which depend on q and {dot over (q)} but not on higher derivatives.
Note: Primary constraints follow exclusively from the definition of canonical momenta.
The derivation above is valid for general Lagrangians and their Hessian. Let's assume {Wij(q, {dot over (q)})} is the Hessian of a given Lagrangian L. Let {Wab|a, b=1, . . . , RW} be the largest sub-matrix of {Wij} with suitable rearrangement if necessary. We then solve (E-1) for RW velocities {dot over (q)}(a) in terms of {q(i)|i=1, . . . , n}, {pa|a=1, . . . , RW} and {q(α)|α=1, . . . N−RW}. That is
{dot over (q)}
(a)
=f
a(q,{Pb},{{dot over (q)}(β)}) (E-12)
with a, b=1, . . . , RW and β=RW+1, . . . , N.
Inserting these relations into (E-1), we get relations of the form
p
j
=h
j(q,{pa},{{dot over (q)}(α)}) (E-13)
with a, j=1, . . . , RW and α=RW+1, . . . , N. This relation reduces to an identity by construction. The remaining equations are of the form
p
α
=h
α(q,{pα},{{dot over (q)}(β)}) (E-14)
with α=1, . . . , N−RW. However, the right hand side cannot depend on {q(O} since otherwise we could express more velocities in terms of the momenta of the coordinates of the momenta and the remaining velocities.
Hamiltonian Equations of Motion for Constrained Systems
Theorem 3.16.1.
In the space Γp define by Γp={φα(p, q)|α=1, . . . , N−RW} where φα is defined as (E-11). The Hamiltonian is only a function of {q(i)|i=1, . . . , N} and momenta {pa|a=1, . . . , RW} and does not depend on {{dot over (q)}(α)|α=1, . . . , N−RW}
Proof.
On Γp the Hamiltonian is given by
where fa, a=1, . . . , N−RW is given by (E-12) and gα, α=1, . . . , RW is given by (E-10). We want to show that Ho does not depend on {dot over (q)}(β), β=1, . . . , N−RW. We compute
Since by definition
And from (E-11)
and therefore
H
o(q,{pa},{{dot over (q)}(a)})=Ho(q,{pa}).
Theorem 3.16.2.
In the presence of primary constraints (E-11), the Hamilton equations of motion are given by
where {dot over (q)}(β) are a priori underdetermined velocities.
Proof: From (E-15) we obtain and the application of Theorem 3.16.1
with a=1, . . . , n−RW. Further
from (add reference).
we can supplement these equations with
So we can write
For consistency with (E-11) we should write
where {dot over (p)}α is given by the right hand side of (E-22).
Streamlining the Hamiltonian Equation of Motion (EOM)
Definition 3.16-1.
A function f is weakly equal to g denoted by f≈g, if f and g are equal on the subspace defined by the primary constraints,
φβ=0 when f|Γ
and
f(q,p)≈g(q,p)f(q,p)=g(q,p) when {φα(q,p)=0}
Theorem 3.16.3.
Assume f, g are defined over the entire space spanned by {q(i)}, {pi}. Then if
f(q,p)|Γ
for i=1, . . . N.
Proof: Consider the two functions f(q, {pa},{pβ}) and h(q,{pa},{pβ}). Using (E-11) and from the hypothesis of the theorem,
f(q,{pa},{gα})=h(q,{pa},{gα}) (E-28)
Thus is follows
Note since φα(q,p)=pα−gα(q, {pa}), we have
and
∂φα(q,p)=0
for α=1, . . . N−RW. We have
which can be written as
since φβ∂2f/∂pβ2=0 because φβ=0. Similarly,
Corrolary 3.16-1.
for i=1, . . . , N.
Proof.
We consider two Hamiltonians H({q(i)},{pi}) and Ho({q(i)},{pa}). Define H({q(i)},{pi}) as follows
H({q(i)},{pi})≈Ho({q(i)},{pa}).
Then using the result of Theorem 3.16.1, from (E-29) with f=H and h=Ho
So (E-33) becomes
Constrained Hamiltonian Systems
Local symmetries on a Lagrangian based model. Consider
q
(i)
→q
(i)(t)+δq(i)(t)
{dot over (q)}
(i)
→{dot over (q)}
(i)(t)+δ{dot over (q)}(i)(t)
with i=1, . . . , N. The action of the system is given by
S(q,{dot over (q)})=∫L(q,{dot over (q)})dt
where q and {dot over (q)} are n-dimensional column vectors. The action differential
where we define the Euler-Lagrange differential operator
on shell. Expanding Ei(o)
If L is singular, W(N×N) is not invertible so (3.17-1) cannot be solved for {umlaut over (q)}i, i=1, . . . , N. If Rank(W(q, {dot over (q)}))=RW on shell, then there exist N−RW in the theory. There exist N−RW independent left (or right) zero mode eigenvectors wi(o,k). i=1, . . . N−RW such that
depend on q and {dot over (q)} only. The φ(o,k) also vanish on shell:
φ(o,k)(q,{dot over (q)})=0,k=1, . . . N−RW
The set {φ(o,k)|k=1, . . . , N−RW} are the zero generation constraints. It is possible that not all the {φ(o,k)} are linearly independent. So we may find linear combinations of the zero mode eigenvectors)
such that we have
G
(o,n
)
=v
(o,n
)
E
(o)≡0, no, . . . ,No (3.17-3)
These are called gauge identities.
Any variation δqi, i=1, . . . N, of the form
Is action invariant by (3.17-1).
Given this definition of δqi and (3.17-3), we conclude
everywhere. The remaining zero generating modes which we denote by u(o,n
φ(o,n
The algorithm now proceeds as follows. We separate the gauge identities 3.17-3) from the nontrivial constraints (3.17-4) and will list them separately. They will be used for determining local symmetry transformations.
Next we want to search for additional constraints. We do this by searching for further functions of the coordinates and velocities which vanish in the space of physical trajectories. To this effect consider the following N+No vector constructed from E(o) and the time derivative of the constraints (3.17-4)
by construction. The constraint φ(o) is valid for all time and therefore
on shell, but
where i1=1, . . . , N+No, and
We next look for the zero modes of W(1). By construction, these zero modes include the o modes of the previous level. The gauge identities at level 1 are.
where n1=1, . . . , N1 and the genuine constraints are of the form
φ(1,n
with n1=1, . . . , N1 on shell.
We next adjoin the new identities (3.17-8) to the ones determined earlier 3.17-3) with the remaining constraints (3.17-9) we proceed as before, adjoining their time derivatives to (3.17-5) and construct Wi
The iterative process will terminate at some level M if either i) there is not further zero modes, or ii) the new constraints can be expressed as linear combinations of previous constraints.
The Maximal Set of Linearly Independent Gauge Identities Generated by the Algorithm
Note that the algorithm steps are of the form)
G
(o,n
)
=u
(o,n
)
E
(o)≡0 (3.17-10)
with L=1, . . . , N1. The Mn
φ(l,n
where φ(l) is a column vector with Nl components φ(l,n
where çmi(l,m
This identity can also be written as
and F is a complicated function of q and {dot over (q)}. By collecting indices l, nl together
Example of Constrained Hamiltonian System in Lagrangian Form
Let
L(q,{dot over (q)})=½{dot over (q)}2(1)+{dot over (q)}(1)q(2)+½(q(1)−q(2))2 (3.17-17)
The only o mode is
u
(o)=[0,1]
on shell. Then there are no gauge identities for E(o). Now construct E(1).
which can be written
There zero modes of W(1) are
The first zero mode is the previous one augmented by one dimension and reproduces the previous constraint. The second mode reproduces the negative of the constraint (3.17-21). That is,
v
(1)
E
(1)
=−u
(o)
E
(o)
with v(1)=[1 0 1]. This leads to the gauge identity
G
(1)
=v
(1)
E
(1)
+u
(o)
E
(0)≡0
The outline of the companionship process is as follows for a system of N agents.
It will also be appreciated that in some embodiments the functionality provided by the routines discussed above may be provided in alternative ways, such as being split among more routines or consolidated into fewer routines. Similarly, in some embodiments illustrated routines may provide more or less functionality than is described, such as when other illustrated routines instead lack or include such functionality respectively, or when the amount of functionality that is provided is altered. In addition, while various operations may be illustrated as being performed in a particular manner (e.g., in serial or in parallel, synchronously or asynchronously, etc.) and/or in a particular order, those skilled in the art will appreciate that in other embodiments the operations may be performed in other orders and in other manners. Those skilled in the art will also appreciate that the data structures discussed above may be structured in different manners, such as by having a single data structure split into multiple data structures or by having multiple data structures consolidated into a single data structure. Similarly, in some embodiments illustrated data structures may store more or less information than is described, such as when other illustrated data structures instead lack or include such information respectively, or when the amount or types of information that is stored is altered.
From the foregoing it will be appreciated that, although specific embodiments have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the invention. Accordingly, the invention is not limited except as by the appended claims and the elements recited therein. In addition, while certain aspects of the invention are presented below in certain claim forms, the inventors contemplate the various aspects of the invention in any available claim form. For example, while only some aspects of the invention may currently be recited as being embodied in a computer-readable medium, other aspects may likewise be so embodied.
This application claims the benefit of U.S. Provisional Patent Application No. 62/304,034, filed Mar. 4, 2016 and entitled “Using Battery DC Characteristics To Control Power Quality,” which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62304034 | Mar 2016 | US |