System and Method for Automated Adaptive Operation to Achieve Optimized Power Management on Internet of Things Devices

20220261059 · 2022-08-18

    Inventors

    Cpc classification

    International classification

    Abstract

    The present invention provides a system for observing power or energy availability for a gateway device and the power or energy consumption of each component or device within or connected to the gateway device. The gateway device of the present invention can then learn the usage patterns of the software modules and devices and then predict the power utilization based on various usage plans. The gateway device can then plan or build an energy consumption schema and implement the energy consumption schema to control power utilization by the gateway device and its related peripheral devices. The gateway device can also communicate with other gateway devices to share power plant data, utilization schemas, or to off load or on board data tasks. The gateway device can dynamically self-optimize to restrict or permit power plant usage based on forecasts derived from past behavior and predicted future behavior and demand predictions triggered by application usage.

    Claims

    1. A remote gateway device the device comprising: a device processor and device machine readable instructions on a non-transitory computer readable memory; a communication portion for receiving and transmitting a plurality of data; a processor performing processing, based on the device machine readable instructions; the instructions including a plurality of applications; wherein the communication portion receives a plurality of power plant data from a power plant connected to the device, wherein the power plant data includes a plurality of energy production data and plurality of energy consumption data; a system power consumption module for analyzing the power consumption requirements and power usage patterns of a plurality of software applications and a plurality of hardware resources resident on the device; a system power prediction module, wherein the system power prediction module uses the power consumption analysis from the system power consumption module and the plurality of energy prediction production data and the plurality of energy consumption data to forecast power consumption and generate a power management plan for the plurality of software applications and plurality of hardware resources resident on the device; a power control module for managing the power state of the plurality of software applications and the power state of the plurality of hardware resources resident on the device, wherein the power state module can limit power usage of the plurality of software applications and plurality of hardware resources resident on the device; and wherein the device implements the power management plan to control the plurality of software applications and plurality of hardware resources resident on the device based on the plurality of power plant data and power management plan.

    2. The remote gateway device of claim 1, wherein the power state module limits power usage to at least one of the plurality of software applications on the device by sending instructions to the at least one of the plurality of software applications.

    3. The remote gateway device of claim 1, wherein the power state module limits power usage to at least one of the plurality of hardware resources on the device by sending a signal to the at least one of the plurality of hardware resources.

    4. The remote gateway device of claim 1, wherein at least one of the plurality of applications stores and analyzes time series persistent data derived from the plurality of energy production data and energy consumption data.

    5. The remote gateway device of claim 1, wherein gateway device periodically assesses the power plant, updates the plurality of power plant data from the power plant, creates an updated power management plan based on the updated plurality of power plant data, and implements the updated power management plan.

    6. The remote gateway device of claim 1, wherein gateway device periodically assesses the power plant, updates the plurality of power plant data from the power plant, creates an updated power management plan based on the updated plurality of power plant data, and implements the updated power management plan.

    7. The remote gateway device of claim 1, wherein gateway device forecasts power plant energy availability and adjusts the power management plan to generate an updated power management plan.

    8. The remote gateway device of claim 1, wherein gateway device forecasts system power consumption and adjusts the power management plan to generate an updated power management plan.

    9. The remote gateway device of claim 1, wherein gateway device adjusts the power management plan when the power management plan does not meet a goal by adjusting the operations of at least one of the plurality of hardware components.

    10. The remote gateway device of claim 1, wherein gateway device adjusts the power management plan when the power management plan does not meet a goal by adjusting the operations of at least one of the plurality of software applications.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0032] The following detailed description of the invention is better understood when read with reference to the drawings in which:

    [0033] FIG. 1 provides an illustrative schematic overview of a system that implements a typical embodiment of the invention; and

    [0034] FIG. 2 provides an illustrative schematic view of the detailed deconstruction of a system that implements a typical embodiment of the invention.

    DETAILED DESCRIPTION

    [0035] Hereinafter, aspects of the methods and associated systems in accordance with various embodiments of the invention will be described. As used herein, any term in the singular may be interpreted to be in the plural, and alternatively, any term in the plural may be interpreted to be in the singular. It is appreciated that features of one embodiment as described herein may be used in conjunction with other embodiments. The present invention can be more fully understood by reading the following detailed description together with the accompanying drawings (FIGS. 1-2), in which like reference indicators are used to designate like elements.

    [0036] FIG. 1 depicts a high-level overview of a system that implements a typical embodiment of the present invention. The system of the present invention includes an embedded platform 101, consisting of hardware and software components, that implement the present invention. In the preferred embodiment, the embedded platform 101 is for example an IoT edge gateway or IoT edge device.

    [0037] The IoT gateway 101 is connected to a power plant 102 that sources energy to the IoT gateway 101. The power plant 102 has a means to supply energy, may have a means to store energy, and may have a means to replenish the energy store. For example, 102 may be comprised of a solar panel, a battery, and a charge controller. In another example 102 may be a primary cell battery which is not rechargeable. Other examples may include a means for battery-backed main power. Other means to store energy such as capacitors could also be used. The power plant 102 is instrumented as feasible to measure parameters including but not limited to one or more of a subset of supply current, supply voltage, demand current, demand voltage, temperature, and operational state of a charge controller.

    [0038] The IoT gateway 101 is comprised of a means of supply characterization 103, a means of demand characterization 105, a means of supply and demand prediction 104, a means of demand management 107. The IoT gateway 101 also includes other components of system hardware and software 106, the operation of which is influenced by the present invention.

    [0039] The supply characterization element 103 interfaces with and to the power plant 102 from which it is able to take time-based measurements of supply status, optionally demand status, and optionally other parameters of the power plant depending on the technology used. The supply characterization element persistently maintains history of these time-based measurements. The supply characterization element makes this information available to the prediction element 104.

    [0040] The demand characterization element 105 assesses and persistently stores time and event-based records of system driven power consumption, where such consumption is a consequence of the system hardware and software 106 behavior. Note that the supply characterization element 103 may be capable to observe and record aggregate energy demand as drawn from the power plant 102, but the demand characterization element 105 is able to track and store fine grained demand as correlated to the activation or deactivation of specific hardware and software processes. The demand characterization element 105 makes this information available to the predicting element 104. The demand characterization 105 is able to compute the fine-grained records of system power consumption based on interaction with the system hardware and software 106 and the demand management element 107.

    [0041] The prediction element 104 is a software component that receives the time series history of supply characterization 103 and demand characterization 105 and implements computations to predict anticipated supply characteristics and demand characteristics based upon historical trends for both supply and demand, operations carried out by the system software and influence upon the system hardware, and optionally information from remote nodes 108. The prediction element 104 can compute how much energy is expected to be available, and how much energy is expected to be consumed over time under various operating parameters.

    [0042] The system software and hardware element(s) 106 includes all software components that are not included in the software that implements the invention itself, such as application components and operating system components, and the underlying hardware that supports the embedded platform 101. The system software and hardware element 106 is instrumented to maintain fine-grained time domain power state of the hardware components and peripherals, as driven by software requests.

    [0043] The demand management element 107 computes and derives a demand management plan or schema under provided goals and constraints given the supply characterization history, the demand characterization history, and predictive models. The demand management element 107 will iterate as necessary through various potential mandatory and discretionary power management controls in order to derive or arrive at a strategy or schema that will optimize the use of the power plant 102 under limited energy supply while prioritizing to complete as much of the application software use cases as need to be completed under the goals and constraints. The demand management element 107 will then signal mandatory and discretionary controls to the system hardware and software 106, or specific elements or components with the system hardware and software 106, to implement the power management plan.

    [0044] FIG. 2 depicts a detailed deconstruction of a system that implements a typical embodiment of the present invention. As seen in FIG. 2, an embedded platform 101, consists of hardware and software components, used to implement the present invention.

    [0045] The embedded platform 101 is connected to or interfaces with a power plant 102 that sources energy to the platform 101. The power plant 102 has a means to supply energy, may have a means to store energy, and may have a means to replenish the energy store. For example, 102 may be comprised of a solar panel, a battery, and a charge controller. In another example 102 may be a primary cell battery which is not rechargeable. Other examples may include a means for battery-backed main power. Other means to store energy such as capacitors could also be used. 102 is instrumented as feasible to measure parameters including but not limited to one or more of a subset of supply current, supply voltage, demand current, demand voltage, temperature, and operational state of a charge controller.

    [0046] The supply characterization element 103 is further comprised of a power measurement element 221, a time series record of energy consumption measurements 222, a time series record of energy production measurements 224, and an overall history of the power source history 223. The power source history 223 records the aggregate state of energy availability over time, along with additional parameters such as temperature that may influence the energy availability when considered along with knowledge of the specific power plant 102 implementation, e.g., battery chemistry.

    [0047] The demand characterization element 105 is further comprised of a system power state history 242 and a system consumption analysis 241. The system power state history 242 maintains a fine-grained historical record of how the system power state evolves over time. The system power state itself is determined by the system power management module 263. The system consumption analysis module 241 decomposes the system power state history 242 and attributes where possible time varying components of power consumption to application procedures and processes that are driving the power consumption.

    [0048] The prediction element 104 is further comprised of a system consumption forecast 231, an energy state estimation 232, and an energy availability forecast 233. The system consumption forecast 231 will predictively extend the historical information from the system consumption analysis 241 in order to anticipate future power consumption needs under a given operational scenario with given application components. The energy state estimation 232 will model and predict the state of the power plant, e.g., the state of charge of a battery, based on inputs including the power source history 223 and additional system information as necessary such as temperature. The energy availability forecast will extend the energy state estimation to predict the future energy availability, further optionally incorporating information from remote nodes 108, such as remote IoT peer nodes installed in similar locations with similar operating conditions, and also optionally other information such as weather predictions. The prediction element 104 is thus able to model and compute, based on historical and system information, how much energy is expected to be available and also consumed over time by a system performing certain application processes and procedures.

    [0049] The demand management element 107 is comprised of a power management planning element 261, a system power management or power state element 263, and a goals and constraints element 262 pertaining to power optimization. The system power management or power state vector element 263 may be a software module or hardware components and provides or represents a fine-grained view of each hardware component/peripheral that is under software control. For example, a cellular modem or an ethernet port may have several modes of operation and based on the mode of operation that they are in they will consume different amounts of power. As such peripherals transition through their modes of operation the system power state vector element 263 evolves to reflect those transitions. Inhibiting certain transitions of the power state vector effectively constrains the hardware to only operate within the selected subset of operational states, thus also extending a means of controlling how much power each hardware component/peripheral will be allowed to consume. The power management planning element 261 will consider goals and constraints in light of the predicted energy availability forecast and system consumption forecast in order to determine if the goals and constraints will be met. If the goals and constraints 262 are not met then the power management planning element 261 will permute a power management plan that includes assertion of mandatory and discretionary signals to the power management state, limiting or allowing the power management state to evolve under certain boundary conditions. Based on this permutation the power management element 261 can arrive at a strategy to balance the application needs under the goals and constrains against the expected energy available from the power plant. As the conditions of the power plant evolve over time, the power management plan is updated. As the requirements of application software changes over time, the power management plan is updated. Once a power management plan has been computed, it is applied by signaling mandatory and discretionary controls to the power management state and to the system hardware and software (201, 202, 203, 204). Mandatory signals will constrain the power management state from activating any hardware/peripheral component into a state that exceeds the power envelope as constrained by the mandatory signal. Discretionary controls are opt-in signals that are made available to applications 201 which may or may not choose to modify their behavior to meet the power management plan. If an application does not honor a discretionary control, a future evaluation of the power management plan may lead to a mandatory control.

    [0050] Through use of the present invention, the IoT gateway device 101 can observe and learn the power plant 102, the power demands of the systems and components of the gateway device 102, connected peripherals, and remote but connected (wireless or wired) devices including other gateway devices 108. The gateway device 101 can then learn the energy usage patterns and/or demand requirements and predict how power consumption will be impacted by various modifications to usage of the systems and components. The gateway device 101 can then derive a plan or schema of utilization of the gateway components (software and hardware) based on the available power, power consumption analysis, and a system determined prioritization based on system goals and constraints. Finally, the gateway device 101 can implement the power utilization plan or schema by controlling which components or devices are activated, deactivated, and the frequency each component or device is activated or deactivated. Further, the gateway device 101 can communicate with other remote nodes or gateway devices 108 to receive data input on power plant data from those remote nodes 108, receive data on energy utilization plans or schema, and, if necessary, off load or take on activities to or from such connected nodes 108 to assist each gateway device 101 or each node 108 achieve required activities during energy managed time periods.

    [0051] The systems and methods of the invention in described embodiments may be implemented as a system, method, apparatus or article of manufacture using programming and/or engineering techniques related to software, firmware, hardware, or any combination thereof. The described operations may be implemented as code maintained in a “computer readable medium”, where a processor may read and execute the code from the computer readable medium. A computer readable medium may comprise media such as magnetic storage medium (e.g., hard disk drives, floppy disks, tape, etc.), optical storage (CD-ROMs, DVDs, optical disks, etc.), volatile and non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, Flash Memory, firmware, programmable logic, etc.), etc. The code implementing the described operations may be further implemented in hardware logic (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.). Still further, the code implementing the described operations may be implemented in “transmission signals”, where transmission signals may propagate through space or through a transmission media, such as an optical fiber, copper wire, etc. The transmission signals in which the code or logic is encoded may further comprise a wireless signal, satellite transmission, radio waves, infrared signals, Bluetooth, etc. The transmission signals in which the code or logic is encoded is capable of being transmitted by a transmitting station and received by a receiving station, where the code or logic encoded in the transmission signal may be decoded and stored in hardware or a computer readable medium at the receiving and transmitting stations or devices. An “article of manufacture” comprises computer readable medium, hardware logic, and/or transmission signals in which code may be implemented. A device in which the code implementing the described embodiments of operations is encoded may comprise a computer readable medium or hardware logic. Of course, those skilled in the art will recognize that many modifications may be made to this configuration without departing from the scope of the present invention, and that the article of manufacture may comprise suitable information bearing medium known in the art.

    [0052] In an embodiment of the invention, the systems and methods use networks, wherein, the term, ‘networks’ means a system allowing interaction between two or more electronic devices, and includes any form of inter/intra enterprise environment such as the world wide web, Local Area Network (LAN), Wide Area Network (WAN), Storage Area Network (SAN) or any form of Intranet.

    [0053] In an embodiment of the invention, the systems and methods can be practiced using any electronic device. An electronic device for the purpose of this invention is selected from any device capable of processing or representing data to a user and providing access to a network or any system similar to the internet, wherein the electronic device may be selected from but not limited to, personal computers, mobile phones, laptops, palmtops, tablets, portable media players and personal digital assistants.

    [0054] As noted above, the processing machine used to implement the invention may be a suitable computer or other processing machine. The processing machine may also utilize (or be in the form of) any of a wide variety of other technologies including a special purpose computer, a computer system including a microcomputer, mini-computer or mainframe for example, a programmed microprocessor, a micro-controller, a peripheral integrated circuit element, a CSIC (Consumer Specific Integrated Circuit) or ASIC (Application Specific Integrated Circuit) or other integrated circuit, a logic circuit, a digital signal processor, a programmable logic device such as a FPGA, PLD, PLA or PAL, or any other device or arrangement of devices that is capable of implementing the steps of the processes of the invention.

    [0055] The processing machine used to implement the invention may utilize a suitable operating system (OS). Thus, embodiments of the invention may include a processing machine running the Unix operating system, the Apple iOS operating system, the Linux operating system, the Xenix operating system, the IBM AIX™ operating system, the Hewlett-Packard UX™ operating system, the Novell Netware™ operating system, the Sun Microsystems Solaris™ operating system, the OS/2™ operating system, the BeOS™ operating system, the Macintosh operating system (such as macOS™), the Apache operating system, an OpenStep™ operating system, the Android™ operating system (and variations distributed by Samsung, HTC, Huawei, LG, Motorola, Google, Blackberry, among others), the Windows 10™ operating system, the Windows Phone operating system, the Windows 8™ operating system, Microsoft Windows™ Vista™ operating system, the Microsoft Windows™ XP™ operating system, the Microsoft Windows™ NT™ operating system, the Windows™ 2000 operating system, or another operating system or platform.

    [0056] The systems and methods of the invention may utilize non-operating systems (aka serverless architecture) as well for distributed processing. In the processing of the invention, services on cloud computing networks leveraging systems like AWS (as offered by Amazon Web Services, Inc.), BlueMix (as offered by IBM), and Microsoft Azure, can perform data collection services using varying technologies that are spun up on demand using tools like Chef to create container based deployments like Docker, or non-container compute services (e.g. AWS Lambda).

    [0057] The invention may use or provide real-time analytics processing that may use scale on demand to the users in the system, in accordance with at least one embodiment of the invention. Such offerings as AWS Lambda and Kinesis (as offered by Amazon Web Services, Inc.) are among those that may be used in implementation of the invention. For example, AWS Lambda may be utilized to execute code (to perform processes of the invention) in response to various triggers including data changes, shifts in system state, or particular action taken by users. Similarly, in an embodiment, the OS (operating system) of the invention might be encapsulated in an EC2 instance (as offered by Amazon Web Services, Inc.) or multiple instances for deployment.

    [0058] Another example of a traditional system is a device in the electrical distribution system that may speak a proprietary protocol or an older standardized protocol such as DNP3. In order to converge such a device to the modern grid it may be necessary to marshal its ‘native’ protocol into a new protocol such as IEC 61850. Further, is often desired to do so in such a way that allows security policy to be specified and enforced independently of the application behavior, and it is also often necessary to participate more fully in field-area networks that may require localized edge processing and interaction over other protocols with other devices at the edge such that a portion of the distribution system may reasonably take some action independently of coordination through a centralized head-end. The present invention allows such systems to be realized, by, for example, but not limited to 1) allowing domain experts to quickly and efficiently specify application layer behavior independently of deep protocol expertise, 2) allowing multiple protocols to be bound to that application via an abstract data set, which allows different protocols to transparently interact with elements in that data set as necessary, 3) allowing a natural partitioning of application logic independently of the underlying protocols, 4) allowing an architecture where protocol service behavior can be constrained by security policies (e.g. firewalling) independently of how an application layer will operate over that protocol.

    [0059] It is appreciated that in order to practice the method of the invention as described above, it is not necessary that the processors and/or the memories of the processing machine be physically located in the same geographical place. That is, each of the processors and the memories used by the processing machine may be located in geographically distinct locations and connected so as to communicate in any suitable manner, such as over a network or over multiple networks. Additionally, it is appreciated that each of the processor and/or the memory may be composed of different physical pieces of equipment. Accordingly, it is not necessary that the processor be one single piece of equipment in one location and that the memory be another single piece of equipment in another location. That is, it is contemplated that the processor may be two pieces of equipment in two different physical locations. The two distinct pieces of equipment may be connected in any suitable manner. Additionally, the memory may include two or more portions of memory in two or more physical locations.

    [0060] To explain further, processing as described above is performed by various components and various memories. However, it is appreciated that the processing performed by two distinct components as described above may, in accordance with a further embodiment of the invention, be performed by a single component. Further, the processing performed by one distinct component as described above may be performed by two distinct components. In a similar manner, the memory storage performed by two distinct memory portions as described above may, in accordance with a further embodiment of the invention, be performed by a single memory portion. Further, the memory storage performed by one distinct memory portion as described above may be performed by two memory portions.

    [0061] Further, as also described above, various technologies may be used to provide communication between the various processors and/or memories, as well as to allow the processors and/or the memories of the invention to communicate with any other entity; i.e., so as to obtain further instructions or to access and use remote memory stores, for example. Such communication portion, component, system, or technologies used to provide such communication might include a network, the Internet, Intranet, Extranet, LAN, an Ethernet, wireless transceiver, a radio, or any client server system that provides communication, for example. Such communications technologies may use any suitable protocol such as TCP/IP, UDP, or OSI, for example.

    [0062] Further, multiple applications may be utilized to perform the various processing of the invention. Such multiple applications may be on the same network or adjacent networks, and split between non-cloud hardware, including local (on-premises) computing systems, and cloud computing resources, for example. Further, the systems and methods of the invention may use IPC (interprocess communication) style communication for module level communication. Various known IPC mechanisms may be utilized in the processing of the invention including, for example, shared memory (in which processes are provided access to the same memory block in conjunction with creating a buffer, which is shared, for the processes to communicate with each other), data records accessible by multiple processes at one time, and message passing (that allows applications to communicate using message queues), for example.

    [0063] As described above, a set of instructions is used in the processing of the invention. The set of instructions may be in the form of a program or software. The software may be in the form of system software or application software, for example. The software might also be in the form of a collection of separate programs, a program module within a larger program, or a portion of a program module, for example. The software used might also include modular programming in the form of object-oriented programming. The software tells the processing machine what to do with the data being processed.

    [0064] Further, it is appreciated that the instructions or set of instructions used in the implementation and operation of the invention may be in a suitable form such that the processing machine may read the instructions. For example, the instructions that form a program may be in the form of a suitable programming language, which is converted to machine language or object code to allow the processor or processors to read the instructions. That is, written lines of programming code or source code, in a particular programming language, are converted to machine language using a compiler, assembler or interpreter. The machine language is binary coded machine instructions that are specific to a particular type of processing machine, i.e., to a particular type of computer, for example. The computer understands the machine language.

    [0065] Any suitable programming language may be used in accordance with the various embodiments of the invention. Illustratively, the programming language used may include assembly language, Ada, APL, Basic, C, C++, C#, Objective C, COBOL, dBase, Forth, Fortran, Java, Modula-2, Node.JS, Pascal, Prolog, Python, REXX, Visual Basic, and/or JavaScript, for example. Further, it is not necessary that a single type of instructions or single programming language be utilized in conjunction with the operation of the system and method of the invention. Rather, any number of different programming languages may be utilized as is necessary or desirable. Also, the instructions and/or data used in the practice of the invention may utilize any compression or encryption technique or algorithm, as may be desired. An encryption module might be used to encrypt data. Further, files or other data may be decrypted using a suitable decryption module, for example.

    [0066] As described above, the invention may illustratively be embodied in the form of a processing machine, including a computer or computer system, for example, that includes at least one memory. It is to be appreciated that the set of instructions, i.e., the software for example, that enables the computer operating system to perform the operations described above may be contained on any of a wide variety of media or medium, as desired. Further, the data that is processed by the set of instructions might also be contained on any of a wide variety of media or medium. That is, the particular medium, i.e., the memory in the processing machine, utilized to hold the set of instructions and/or the data used in the invention may take on any of a variety of physical forms or transmissions, for example. Illustratively, as also described above, the medium may be in the form of paper, paper transparencies, a compact disk, a DVD, an integrated circuit, a hard disk, a floppy disk, an optical disk, a magnetic tape, a RAM, a ROM, a PROM, a EPROM, a wire, a cable, a fiber, communications channel, a satellite transmissions or other remote transmission, as well as any other medium or source of data that may be read by the processors of the invention.

    [0067] Further, the memory or memories used in the processing machine that implements the invention may be in any of a wide variety of forms to allow the memory to hold instructions, data, or other information, as is desired. Thus, the memory might be in the form of a database to hold data. The database might use any desired arrangement of files such as a flat file arrangement or a relational database arrangement, for example.

    [0068] In the system and method of the invention, a variety of “user interfaces” may be utilized to allow a user to interface with the processing machine or machines that are used to implement the invention. As used herein, a user interface includes any hardware, software, or combination of hardware and software used by the processing machine that allows a user to interact with the processing machine. A user interface may be in the form of a dialogue screen for example. A user interface may also include any of a mouse, touch screen, keyboard, voice reader, voice recognizer, dialogue screen, menu box, list, checkbox, toggle switch, a pushbutton or any other device that allows a user to receive information regarding the operation of the processing machine as it processes a set of instructions and/or provide the processing machine with information. Accordingly, the user interface is any device that provides communication between a user and a processing machine. The information provided by the user to the processing machine through the user interface may be in the form of a command, a selection of data, or some other input, for example.

    [0069] As discussed above, a user interface is utilized by the processing machine that performs a set of instructions such that the processing machine processes data for a user. The user interface is typically used by the processing machine for interacting with a user either to convey information or receive information from the user. However, it should be appreciated that in accordance with some embodiments of the system and method of the invention, it is not necessary that a human user actually interact with a user interface used by the processing machine of the invention. Rather, it is also contemplated that the user interface of the invention might interact, i.e., convey and receive information, with another processing machine, rather than a human user. Accordingly, the other processing machine might be characterized as a user. Further, it is contemplated that a user interface utilized in the system and method of the invention may interact partially with another processing machine or processing machines, while also interacting partially with a human user.