The present disclosure relates generally to extremum-seeking control strategies. The present disclosure relates more particularly to regulating, via extremum-seeking control, a variable of interest (e.g., power production, power consumption, rate of refrigerant flow, etc.) in an energy system.
Extremum-seeking control (ESC) is a class of self-optimizing control strategies that can dynamically search for the unknown and/or time-varying inputs of a system for optimizing a certain performance index. It can be considered a dynamic realization of gradient searching through the use of dither signals. The gradient of the system output with respect to the system input is typically obtained by slightly perturbing the system operation and applying a demodulation measure. Optimization of system performance can be obtained by driving the gradient towards zero by using an integrator in the closed-loop system. ESC is a non-model based control strategy, meaning that a model for the controlled system is not necessary for ESC to optimize the system. ESC has been used in many different engineering applications (e.g., combustion, circuitry, mining, aerospace and land-based vehicles, building HVAC, wind and solar energy, etc.) and has been shown to be able to improve the operational efficiency and performance for these engineering applications.
Although ESC does not require a model of the system to optimize the system output, properly configuring an ESC system may require knowledge of the system bandwidth (e.g., the natural frequency ωn of the plant) to select the frequency ωd of the dither signal. For example, it may be desirable to select a dither signal frequency ωd that is the same or similar to the natural frequency ωn of the plant to enhance the effect of the dither signal d on the performance variable y (e.g., by increasing the resonance between the dither signal d and the plant). Additionally, it may be desirable to know the system gain Ks in order to properly set the rate of gradient descent.
Traditional ESC systems require manual configuration and testing to determine suitable values for system parameters such as the system bandwidth and system gain. For example, a manual step test system identification procedure can be performed to estimate the system bandwidth. However, such testing requires disturbing the system (causing operation disruption) and assumes that the bandwidth does not change after testing. It would be desirable to provide an automatic configuration procedure that is non-disruptive and can automatically determine system parameters without requiring manual testing and configuration.
One implementation of the present disclosure is a self-configuring extremum-seeking controller. The controller includes a dither signal generator, a communications interface, a phase delay estimator, and a bandwidth estimator. The dither signal generator identifies a stored dither frequency, generates a dither signal having the stored dither frequency, and uses the dither signal to perturb a control input for a plant. The communications interface provides the perturbed control input to the plant and receives an output signal from the plant resulting from the perturbed control input. The phase delay estimator estimates a phase delay between the output signal and the dither signal. The bandwidth estimator estimates a bandwidth of the plant based on the estimated phase delay. The dither signal generator updates the stored dither frequency based on the estimated bandwidth.
In some embodiments, the dither signal generator generates a new dither signal having the updated dither frequency and uses the new dither signal to perturb the control input for the plant.
In some embodiments, the bandwidth estimator estimates a natural frequency of the plant based on the estimated phase delay and uses the estimated natural frequency of the plant as the estimated bandwidth. In some embodiments, the bandwidth estimator estimates the bandwidth of the plant as a function of the estimated phase delay and the stored dither frequency.
In some embodiments, the phase delay estimator calculates a dot product of the dither signal and the output signal, calculates 2-norms of the dither signal and the output signal, and estimates the phase delay as a function of the dot product and the 2-norms.
In some embodiments, the controller includes an exponentially-weighted moving average (EWMA) calculator that calculates a first EWMA of the dither signal and a second EWMA of the output signal from the plant. In some embodiments, the phase delay estimator estimates the phase delay as a function of the first and second EWMAs. In some embodiments, the gain estimator estimates the system gain as a function of the first and second EWMAs.
In some embodiments, the controller includes a gain estimator that estimates a system gain based on the estimated bandwidth and the stored dither frequency. The controller may include an integrator that uses the estimated system gain to scale a step size of a gradient descent procedure performed by the controller.
Another implementation of the present disclosure is a method for self-configuring one or more extremum-seeking control parameters used by an extremum-seeking controller to modulate a control input for a plant. The method includes receiving a stored dither frequency at the extremum-seeking controller, generating a dither signal having the stored dither frequency, and using the dither signal to perturb the control input for the plant. The method includes providing the perturbed control input from the controller to the plant and receiving an output signal from the plant resulting from the perturbed control input. The method includes estimating a phase delay between the output signal and the dither signal and estimating a bandwidth of the plant based on the estimated phase delay. The method includes updating the stored dither frequency based on the estimated bandwidth. The generating, providing, estimating, and updating steps may be performed automatically by the controller.
In some embodiments, the method includes generating a new dither signal having the updated dither frequency and using the new dither signal to perturb the control input for the plant.
In some embodiments, estimating the bandwidth of the plant includes estimating a natural frequency of the plant based on the estimated phase delay and using the estimated natural frequency of the plant as the estimated bandwidth. In some embodiments, the bandwidth of the plant is estimated as a function of the estimated phase delay and the stored dither frequency.
In some embodiments, estimating the phase delay between the output signal and the dither signal includes calculating a dot product of the dither signal and the output signal, calculating 2-norms of the dither signal and the output signal, and estimating the phase delay as a function of the dot product and the 2-norms.
In some embodiments, the method includes calculating a first exponentially-weighted moving average (EWMA) of the dither signal and a second EWMA of the output signal from the plant. In some embodiments, the phase delay is estimated as a function of the first and second EWMAs. In some embodiments, the system gain is estimated as a function of the first and second EWMAs.
In some embodiments, the method includes estimating a system gain based on the estimated bandwidth and the stored dither frequency and using the estimated system gain to scale a step size of a gradient descent procedure performed by the controller.
Another implementation of the present disclosure is a self-configuring extremum-seeking controller. The controller includes a dither signal generator, a communications interface, and a parameter estimator. The dither signal generator generates a dither signal and uses the dither signal to perturb a control input for a plant. The communications interface provides the perturbed control input to the plant and receives an output signal from the plant resulting from the perturbed control input. The parameter estimator uses the output signal from the plant in conjunction with the dither signal to generate values for one or more extremum-seeking control parameters. The dither signal generator uses the generated values for the extremum-seeking control parameters to generate the dither signal.
In some embodiments, the parameter estimator includes a phase delay estimator that estimates a phase delay between the output signal and the dither signal and a bandwidth estimator that estimates a bandwidth of the plant based on the estimated phase delay. The dither signal generator may use the estimated bandwidth to update a stored dither frequency used to generate the dither signal.
In some embodiments, the parameter estimator includes a gain estimator that estimates a system gain based on the estimated bandwidth and the stored dither frequency. The controller may include an integrator that uses the estimated system gain to scale a step size of a gradient descent procedure performed by the controller.
In some embodiments, the controller includes an exponentially-weighted moving average (EWMA) calculator that calculates a first EWMA of the dither signal and a second EWMA of the output signal from the plant. At least one of the phase delay and the system gain may be estimated as a function of the first and second EWMAs.
Those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the devices and/or processes described herein, as defined solely by the claims, will become apparent in the detailed description set forth herein and taken in conjunction with the accompanying drawings.
Referring generally to the FIGURES, a self-configuring extremum-seeking control (SCESC) system and components thereof are shown according to various exemplary embodiments. In general, extremum-seeking control (ESC) is a class of self-optimizing control strategies that can dynamically search for the unknown and/or time-varying inputs of a system for optimizing a certain performance index. It can be considered a dynamic realization of gradient searching through the use of dither signals. The gradient of the system output with respect to the system input is typically obtained by slightly perturbing the system operation and applying a demodulation measure. Optimization of system performance can be obtained by driving the gradient towards zero by using an integrator in the closed-loop system. ESC is a non-model based control strategy, meaning that a model for the controlled system is not necessary for ESC to optimize the system. Various implementations of ESC are described in detail in U.S. Pat. No. 8,473,080, U.S. Pat. No. 7,827,813, U.S. Pat. No. 8,027,742, U.S. Pat. No. 8,200,345, U.S. Pat. No. 8,200,344, U.S. patent application Ser. No. 14/495,773, and U.S. patent application Ser. No. 14/538,700. The entire disclosure of each of these patents and patent applications is incorporated by reference herein.
The SCESC system described herein includes a self-configuring extremum-seeking controller (SCESC) and a plant. The controller receives feedback from the plant and provides a control input to the plant. The controller perturbs the control input u to the plant with a dither signal d and analyzes the effect of such perturbation on an observed performance variable y. The controller adjusts the control input u to drive the gradient of performance variable y to zero. In this way, the controller identifies values for control input u that achieve an optimal value (e.g., a maximum or a minimum) for performance variable y.
Although ESC does not require a model of the system to optimize performance variable y, properly configuring an ESC system may require knowledge of the system bandwidth (e.g., the natural frequency ωn of the plant) to select the frequency ωd of the dither signal d. For example, it may be desirable to select a dither signal frequency ωd that is the same or similar to the natural frequency ωn of the plant to enhance the effect of the dither signal d on the performance variable y (e.g., by increasing the resonance between the dither signal d and the plant). Additionally, it may be desirable to know the system gain Ks in order to properly set the rate of gradient descent. Advantageously, the SCESC controller described herein may be configured to automatically determine both the system bandwidth and the system gain using the dither signal d to perform system identification.
In some embodiments, the SCESC controller determines the natural frequency ωn of the plant and uses the natural frequency ωn as the system bandwidth. The SCESC controller may determine the natural frequency ωn based on the phase delay φ between the dither signal d and the performance variable y. For example, the SCESC controller may excite the plant with a dither signal d having a known dither frequency ωd and may measure the resultant phase delay φ of the performance variable y relative to the dither signal d. The SCESC controller may use the phase delay φ in conjunction with the dither signal frequency ωd to estimate the natural frequency ωn, as shown in the following equation:
The SCESC controller may use the natural frequency ωn to set or update the dither signal frequency ωd (e.g., by setting the dither signal frequency ωd equal to the natural frequency ωn).
In some embodiments, the SCESC controller uses a history of values for the dither signal d to calculate an exponentially-weighted moving average (EWMA) sd,k of the dither signal d at time k. Similarly, the SCESC controller may use a history of values for the performance variable y to calculate an EWMA sy,k of the performance variable y at time k. The SCESC controller may use the EWMAs sd,k and sy,k in conjunction with the natural frequency ωn and the known dither signal frequency ωd to estimate the system gain Ks, as shown in the following equation:
The SCESC controller may use the system gain Ks to set or update the rate of gradient descent.
Advantageously, automatically determining the system bandwidth and the system gain enables the SCESC system to be configured automatically (e.g., without manual testing and configuration) and updated periodically as the ESC parameters and/or system conditions change. Additional features and advantages of the present invention are described in greater detail below.
Referring now to
In various implementations, ESC may be used in any type of controller that functions to achieve a setpoint for a variable of interest (e.g., by minimizing a difference between a measured or calculated input and a setpoint) and/or optimize a variable of interest (e.g., maximize or minimize an output variable). It is contemplated that ESC can be readily implemented in various types of controllers (e.g., motor controllers, power controllers, fluid controllers, HVAC controllers, lighting controllers, chemical controllers, process controllers, etc.) and various types of control systems (e.g., closed-loop control systems, open-loop control systems, feedback control systems, feed-forward control systems, etc.) as may be suitable for various applications. All such implementations should be considered within the scope of the present disclosure.
Referring particularly to
The circulated fluid from chiller 22 or boiler 24 may be transported to AHUs 36 via piping 32. AHUs 36 may place the circulated fluid in a heat exchange relationship with an airflow passing through AHUs 36. For example, the airflow may be passed over piping in fan coil units or other air conditioning terminal units through which the circulated fluid flows. AHUs 36 may transfer heat between the airflow and the circulated fluid to provide heating or cooling for the airflow. The heated or cooled air may be delivered to building 10 via an air distribution system including air supply ducts 38 and may return to AHUs 36 via air return ducts 40. In
In some embodiments, the refrigerant in chiller 22 is vaporized upon absorbing heat from the circulated fluid. The vapor refrigerant may be provided to a compressor within chiller 22 where the temperature and pressure of the refrigerant are increased (e.g., using a rotating impeller, a screw compressor, a scroll compressor, a reciprocating compressor, a centrifugal compressor, etc.). The compressed refrigerant may be discharged into a condenser within chiller 22. In some embodiments, water (or another chilled fluid) flows through tubes in the condenser of chiller 22 to absorb heat from the refrigerant vapor, thereby causing the refrigerant to condense. The water flowing through tubes in the condenser may be pumped from chiller 22 to a rooftop cooling unit 26 via piping 28. Cooling unit 26 may use fan driven cooling or fan driven evaporation to remove heat from the water. The cooled water in rooftop unit 26 may be delivered back to chiller 22 via piping 30 and the cycle repeats.
Referring now to
Each of dampers 60-64 may be operated by an actuator. As shown in
Actuators 54-58 may receive control signals from AHU controller 44 and may provide feedback signals to AHU controller 44. Feedback signals may include, for example, an indication of a current actuator or damper position, an amount of torque or force exerted by the actuator, diagnostic information (e.g., results of diagnostic tests performed by actuators 54-58), status information, commissioning information, configuration settings, calibration data, and/or other types of information or data that may be collected, stored, or used by actuators 54-58.
Still referring to
Each of valves 92-94 may be controlled by an actuator. As shown in
AHU controller 44 may operate valves 92-94 via actuators 88-90 to modulate an amount of heating or cooling provided to supply air 86 (e.g., to achieve a setpoint temperature for supply air 86 or to maintain the temperature of supply air 86 within a setpoint temperature range). The positions of valves 92-94 affect the amount of cooling or heating provided to supply air 86 by cooling coil 68 or heating coil 70 and may correlate with the amount of energy consumed to achieve a desired supply air temperature. In various embodiments, valves 92-94 may be operated by AHU controller 44 or a separate controller for HVAC system 20.
AHU controller 44 may monitor the positions of valves 92-94 via communications links 96-98. AHU controller 44 may use the positions of valves 92-94 as the variable to be optimized using an ESC control technique. AHU controller 44 may determine and/or set the positions of dampers 60-64 to achieve an optimal or target position for valves 92-94. The optimal or target position for valves 92-94 may be the position that corresponds to the minimum amount of mechanical heating or cooling used by HVAC system 20 to achieve a setpoint supply air temperature (e.g., minimum fluid flow through valves 92-94).
Still referring to
In some embodiments, AHU controller 44 receives information (e.g., commands, setpoints, operating boundaries, etc.) from supervisory controller 42. For example, supervisory controller 42 may provide AHU controller 44 with a high fan speed limit and a low fan speed limit. A low limit may avoid frequent component and power taxing fan start-ups while a high limit may avoid operation near the mechanical or thermal limits of the fan system. In various embodiments, AHU controller 44 and supervisory controller 42 may be separate (as shown in
Client device 46 may include one or more human-machine interfaces or client interfaces (e.g., graphical user interfaces, reporting interfaces, text-based computer interfaces, client-facing web services, web servers that provide pages to web clients, etc.) for controlling, viewing, or otherwise interacting with HVAC system 20, its subsystems, and/or devices. Client device 46 may be a computer workstation, a client terminal, a remote or local interface, or any other type of user interface device. Client device 46 may be a stationary terminal or a mobile device. For example, client device 46 may be a desktop computer, a computer server with a user interface, a laptop computer, a tablet, a smartphone, a PDA, or any other type of mobile or non-mobile device.
Referring now to
Extremum-seeking controller 302 uses extremum-seeking control logic to modulate its output in response to a changing measurement 306 received from plant 304 via input interface 310. Measurements from plant 304 may include, but are not limited to, information received from sensors about the state of plant 304 or control signals sent to other devices in the system. In some embodiments, measurement 306 is a measured or observed position of one of valves 92-94. In other embodiments, measurement 306 is a measured or calculated amount of power consumption, a fan speed, a damper position, a temperature, or any other variable that can be measured or calculated by plant 304. Measurement 306 may be the variable that extremum-seeking controller 302 seeks to optimize (i.e., the performance variable) via an extremum-seeking control process. Measurement 306 may be output by plant 304 or observed at plant 304 (e.g., via a sensor) and provided to extremum-seeking controller at input interface 310.
Input interface 310 provides measurement 306 to performance gradient probe 312 to detect the performance gradient. The performance gradient may indicate a slope of the function y=ƒ(x), where y represents measurement 306 and x represents manipulated variable 308. When the performance gradient is zero, measurement 306 has an extremum value (e.g., a maximum or minimum). Therefore, extremum-seeking controller 302 can optimize the value of measurement 306 by driving the performance gradient to zero. Manipulated variable updater 316 produces an updated manipulated variable 308 based upon the performance gradient. In an exemplary embodiment, manipulated variable updater 316 includes an integrator to drive the performance gradient to zero. Manipulated variable updater 316 then provides an updated manipulated variable 308 to plant 304 via output interface 318. In some embodiments, manipulated variable 308 is provided to one of dampers 60-64 (
Referring now to
Controller 352 may be configured to perform a dither-demodulation process to determine the effect of manipulated variables 358 on measurement 306. For example, manipulated variable updater 316 may add dither signals to each of manipulated variables 358. In some embodiments, each of manipulated variables 358 is modified by a different dither signal having a different dither frequency. Performance gradient probe 312 may pass measurement 306 through multiple parallel high-pass filters (e.g., one for each dither signal) and apply a demodulation signal to the output of each high-pass filter. The frequency and phase of each demodulation signal may be selected to maximize the cross-correlation between the demodulation signal and the output of the corresponding high-pass filter. Performance gradient probe 312 may multiply the output of each high-pass filter by a different demodulation signal and provide each product to a low-pass filter. The cutoff frequencies of the high-pass and low-pass filters may be selected to extract gradient information from measurement 306. An exemplary dither-demodulation process which may be performed by controller 352 is described in greater detail with reference to
In DSESC system 350, the outputs from performance gradient probe 312 are provided to a performance gradient stabilizer 314. Performance gradient stabilizer 314 may include, for example, hysteresis devices and/or flip/flop devices configured to stabilize the performance gradients while rejecting the negative impact of measurement noise. Performance gradient stabilizer 314 provides the stabilized performance gradients to manipulated variable updater 316, which uses integrators to drive the performance gradients to zero. In some embodiments, DSESC system 350 is the same or similar to the DSESC system described in U.S. patent application Ser. No. 14/538,700, filed Nov. 11, 2014, the entire disclosure of which is incorporated by reference herein.
Referring now to
Plant 404 may be the same or similar to plant 304, as described with reference to
Plant 404 may be represented mathematically as a combination of input dynamics 406, a performance map 408, output dynamics 410, and noise n. In some embodiments, input dynamics 406 are linear time-invariant (LTI) input dynamics and output dynamics 410 are LTI output dynamics. Performance map 408 may be a static nonlinear performance map. Noise n may be process noise, measurement noise, or a combination of both. The actual mathematical model for plant 404 does not need to be known in order to apply ESC and is illustrative only.
Plant 404 receives a control input u (e.g., a control signal, a manipulated variable, etc.) from output interface 416 of extremum-seeking controller 402. Input dynamics 406 may use the control input u to generate a function signal x based on the control input (e.g., x=ƒ(u)). Function signal x may be passed to performance map 408 which generates an output signal z as a function of the function signal (i.e., z=ƒ(x)). Extremum-seeking controller 402 may seek to find values for x and/or u that optimize the output z of performance map 408. The output signal z may be passed through output dynamics 410 to produce signal z′, which is modified by noise n to produce performance variable y (e.g., y=z′+n). Performance variable y is provided as an output from plant 404 and received at input interface 414 of extremum-seeking controller 402.
Still referring to
The first step of the dither-demodulation process is performed by dither signal generator 426 and dither signal element 430. Dither signal element 430 receives a dither signal d from dither signal generator 426 and the signal v from integrator 422. Dither signal element 430 combines dither signal d with the signal v from integrator 422 to perturb the control input u provided to plant 404 (e.g., u=v+d). The perturbed control input u is provided to plant 404 via output interface 416 and used by plant 404 to generate performance variable y as previously described.
The second step of the dither-demodulation process is performed by high-pass filter 418, demodulation element 428, and low-pass filter 420. High-pass filter 418 filters the performance variable y and provides the filtered output to demodulation element 428. Demodulation element 428 demodulates the output of high-pass filter 418 by multiplying the filtered output by a demodulation signal m generated by a demodulation signal generator 424. Demodulation element 428 provides the demodulated output to low-pass filter 420, which extracts a performance gradient p from the demodulated output. The cutoff frequencies of high-pass filter 418 and low-pass filter 420 may be selected to extract gradient information from performance variable y at a particular dither frequency. In some embodiments, the demodulation signal m has the same frequency as the dither signal d to enhance the extraction of performance gradient p with respect to dither signal d.
Referring now to
In some embodiments, the ESC logic implemented by controller 501 generates values for control input u based on a received control signal (e.g., a setpoint, an operating mode signal, etc.). The control signal may be received from a user control (e.g., a thermostat, a local user interface, etc.), client devices 514 (e.g., computer terminals, mobile user devices, cellular phones, laptops, tablets, desktop computers, etc.), a supervisory controller 512, or any other external system or device. In various embodiments, controller 501 may communicate with external systems and devices directly (e.g., using NFC, Bluetooth, WiFi direct, cables, etc.) or via a communications network 510 (e.g., a BACnet network, a LonWorks network, a LAN, a WAN, the Internet, a cellular network, etc.) using wired or wireless electronic data communications.
Although ESC does not require a model of the system to optimize performance variable y, properly configuring an ESC system may require knowledge of the system bandwidth (e.g., the natural frequency ωn of plant 503) to select the frequency ωd of the dither signal d. For example, it may be desirable to select a dither signal frequency ωd that is the same or similar to the natural frequency ωn of plant 503 to enhance the effect of dither signal d on the performance variable y (e.g., by increasing the resonance between dither signal d and plant 503). Additionally, it may be desirable to know the system gain Ks in order to properly set the rate of gradient descent. Advantageously, SCESC controller 501 may be configured to automatically determine both the system bandwidth and the system gain using the dither signal d to perform system identification.
In some embodiments, SCESC controller 501 determines the natural frequency ωn of plant 503 and uses the natural frequency ωn as the system bandwidth. SCESC controller 501 may determine the natural frequency ωn based on the phase delay φ between the dither signal d and the performance variable y. For example, SCESC controller 501 may excite plant 503 with a dither signal d having a known dither frequency ωd and may measure the resultant phase delay φ of the performance variable y relative to the dither signal d. SCESC controller 501 may use the phase delay φ in conjunction with the dither signal frequency ωd to estimate the natural frequency ωn, as shown in the following equation:
SCESC controller 501 may use the natural frequency ωn to set or update the dither signal frequency ωd (e.g., by setting the dither signal frequency ωd equal to the natural frequency ωn).
In some embodiments, SCESC controller 501 uses a history of values for the dither signal d to calculate an exponentially-weighted moving average (EWMA) sd,k of the dither signal d at time k. Similarly, SCESC controller 501 may use a history of values for the performance variable y to calculate an EWMA sy,k of the performance variable y at time k. SCESC controller 501 may use the EWMAs sd,k and sy,k in conjunction with the natural frequency ωn and the known dither signal frequency ωd to estimate the system gain Ks, as shown in the following equation:
SCESC controller 501 may use the system gain Ks to set or update the rate of gradient descent. Advantageously, automatically determining the system bandwidth and the system gain enables SCESC system 500 to be configured automatically (e.g., without manual testing and configuration) and updated periodically as the ESC parameters and/or system conditions change.
Still referring to
In some embodiments interfaces 502 and 534-536 can be joined as one or two interfaces rather than three separate interfaces. For example, communications interface 502 and input interface 534 may be combined as one Ethernet interface configured to receive network communications from supervisory controller 512. In some embodiments, supervisory controller 512 provides both a setpoint and process feedback via an Ethernet network (e.g., network 510). In such an embodiment, output interface 536 may be specialized for a controlled process component of plant 503. In other embodiments, output interface 536 can be another standardized communications interface for communicating data or control signals. Interfaces 502 and 534-536 can include communications electronics (e.g., receivers, transmitters, transceivers, modulators, demodulators, filters, communications processors, communication logic modules, buffers, decoders, encoders, encryptors, amplifiers, etc.) configured to provide or facilitate the communication of the signals described herein.
Still referring to
Memory 508 may include one or more devices (e.g., memory units, memory devices, storage devices, etc.) for storing data and/or computer code for completing and/or facilitating the various processes described in the present disclosure. Memory 508 may include random access memory (RAM), read-only memory (ROM), hard drive storage, temporary storage, non-volatile memory, flash memory, optical memory, or any other suitable memory for storing software objects and/or computer instructions. Memory 508 may include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. Memory 508 may be communicably connected to processor 506 via processing circuit 504 and may include computer code for executing (e.g., by processor 506) one or more processes described herein.
Still referring to
In some embodiments, signal filter 516 smoothes the performance variable signal y and the dither signal d to reduce the effect of noise on such signals. For example, signal filter 516 may include a Savitzky Golay filter which can be applied to the differences of the performance variable signal y and the dither signal d to reduce the impact of noise without significantly affecting the phase of such signals. Signal filter 516 may provide a filtered performance variable signal yƒ and a filtered dither signal dƒ to EWMA calculator 518.
In some embodiments, signal filter 516 includes the functionality of high-pass filter 418, demodulation element 428, and/or low-pass filter 420, as described with reference to
In some embodiments, signal filter 516 includes a demodulation component. For example, signal filter 516 may be configured to generate one or more demodulation signals for use in demodulating the outputs from the high-pass filters. The number of demodulation signals generated may depend on the number of control inputs u (e.g., a separate demodulation signal for each control input u) and/or the number of high-pass filters (e.g., a separate demodulation signal for each high-pass filter). In some embodiments, each demodulation signal has a phase shift selected to maximize the cross-correlation between the demodulation signal and the output of the corresponding high-pass filter. In some embodiments, the demodulation frequencies and the phase shifts for the demodulation signals are determined by dither signal generator 530. Signal filter 516 may retrieve such values from dither signal generator 530 and use the values to generate the demodulation signals.
Signal filter 516 may include one or more demodulation elements (e.g., demodulation element 428) configured to multiply each demodulation signal with the output of the corresponding high-pass filter. Signal filter 516 may provide the product of each multiplication as an input to the corresponding low-pass filter. Advantageously, using multiple different dither signals and demodulation signals allows each control input to be independently isolated by defining different dither frequencies for each dither/demodulation signal pair. Accordingly, controller 501 can attribute a change in the performance variable signal y to a change in a particular control input u. Changes in the performance variable signal y caused by each control input u can be distinguished from each other and distinguished from changes caused by external disturbances and/or process noise.
Still referring to
EWMA calculator 518 may generate a first EWMA sd,k based on a history of values for the dither signal d or the filtered dither signal dƒ. The notation sd,k indicates that the variable sd,k represents the EWMA of the dither signal d (or filtered dither signal dƒ) at time k. EWMA calculator 518 may generate the first EWMA sd,k using the following equation:
where sd,k is the EWMA value at time k, sd,k-1 is the previous EWMA value (i.e., at time k−1), dk is the value of the dither signal d or filtered dither signal dƒ at time k, and Np is the duration of the forgetting window. In some embodiments, EWMA calculator 518 generates a value for Np based on the dither signal frequency ωd as shown in the following equation:
EWMA calculator 518 may generate a second EWMA sy,k based on a history of values for the performance variable signal y or the filtered performance variable signal yƒ. The notation sy,k indicates that the variable sy,k represents the EWMA of the performance variable signal y (or the filtered performance variable signal yƒ) at time k. EWMA calculator 518 may generate the second EWMA sy,k using the following equation:
where sy,k is the EWMA value at time k, sy,k-1 is the previous EWMA value (i.e., at time k−1), yk is the value of the performance variable signal y or the filtered performance variable signal yƒ at time k, and Np is the duration of the forgetting window.
In some embodiments, EWMA calculator 518 generates a third EWMA sx,k based on a product of the performance variable signal y (or the filtered performance variable signal yƒ) and the dither signal d (or the filtered dither signal dƒ). EWMA calculator 518 may generate the third EWMA sx,k using the following equation:
where sx,k is the EWMA value at time k, sx,k-1 is the previous EWMA value (i.e., at time k−1), dk is the value of the dither signal d or filtered dither signal dƒ at time k, yk is the value of the performance variable signal y or the filtered performance variable signal yƒ at time k, and Np is the duration of the forgetting window.
In some embodiments, EWMA calculator 518 updates the EWMA values sd,k, sy,k, and sx,k each time a new sample of the performance variable y and the dither signal d is received (e.g., at the beginning of each time step k). EWMA calculator 518 may provide the EWMA values sd,k, sy,k, and sx,k to phase delay estimator 520 for use in calculating the phase delay φ between the dither signal d and the performance variable signal y.
Still referring to
According to the first exemplary embodiment, phase delay estimator 520 estimates the phase delay φ using the original or filtered values for the performance variable signal y and the dither signal d. For example, phase delay estimator 520 may estimate the phase delay φ using the following property of vectors:
where u1 and u2 are equal length vectors, u1·u2 is the dot product of the two vectors, and the notation ∥ ∥2 refers to the 2-norm. The dot product u1·u2 can be calculated using the following equation:
and the 2-norms can be calculated using the following equations:
Phase delay estimator 520 may substitute the dither signal d (or the filtered dither signal dƒ) for u1 and the performance variable signal y (or the filtered performance variable signal yƒ) for u2 to estimate the phase delay between the dither signal and the performance variable signal.
According to the second exemplary embodiment, phase delay estimator 520 estimates the phase delay φ using the EWMA values sd,k, sy,k, and sx,k. For example, phase delay estimator 520 may estimate the phase delay {circumflex over (φ)}k at time k using the following equation:
Phase delay estimator 520 may provide the phase delay φ and/or {circumflex over (φ)}k to bandwidth estimator 524 for use in estimating the system bandwidth.
Still referring to
where ζ is the damping coefficient and ωn is the natural frequency of the system. The natural frequency ωn may be assumed to be equivalent to the system bandwidth.
From this transfer function, it follows that the phase delay φ between the dither signal d and the performance variable signal y is:
which can be simplified by assuming that plant 503 is critically damped (i.e., ζ=1). The previous equation can be rearranged into a quadratic form that provides ωn as a function of the dither signal frequency ωd and the phase delay φ as follows:
This quadratic equation can be solved to give two frequencies for ωn, one positive frequency and one negative frequency. The positive frequency is given by:
For the embodiment in which phase delay estimator 520 uses the original or filtered values of the dither signal d and the performance variable signal y to estimate the phase delay φ, bandwidth estimator 524 may estimate the natural frequency ωn as a function of the known dither signal frequency ωd and the phase delay φ using the previous equation. For example, bandwidth estimator 524 is shown receiving the phase delay φ from phase delay estimator 520 and the dither signal frequency ωd from dither signal generator 530. Bandwidth estimator 524 may use the dither signal frequency ωd and the phase delay φ to calculate ωn as shown in the previous equation. Bandwidth estimator 524 may store or use the natural frequency ωn as the system bandwidth.
For the embodiment in which phase delay estimator 520 uses the EWMA values sd,k, sy,k, and sx,k to estimate the phase delay {circumflex over (φ)}k, bandwidth estimator 524 may estimate the natural frequency {circumflex over (ω)}n,k at time k using the following equation:
For example, bandwidth estimator 524 may receive the estimated phase delay {circumflex over (φ)}k from phase delay estimator 520 and the dither signal frequency ωd from dither signal generator 530. Bandwidth estimator 524 may use the dither signal frequency ωd and the estimated phase delay {circumflex over (φ)}k to calculate {circumflex over (ω)}n,k as shown in the previous equation. Bandwidth estimator 524 may store or use the natural frequency ωn,k as the system bandwidth at time k.
Still referring to
In some embodiments, gain estimator 526 estimates the system gain Ks based on the following equation describing the magnitude of a second-order system:
where the system gain Ks is unknown. The actual magnitude of the performance variable signal y relative to the dither signal d is the ratio of the ranges of the performance variable signal y and the dither signal d. In other words, the magnitude |H(jωd)| may be equal to the ratio of the range of the performance variable signal y (i.e., σy) to the range of the dither signal d (i.e., σd), as shown in the following equation:
In various embodiments, the ranges σy and σd may represent a difference between a maximum and minimum value of the corresponding signal, a standard deviation of the signal, or any other metric that quantifies a range or spread of a plurality of data values.
In some embodiments, gain estimator 526 uses the EWMA values sd,k and sy,k as the variances of the dither signal d and the performance variable signal y, respectively. These EWMA values are measures of the variable ranges squared (e.g., sd,k=σd2, and sy,k=σy2). Accordingly, the square root of the ratio
may be substituted for |H(jωd)| as shown in the following equation:
which can be solved for Ks as follows:
Gain estimator 526 is shown receiving the EWMA values sd,k and sy,k from EWMA calculator 518, the natural frequency ωn from bandwidth estimator 524, and the dither signal frequency ωd from dither signal generator 530. Gain estimator 526 may use the previous equation to calculate Ks as a function of the EWMA values sd,k and sy,k, the natural frequency ωn and the dither signal frequency ωd, assuming that the plant is critically damped (i.e., ζ=1). In some embodiments, gain estimator 526 provides the system gain Ks to integrator 528 for use in scaling the step size of the internal gradient descent procedure performed by controller 501.
Still referring to
Still referring to
Dither signal generator 530 may select the dither amplitude Ad such that the input perturbation is no larger than 10% of the total input range. In some embodiments, dither signal generator 530 selects the dither amplitude Ad such that the corresponding dithered output amplitude of performance variable signal y (i.e., the amplitude of perturbation caused by dither signal d) is at least twice the noise amplitude. Dither signal generator 530 may select the dither frequency ωd based on the natural frequency ωn or natural frequency estimate {circumflex over (ω)}n,k received from bandwidth estimator 524. For example, dither signal generator 530 may select the dither frequency ωd to be equal to the natural frequency ωn or a multiple of the natural frequency ωn.
Dither signal generator 530 may provide the dither frequency ωd to bandwidth estimator 524 for use in calculating the natural frequency ωn. Dither signal generator 530 may also provide the dither frequency ωd to gain estimator 526 for use in calculating the system gain Ks. Dither signal generator 530 may provide the dither signal d to feedback controller 532 for use in generating the control input u.
Still referring to
Referring now to
Process 600 is shown to include receiving an initial value for a dither frequency ωd (step 602). The initial value for the dither frequency ωd may be retrieved from memory, specified by a user, received from an external system or device, automatically determined by controller 501, or obtained from any other data source. In some embodiments, the initial value of the dither frequency ωd is based on knowledge of the system. For example, the initial value of the dither frequency ωd may be determined using a system identification procedure. In other embodiments, the initial value of the dither frequency ωd is a standard value pre-programmed into controller 501. Advantageously, the initial value of the dither frequency ωd does not need to be selected based on knowledge of the system since the dither frequency ωd is automatically updated in subsequent steps of process 600.
Process 600 is shown to include updating extremum-seeking control (ESC) parameters using the dither frequency ωd (step 604). ESC control parameters may include any parameters or variables used by controller 501 when performing an extremum-seeking control process. For example, step 604 may include generating a dither signal d using the dither frequency ωd. In some embodiments, step 604 includes receiving an output signal y from the plant, which may be the same as the performance variable signal y previously described. Throughout this disclosure the terms “performance variable signal y” and “output signal y” are used interchangeably to refer to the monitored variable y received from the plant. ESC control parameters generated in step 604 may include a dot product of the dither signal d and the output signal y and/or 2-norms of the dither signal d and the output signal y. For example, step 604 may include calculating the dot product of the dither signal d and the output signal y using the following equation:
where u1 is the dither signal and u2 is the output signal y. Step 604 may include calculating 2-norms of dither signal d and the output signal y using the following equations:
where u1 is the dither signal and u2 is the output signal y.
In some embodiments, step 604 includes calculating EWMAs of the dither signal d and the output signal y. For example, step 604 may include generating a first EWMA sd,k based on a history of values for the dither signal d or the filtered dither signal dƒ. The notation sd,k indicates that the variable sd,k represents the EWMA of the dither signal d (or filtered dither signal dƒ) at time k. The first EWMA sd,k may be generated using the following equation:
where sd,k is the EWMA value at time k, sd,k-1 is the previous EWMA value (i.e., at time k−1), dk is the value of the dither signal d or filtered dither signal dƒ at time k, and Np is the duration of the forgetting window. In some embodiments, step 604 includes generating a value for Np based on the dither signal frequency ωd as shown in the following equation:
Step 604 may include generating a second EWMA sy,k based on a history of values for the output signal y or the filtered output signal yƒ. The notation sy,k indicates that the variable sy,k represents the EWMA of the output signal y (or the filtered output signal yƒ) at time k. The second EWMA sy,k may be generated using the following equation:
where sy,k is the EWMA value at time k, sy,k-1 is the previous EWMA value (i.e., at time k−1), yk is the value of the output signal y or the filtered output signal yƒ at time k, and Np is the duration of the forgetting window.
In some embodiments, step 604 includes generating a third EWMA sx,k based on a product of the output signal y (or the filtered output signal yƒ) and the dither signal d (or the filtered dither signal dƒ). The third EWMA sx,k may be generated using the following equation:
where sx,k is the EWMA value at time k, sx,k-1 is the previous EWMA value (i.e., at time k−1), dk is the value of the dither signal d or filtered dither signal dƒ at time k, yk is the value of the output signal y or the filtered output signal yƒ at time k, and Np is the duration of the forgetting window. In some embodiments, step 604 includes updating the EWMA values sd,k, sy,k, and sx,k each time a new sample of the output signal y and the dither signal d is received (e.g., at the beginning of each time step k).
Step 604 may include calculating a value for the system gain Ks. The system gain Ks may be calculated at the beginning of each time step k based on the current EWMA values sd,k and sy,k, the current dither frequency ωd, and the current estimate of the system bandwidth (e.g., natural frequency ωn) as shown in the following equation:
Still referring to
Process 600 is shown to include determining whether a threshold number N of cycles have been completed (step 608). If the threshold number N of cycles (e.g., N≈10) have not been completed (i.e., the result of step 608 is “no”), process 600 may return to step 604 and steps 604-608 may be repeated. However, if the threshold number N of cycles have been completed (i.e., the result of step 608 is “yes”), process 600 may advance to step 610. In some embodiments, the threshold number N defines a threshold number of time steps k or a threshold amount of time relative to a predetermined point in time. For example, the predetermined point in time may be the beginning of process 600 or the time at which the dither frequency ωd was most recently updated. In other embodiments, the threshold number N defines a threshold number of samples of the dither signal d and/or output variable y collected since the predetermined point in time (e.g., N≈1000 at a sampling rate of approximately 100 samples per cycle). In some embodiments, the threshold number N defines a threshold number of times steps 604-608 have been performed since the dither frequency ωd was most recently updated.
Still referring to
where u1 is the dither signal d, u2 is the output signal y from the plant, u1·u2 is the dot product calculated in step 604, and ∥u1∥2 and ∥u2∥2 are the 2-norms calculated in step 604. In other embodiments, step 610 may include estimating the phase delay {circumflex over (φ)}k at time k based on the EWMA values sd,k, sy,k, and sx,k calculated in step 604. For example, the phase delay {circumflex over (φ)}k at time k may be estimated using the following equation:
In some embodiments, step 610 includes using the phase delay φ and the dither signal frequency ωd to calculate the system bandwidth ωn using the following equation.
In other embodiments, step 610 may include using the phase delay {circumflex over (φ)}k at time k and the dither signal frequency ωd to estimate the system bandwidth {circumflex over (ω)}n,k at time k using the following equation:
Step 610 may include estimating the system gain Ks using the following equation:
where sy,k and sd,k are the EWMA values calculated in step 604, ωd is the current value of the dither signal frequency, and ωn is the estimated system bandwidth (e.g., ωn or {circumflex over (ω)}n,k).
Still referring to
The updated dither frequency ωd may be stored in memory and used in subsequent iterations of process 600 to generate the dither signal d. In some embodiments, the updated dither frequency ωd is used to calculate an updated value for the system gain Ks as previously described. After updating the dither frequency ωd in step 612, process 600 may return to step 604. Steps 604-612 may be repeated iteratively to automatically update the dither frequency ωd, system gain Ks, and/or other ESC configuration parameters as conditions change.
Referring now to
Process 700 is shown to include receiving an initial value for a dither frequency ωd (step 702). The initial value for the dither frequency ωd may be retrieved from memory, specified by a user, received from an external system or device, automatically determined by controller 501, or obtained from any other data source. In some embodiments, the initial value of the dither frequency ωd is based on knowledge of the system. For example, the initial value of the dither frequency ωd may be determined using a system identification procedure. In other embodiments, the initial value of the dither frequency ωd is a standard value pre-programmed into controller 501. Advantageously, the initial value of the dither frequency ωd does not need to be selected based on knowledge of the system since the dither frequency ωd is automatically updated in subsequent steps of process 700.
Process 700 is shown to include generating a dither signal d using the dither frequency ωd (step 704) and perturbing a control input u for a plant using the dither signal d (step 706). The dither signal d may be a sinusoidal disturbance of a known frequency (i.e., the dither frequency ωd) and may be applied (e.g., added) to the control input u provided to the plant. The dither signal d may be generated according to dither signal parameters such as a dither amplitude Ad and a dither frequency ωd. In other words, the dither signal d may have a dither amplitude Ad and a dither frequency ωd. Step 706 may include adding the dither signal d to the output v of an integrator (e.g., integrator 528) to generate the control input u for the plant (e.g., u=v+d).
In some embodiments, step 704 includes selecting the dither amplitude Ad such that the input perturbation is no larger than 10% of the total input range. In some embodiments, step 704 includes selecting the dither amplitude Ad such that the corresponding dithered output amplitude of the performance variable signal y (i.e., the amplitude of perturbation caused by dither signal d) is at least twice the noise amplitude. Step 704 may include selecting the dither frequency ωd based on the natural frequency ωn or natural frequency estimate {circumflex over (ω)}n,k received in step 702 or determined in a previous iteration of process 700. For example, step 704 may include selecting the dither frequency ωd to be equal to the natural frequency ωn or a multiple of the natural frequency ωn. In some embodiments, step 704 includes generating multiple dither signals. The number of dither signals generated in step 704 may depend on the number of control inputs u provided to the plant. In some embodiments, step 704 includes generating a dither signal d for each of the control inputs u.
In some embodiments, step 704 includes calculating an EWMA of the dither signal d. For example, step 704 may include generating a first EWMA sd,k based on a history of values for the dither signal d. The notation sd,k indicates that the variable sd,k represents the EWMA of the dither signal d (or filtered dither signal dƒ) at time k. The first EWMA sd,k may be generated using the following equation:
where sd,k is the EWMA value at time k, sd,k-1 is the previous EWMA value (i.e., at time k−1), dk is the value of the dither signal d or filtered dither signal dƒ at time k, and Np is the duration of the forgetting window. In some embodiments, step 704 includes updating the EWMA value sd,k each time a new sample of the dither signal d is received (e.g., at the beginning of each time step k). In some embodiments, step 704 includes generating a value for Np based on the dither signal frequency ωd as shown in the following equation:
Still referring to
In some embodiments, step 708 includes generating a second EWMA sy,k based on a history of values for the output signal y. The notation sy,k indicates that the variable sy,k represents the EWMA of the output signal y (or the filtered output signal yƒ) at time k. The second EWMA sy,k may be generated using the following equation:
where sy,k is the EWMA value at time k, sy,k-1 is the previous EWMA value (i.e., at time k−1), yk is the value of the output signal y or the filtered output signal yƒ at time k, and Np is the duration of the forgetting window.
In some embodiments, step 708 includes generating a third EWMA sx,k based on a product of the output signal y (or the filtered output signal yƒ) and the dither signal d (or the filtered dither signal dƒ). The third EWMA sx,k may be generated using the following equation:
where sx,k is the EWMA value at time k, sx,k-1 is the previous EWMA value (i.e., at time k−1), dk is the value of the dither signal d or filtered dither signal dƒ at time k, yk is the value of the output signal y or the filtered output signal yƒ at time k, and Np is the duration of the forgetting window. In some embodiments, step 708 includes updating the EWMA values sy,k and sx,k each time a new sample of the output signal y and the dither signal d is received (e.g., at the beginning of each time step k).
Still referring to
where u1 and u2 are equal length vectors representing the dither signal d and the output signal y, respectively, u1·u2 is the dot product of the two vectors, and the notation ∥ ∥2 refers to the 2-norm. The dot product u1·u2 can be calculated using the following equation:
and the 2-norms can be calculated using the following equations:
Step 710 may include substituting the dither signal d (or the filtered dither signal dƒ) for u1 and the output signal y (or the filtered output signal yƒ) for u2 to estimate the phase delay between the dither signal d and the output signal y.
In other embodiments, step 710 includes estimating the phase delay φ using the EWMA values sd,k, sy,k, and sx,k. For example, step 710 may include estimating the phase delay {circumflex over (φ)}k at time k using the following equation:
The phase delay φ and/or {circumflex over (φ)}k may be stored in memory for use in subsequent steps of process 700.
Still referring to
In other embodiments, step 712 may include using the phase delay {circumflex over (φ)}k at time k and the dither signal frequency ωd to estimate the system bandwidth {circumflex over (ω)}n,k at time k using the following equation:
Step 712 may include estimating the system gain Ks using the following equation:
where sy,k and sd,k are the EWMA values calculated in steps 704-708, ωd is the current value of the dither signal frequency, and ωn is the estimated system bandwidth (e.g., ωn or {circumflex over (ω)}n,k).
Still referring to
The updated dither frequency ωd may be stored in memory and used in subsequent iterations of process 700 to generate the dither signal d. In some embodiments, the updated dither frequency ωd is used to calculate an updated value for the system gain Ks as previously described. After updating the dither frequency ωd in step 714, process 700 may return to step 704. Steps 704-714 may be repeated iteratively to automatically update the dither frequency ωd, system gain Ks, and/or other ESC configuration parameters as conditions change.
Referring now to
where ζ is the damping coefficient, ωn is the natural frequency of the plant, and Ks is the system gain. The damping coefficient ζ was set to a value of ζ=1. The natural frequency ωn was set to a value of
shown in
Referring particularly to
As shown in
to the actual value of
Similarly, the estimated system gain Ks converges quickly from its initial estimate of Ks=0 to the actual value of Ks=8. Oscillations can be seen in the estimated parameters, but such oscillations are small relative to the estimated values.
Referring now to
After the initialization period has passed (i.e., at approximately 1000 samples), the natural frequency estimate is updated to
as shown in graph 800. In response to updating the natural frequency estimate ωn, the dither frequency ωd is adjusted based on the new natural frequency estimate ωn. For example, the oscillatory frequency of the dither signal 902 is shown decreasing to a relatively slower frequency of oscillation at approximately 1000 samples to match the new natural frequency estimate ωn. The DC value of the dither signal 902 may also be updated using an extremum-seeking control technique in order to drive the gradient of the performance variable y to zero, as previously described. For example, the DC value of the dither signal 902 is shown increasing from an initial value of 0 to a new value of 1 at approximately 1000 samples.
Advantageously, the systems and methods of the present invention may be used to automatically identify the dither frequency ωd and the system gain Ks using the dither signal to perform system identification. This allows the present invention to be integrated within existing extremum-seeking control systems to allow such systems to be automatically configured without needing to open the loop or employ manual tests. Simulation results have demonstrated the effectiveness of the present invention to quickly and accurately identify the system bandwidth ωn and the system gain Ks, which can be used to adjust the characteristics of the dither signal d and/or the control input u used to control the plant.
The construction and arrangement of the systems and methods as shown in the various exemplary embodiments are illustrative only. Although only a few embodiments have been described in detail in this disclosure, many modifications are possible (e.g., variations in sizes, dimensions, structures, shapes and proportions of the various elements, values of parameters, mounting arrangements, use of materials, colors, orientations, etc.). For example, the position of elements may be reversed or otherwise varied and the nature or number of discrete elements or positions may be altered or varied. Accordingly, all such modifications are intended to be included within the scope of the present disclosure. The order or sequence of any process or method steps may be varied or re-sequenced according to alternative embodiments. Other substitutions, modifications, changes, and omissions may be made in the design, operating conditions and arrangement of the exemplary embodiments without departing from the scope of the present disclosure.
The present disclosure contemplates methods, systems and program products on any machine-readable media for accomplishing various operations. The embodiments of the present disclosure may be implemented using existing computer processors, or by a special purpose computer processor for an appropriate system, incorporated for this or another purpose, or by a hardwired system. Embodiments within the scope of the present disclosure include program products comprising machine-readable media for carrying or having machine-executable instructions or data structures stored thereon. Such machine-readable media can be any available media that can be accessed by a general purpose or special purpose computer or other machine with a processor. By way of example, such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer or other machine with a processor. Combinations of the above are also included within the scope of machine-readable media. Machine-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions.
Although the figures show a specific order of method steps, the order of the steps may differ from what is depicted. Also two or more steps may be performed concurrently or with partial concurrence. Such variation will depend on the software and hardware systems chosen and on designer choice. All such variations are within the scope of the disclosure. Likewise, software implementations could be accomplished with standard programming techniques with rule based logic and other logic to accomplish the various connection steps, processing steps, comparison steps and decision steps.