IEnergyStorage

Package: inet.power.contract

IEnergyStorage

module interface

The energy storage models describe devices that absorb energy produced by generators, and provide energy for consumers. For example, an electrochemical battery in a mobile phone provides energy for its display, its CPU, and its wireless communication device. It can also absorb energy produced by a solar panel installed on its display, or by a portable charger plugged into a wall socket.

See also: IEnergyConsumer, IEnergySource, IEnergyGenerator, IEnergySink, IEnergyManagement

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Implemented by

Name Type Description
CcBatteryPack simple module (no description)
CcEnergyStorageBase simple module

This is an abstract base module for current based energy storage models. It defines shared signals and statistics.

EpEnergyStorageBase simple module

This is an abstract base module for power based energy storage models. It defines shared signals and statistics.

IdealEpEnergyStorage simple module

This energy storage model stores an infinite amount of energy. It can provide energy for any number of consumers, and it can absorb energy from any number of generators. The ideal energy storage never gets completely charged or depleted. This module is primarily useful for testing energy consumer and energy generator models. See the base module for signals and statistics.

SimpleCcBattery simple module

This battery model maintains a residual charge capacity by integrating the difference between the total consumed current and the total generated current over time. This model uses a charge independent ideal voltage source and an charge independent internal resistance. It initiates node crash when the residual charge capacity reaches zero. See the base module for signals and statistics.

SimpleEpEnergyStorage simple module

This energy storage model maintains a residual energy capacity by integrating the difference between the total consumed power and the total generated power over time. It initiates node crash when the residual energy capacity reaches zero. This model doesn't have various properties such as self-discharge, memory effect, overcharging, temperature-dependence, etc. that real world batteries have. See the base module for signals and statistics.

Used in compound modules

Name Type Description
NodeBase compound module

This module contains the most basic infrastructure for network nodes that is not strictly communication protocol related.

Known subclasses

Name Type Description
ICcEnergyStorage module interface

This interface extends the corresponding energy model interface. It requires implementations to describe energy consumption and energy generation with current [A], and storage capacity with charge [C] and output voltage [V]. The Cc is an abbreviation that is used for charge and current based interfaces.

IEpEnergyStorage module interface

This interface extends the corresponding energy model interface. It requires implementations to describe energy consumption and energy generation with power [W] and storage capacity with energy [J]. The Ep is an abbreviation that is used for energy and power based interfaces.

Extends

Name Type Description
IEnergySink module interface

The energy sink models absorb energy from multiple energy generators.

IEnergySource module interface

The energy source models provide energy for multiple energy consumers.

Properties

Name Value Description
display i=block/plug

Source code

//
// The energy storage models describe devices that absorb energy produced by
// generators, and provide energy for consumers. For example, an electrochemical
// battery in a mobile phone provides energy for its display, its CPU, and its
// wireless communication device. It can also absorb energy produced by a solar
// panel installed on its display, or by a portable charger plugged into a wall
// socket.
//
// @see ~IEnergyConsumer, ~IEnergySource, ~IEnergyGenerator, ~IEnergySink, ~IEnergyManagement
//
moduleinterface IEnergyStorage extends IEnergySource, IEnergySink
{
    parameters:
        @display("i=block/plug");
}

File: src/inet/power/contract/IEnergyStorage.ned