Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

The advancement of nanotechnology promises to provide a significant rise in small scale communication. Wireless nanonetworks [1, 2] are a next generation of networks at nano scale. Nanonodes in such a network are composed of nano antennas, nano-memory, nano-processor, nano-sensors, nano-sclae energy storage, and so on. Each nanonode is in the range of nano to micro meters in size. The nanoscale property of nanonodes opens the door for exciting new applications. For example, nanosensors could detect chemical compounds at the molecular level or the presence of different infectious agents, such as viruses or harmful bacteria [2]. Many other applications can also be imagined in the biological, medical, chemical, environmental, military, and industrial domain [2]. For example, nanosensors could be used to develop new touch surfaces or be added to standard office products (e.g., pens, papers, etc.), thus making the idea of smart offices a reality.

The functionalities of nanonodes are realized only through communication. Nanosensors will collect useful information that must be sent outside of their sensing environment for storage and additional processing. Nanonodes need to communicate to control or actuate an action, or similarly monitor a phenomena. In other words, they will need to communicate between themselves as well as with nodes in other networks, e.g., local area network. Among all possible models of communication in nanonodes (e.g. electrical, molecular, optical, or acoustic), studies [1] show that electromagnetic communication in the 0.1–10.0 terahertz (THz) frequency band is a promising approach for communication in nanonetworks. Therefore, we focus on the THz communication mechanism, in which nanosensors can consume low energy while having connectivity at the nano scale. The energy for communication is the main part of energy consumption for nanonodes [23].

Due to the size limitation of nanonodes, only a limited energy storage can be considered, where a nanonode harvests and stores energy from ambient sources. Various sources, e.g., vibration, heat, and light, exist for energy harvesting. The use of each type of source corresponds to the particular environment or application. For example, where light is not available, heat can be used as the source of energy. The energy availability of most sources follows stochastic processes.

In addition to the size limitation of energy storage and the stochastic energy harvesting process, the harvester size also needs to be adapted to nanoscale for integration with nanonodes. For example, piezoelectric nanogenerators enable a high energy harvesting rate through compress-release cycles of the nanowires on an ultra-nanocapacitor [23]. Similarly, nano-carbon-based and nano-ceramics-based photovoltaics show promising light absorption properties and can be integrated with nanonodes. The use of biofuel cells to harvest energy from various materials such as blood sugar is another recent advancement in harvesters for nanonodes.

The new communication model, size limitation of nanonodes (which result in low processing capabilities and low harvest rate), and stochastic properties of energy harvesting process create a paradigm of new challenges (in modeling and optimization of energy consumption) to solve for the realization of nanonetworks. Because the energy is expected to be renewed, it is important to achieve the maximum utilization of this energy while keeping a nanonode operational. This differs from traditional energy-saving models (e.g., duty cycles, balancing energy consumption among all nodes, data compression, data aggregation, etc.) although some of these may still be applicable to nanonetworks. Because energy harvesting in nanonetworks is in its early stage of research, we briefly study the energy harvesting in wireless sensor and RFID networks with two goals: (I) introducing the ideas in these networks that may be adapted for nanonetworks; and (II) highlighting both their limitations that prevent them from being used in nanonetworks, and new approaches that could be taken.

Typically, communication is the most energy-consuming operation for nanonodes, implying that the models should focus on energy harvesting in combination with energy consumption for communication. We introduce some methods for optimizing the consumption of energy, including finding the optimum packet size, packet scheduling, and energy harvesting-aware techniques in the realm of nanonetworks. More importantly, the effect of optimizing energy consumption at each nanonode on the overall performance of the nanonetwork should be evaluated. For example, while a nanonode should not be a no-energy state in order to avoid unsuccessful transmission of packets, it should also not remain in a full energy state in order to ensure that available energy is harvested and network utilization is maximized.

The remainder of this chapter is organized as follows. In Sect. 2, we give an overview of the taxonomy and properties of energy harvesting. Moreover, we introduce various sources of energy as well as nano scale harvesters for nanonodes. Section 3 introduces the communication model between nanonodes. Section 4 discusses the techniques for modeling energy harvesting and consumption processes. Section 5 analyzes the optimizing factors of energy consumption based on the properties of the pulse-based communication model. Finally, the chapter is concluded in Sect. 6 with open research issues in the energy harvesting process for nanonetworks. Particularly, open questions related to optimum energy consumption and energy harvesting-aware protocols are discussed.

2 Energy Harvesting

Research in energy harvesting has attracted attention in recent years due to the availability of devices that can harvest solar energy. However, solar energy is limited to specific times and locations. Therefore, researchers have investigated new methods of energy harvesting such as ambient vibration or heat. Independent of the type of source for energy harvesting, energy sources mainly share a common property: the availability and quantity of energy follows a stochastic process.

Energy sources are categorized broadly into (I) ambient energy sources such as, solar, wind, radio frequency (RF), and vibration; and (II) human power [56], which in turn could be passive (i.e., uncontrollable) such as blood pressure, body heat, heartbeat and breath, or active (i.e., controllable) such as finger motion, paddling, and walking. In the following we present a taxonomy of energy harvesting.

2.1 Taxonomy of Energy Harvesting

There are three main metrics for the evaluation of harvesting methods [4, 10, 56]:

  • Conversion Efficiency: This is the amount of energy harvested as compared to the amount of available energy.

  • Energy Harvest Rate: This specifies how fast the energy can be harvested and depends on the type of energy, among other factors. For example, in the case of solar energy, the size of the solar panel or weather conditions (e.g., sunny or cloudy) affect this parameter. On the other hand, in vibrant energy harvesting, the rate of vibration affects the rate of energy harvesting.

  • Power Density: This indicates the amount of power (time rate of energy transfer) per unit volume, measured in \(\frac{Watt}{m^3}\), that a device (harvester or battery) can offer.

The harvested energy is used in two ways:

  • Harvest-Use: In this method when the energy is produced, it is used immediately. An example of this method is pushing a key/button. Pushing produces some energy that can be used to transfer an electronic signal.

  • Harvest-Store-Use: In this method, energy is harvested whenever possible, and is stored for future use. This method is more useful since there is always some energy available if it is consumed wisely. The limitation comes only from the capacity of storage. Most of the studies in the domain of networking use the harvest-store-use method. In these situations, two approaches are taken: (I) finding the required capacity of storage to meet the application requirements; and/or (II) trying to optimize usage of this energy.

More detailed studies describing the energy harvesting taxonomy are available [4, 50, 56]. In the following, we focus on possible energy sources and models of energy harvesting for nanonetowrks.

2.2 Sources of Energy for Nanonodes

Energy harvesting plays a major role in the realization of nanonetworks. Due to the limited size of nanonodes as well as some of their applications in environments with no light (e.g. inside body, in liquids), other energy sources are considered. Mechanical energy (from vibration and motion) and chemical energy are the two main sources of energy nanonodes, especially in biological environments. Thermal energy is not efficient and has downsizing limitations. In the following, we discuss the state-of-art in energy harvesting for nanonodes.

2.2.1 Mechanical-Energy Harvesting

Vibration-based mechanical energy is ubiquitous in environments where solar and thermal energy are not available or accessible. Mechanical vibrations exist in a wide range of frequencies, from a few hertz to several kilohertz, which result in power densities ranging from a few microwatts to milliwatts per cubic centimeter [49].

The harvesting of mechanical energy by piezoelectric materials is the main approach to directly convert mechanical energy into electricity. Traditionally, lead zirconate titanate, or PZT, has been the material mostly used for mechanical energy harvesting. However, issues such as the reliability, durability, and safety of these materials limit their usage for long-term operations. Recently, piezoelectric nanowires (NWs) have shown promise in the harvesting of mechanical energy at nanoscale [18].

Nano-generators (NGs) based on NWs can be fabricated on various substrates, including polymers, semiconductors, and metals, and even on unconventional nonplanar substrates, such as fibers [58]. By weaving bundles of such fibers into fabrics, potential applications such as smart clothes can be imagined. Fiber NGs based on similar configurations have been developed to harvest low-frequency vibrations induced by air, liquid flow, exhalation and the heartbeat of a human body [32]. The human body contains other significant mechanical energy induced by continuous activities, such as breathing and the beating of the heart, and discontinuous motions, such as walking and muscle stretching.

Mechanical energy from vibration and motion is available in many other environments, which makes it an invaluable source of energy in many medical as well as indoor industrial applications for nanonetworks. Table 1 represents some of the potential sources for harvest energying from vibration.

Table 1 Peak frequency and acceleration amplitude for various vibration sources [11, 48, 51]

New generations of piezoelectric-nanowire are sensitive to very low acceleration [60]. Therefore, the main parameter that affects the amount of energy harvesting is the frequency. This means that the variation in the vibration rate will result in a stochastic model for available energy for a nanonode at different times and different locations. Moreover, energy storage in ultra nano-capacitors is a non-linear process. Therefore, the first issue is to understand and model the energy harvesting process where the stochastic and nonlinear behavior of harvesting is included.

Fig. 1
figure 1

Energy harvesting model [23]

In [23], an energy harvesting model has been proposed for storing energy process in an ultra-nanocapacitor by piezoelectric nanogenerators, as shown in Fig. 1. In this model, energy is harvested through vibrations, which produce compress-release cycles of the nanowires on a nano-capacitor. For a specific ultra nano-capacitor, the stored energy is specified by the number of cycles. The energy-harvesting rate (Joules/second) is defined as

$$\begin{aligned} \lambda (E_{cur}, \varDelta E) = \frac{1}{t_{cycle}} \cdot \frac{\varDelta E}{n_{cycle}(E_{cur} + \varDelta E)- n_{cycle}(E_{cur})} \end{aligned}$$
(1)

where \(t_{cycle}\) is the time between cycles, \(n_{cycle}(E)\) is the number of cycles required to generate E Joules, \(E_{cur}\) is the current energy level, and \(\varDelta E\) is the amount of energy increase. We note that if every vibration generates one cycle, then the inverse of \(t_{cycle}\) is the vibration rate.

The amount of power that can be harvested through vibration is compared with other sources of energy in Table 2 in terms of power density. Power density is the amount of power (energy transfer per unit time) per unit volume or surface. Depending on the power source, the power is measured [50] for volume or surface, respectively called volume power density, which is expressed as \(\mathrm{W/m}^3\), and surface power density, which is expressed as \(\mathrm{W/m}^2\).

Table 2 Comparison of power density for various harvesting sources and technologies [51, 60, 61], * = \({\upmu \mathrm{W}}/{\mathrm{cm}^{2}}\)

As can be seen, piezoeletric nanowire provides a significant amount of power density. The limitations in harvesting the energy comes from size limitations for nanonodes (scale of nano to micro meters) as well as the availability of the vibration source. For example, as can be seen from arm motion, power density up to 330 \({\upmu \mathrm{W}}/{\mathrm{cm}^3}\) can be extracted.

2.2.2 Biofuel Cells (BFCs) for the Harvesting of Chemical and Biochemical Energy

A fuel cell converts the chemical energy of a fuel, such as hydrogen or methanol, into electricity through a chemical reaction with an oxidizing agent, such as oxygen or air [16]. In contrast to batteries, in which chemical materials are used to store electrical energy, fuel cells extract chemical energy from reactants and convert the extracted chemical energy into electricity as long as the reactants are available. Although it is a mature technology that has been used extensively at macroscale applications, conventional fuel cell technology has several inherent disadvantages such as the materials used, the fabrication cost, and size restrictions, for the cost-effective solution at the micro and nano scale applications such as implanted biomedical sensors. Therefore, a biofuel cell (BFC) is introduced where it simply uses biological enzymatic substances, rather than metals, to catalyze the anode and/or cathode reactions.

BFCs can be classified into two categories: (I) microbial fuel cells (MFCs), where the catalytic enzymes involved are in living cells; and (II) enzymatic BFCs, where the catalytic enzymes involved are located outside of living cells [19]. MFCs demonstrate unique features such as long-term stability and fuel efficiency. However, the power densities associated with MFCs are typically lower than BFCs [19]. Thus, the application of MFCs at the micro and nano scale is limited. On one hand, enzymatic BFCs are biocompatible and can provide efficient power on order of sub-mWcm\(^{-2}\), which makes them applicable in micro and nanoscale applications such as in vivo biochemical/biomedical applications through the harvesting of biochemical energy directly from the human body. On the other hand, current enzymatic BFCs normally suffer poor stability. Table 3 summarizes the two main approaches of energy harvesting in biological environments.

Table 3 Comparison of energy-harvesting techniques for biological environments

2.2.3 Hybrid Cells for the Harvesting of Biomechanical and Biochemical Energy

Most energy harvesting methods, e.g., biomechanical or biochemical, are developed based on the existence of a certain type of energy source, while the other types of energy were wasted. Moreover, as illustrated in Table 3, the properties of biomechanical and biochemical energy harvesting methods are complements of each other. Therefore, new research directions try to develop innovative approaches for concurrent harvesting of energy from multiple types of sources through the use of integrated structures/materials [58]. This will help the energy harvesting process because at nano scale, the temporal/spatial distribution and availability of energy sources vary drastically [58].

Mechanical and biochemical energy are abundant in the biological environment due to body motion, muscle stretching, and metabolic processes. Therefore, hybrid solutions of these two energy sources are emerging as a new approach for energy supply in biological environments. A hybrid energy scavenger [15] was developed recently, which consists of a piezoelectric nanofiber NG for harvesting mechanical energy, such as from respiration and blood flow in the vessels, integrated with a flexible enzymatic BFC for harvesting the biochemical energy from the chemical processes between glucose and \(O_2\) in biofluids. These two energy harvesting approaches, integrated within one single device, can work individually as well. Studies [15, 44] have demonstrated the feasibility of applying these energy harvesters in building self-powered nanodevices for in vivo biomedical applications to power nanosensors.

2.3 Future

More advancement in energy harvesting downscaling is required to integrate the harvesters from sources such as solar, light and thermal into nanonodes. Currently, energy harvesting from mechanical or biochemical sources are the main approaches to supply energy for nanodevices. These are also applicable for in vivo medical applications. New sources of energy for biochemical energy harvesting are emerging every day. For example, energy harvesting from blood sugar by biofuel cells [37] or from electrical differences in the inner ear [38] are new sources of energy. Moreover, advancements in nanodevices can be helpful in the production of nanoscale RF energy harvesters. Currently, RF energy harvesters are widely used for wireless sensor or RFID networks [45]. With the help of nanotechnology, this could be a significant source of energy, which is also controllable. Moreover, inductive charging [6], which is currently deployed for many medical applications in body area networks, could be investigated. Again, the size limitation is likely the main barrier for its usage at nanoscale.

3 Communication

As the energy for communication is the main part of energy consumption for nanonodes, in this section, we briefly describe the communication model for nanonodes. Two major possible mechanisms are envisioned [1] for communications among nanonodes: molecular communication and electromagnetic communication. The molecular communication is mainly based on the chemical and physical interactions, which have different consumption models and are not yet known completely [46]. Therefore, we focus only on the electromagnetic communication.

3.1 Electromagnetic Communication

Electromagnetic (EM) communication has been proposed [1, 2] as a communication method for nanonetworks. More specifically, pulse based communication in the 0.1–10 THz has been studied. There are several limitations in existing silicon-based manufacturing techniques (e.g., silicon atom size, heating and current leakage) that make the downscaling of existing EM transceivers infeasible [36]. Alternatively, nanomaterials are envisioned to solve part of building a new generation of electronic components that overcome shortcomings of current technology [3]. Carbon Nanotubes (CNTs) and Graphene Nanoribbons (GNRs) among other graphene based materials are expected to be the silicon of the 21st century [30]. The EM properties on these nanomaterials should be evaluated in terms of bandwidth for EM emission, the time lag of the emission, and the magnitude of the emitted power for a given input energy, among others. Ongoing research on the EM emission on graphene are indicating the 0.1–10 Terahertz band (Fig. 2) as the expected frequency range of operation of future nano EM transceivers [24, 52]. In particular, it is determined that a \(1\,\upmu \)m long graphene-based nano-antenna can only efficiently radiate in the Terahertz range. This matches the initial predictions for the operation frequency of graphene-based RF transistors [33].

Fig. 2
figure 2

Frequency bands 0.1–10 THz is suggested for nanonetworks

Communication in terahertz is very sensitive to communication distance. Figure 3 illustrates the path loss at various distances in the THz band. For distances larger than one meter in a gaseous environment with 10% water vapor, path loss exceeds 100 dB. The path loss for 1 cm distance is around 50 dB. As can be seen, the path loss depends significantly on both the distance and frequency. Therefore, the power requirement for various distance and frequencies would vary significantly and should be considered in any communication design scheme.

Fig. 3
figure 3

Path loss in terahertz [21]

3.2 Pulse-Based Communication Model for Nanonetworks

Pulse-based communication [8] is a known method in Ultra-Wide-Band (UWB) networks as Impulse Radio Ultra-Wide-Band (IR-UWB) systems. The pulse-based communication model for nanonodes, based on the model proposed in [2, 23], operates in the 0.1–10 THz frequency band, which results in a micro to millimeter communication range [2, 20]. The main reason for this frequency selection is due to the limitation in antenna size that a nanonode can afford, e.g., 1 \(\upmu \)m. Communication in the THz band presents new channel properties: molecular absorption, thermal effects, and so on [20].

Nanonodes use the pulse-based communication and Rate Division Time Spread On-Off Keying (RD TS-OOK) [25] as the modulation mechanism (Fig. 4). A logical 1 is transmitted as a femto-second long pulse, and a logical 0 is transmitted as silence. RD TS-OOK is a simple modulations, but it is envisioned because more complex modulation (e.g., pulse amplitude, pulse width, pulse rate) used in IR-UWB are not applicable in nanonodes due to the capabilities limitations of nanonodes [25].

Fig. 4
figure 4

RD TS-OOK modulation for transfer of 1011

The duration of each pulse is \(T_p\) and the time between two symbols is \(T_s\), producing a symbol rate of \( \beta = \frac{T_s}{T_p}\). The selection of optimal \(\beta \) is still an open question. It certainly will depend on the hardware capabilities of the transmitter and receiver. Assuming there is no limitation in hardware capabilities, the existence of several flows of symbols from neighbor nanonodes will result in the collision of symbols. Moreover, energy availability is another factor that can affect the design of \(\beta \). Currently, it is assumed that \(\beta \) takes values on the order of thousands.

In OOK modulation, since silence does not consume energy, any scheme that could produce fewer 1s is preferred. For example, using code weight [22] has been proposed [23] to reduce energy consumption. The code weight basically reduces the number of 1s by adding extra bits so that data is coded in a way that a fewer number of 1s are present in the coded bits. This results in less energy in transmission and higher energy in reception. Reception of either a 0 or 1 costs the same energy, so sending more bits results in higher energy consumption for the receiver. Energy savings could happen only if the energy for reception is lower than transmission, which is the typical case in wireless transmission and has been shown in [23, 25]. Moreover, the code weight will not necessarily save energy in broadcast or multicast scenarios. Not only should the optimum value for this trade-off be identified, but other methods of coding information regarding the limitation of nanonodes are also of interest.

Since the transmission of 0s in RD TS-OOK pulse-based modulation is equal to silences which do not consume energy, the lower code weight can reduce the energy consumption. Moreover, the code weight can lower the collisions since fewer 1s, which are the only pulses that can face collision, are transmitted. A code weight of 0.5 means that, on average, there are an equal number of 1s and 0s in the packets. A lower weight, such as 0.4, means that there are fewer 1s. However, it also means that more bits should be used to send the same of amount of information. For example, Table 4 shows how the number of 1s for sending two bits of information could be reduced by using three bits. The code weight in this example is decreased from 0.5 to 0.25.

Table 4 Code weight example

As a more realistic example, for sending \(n=64\) bits of information with a code weight of 0.4, at least \(a = 6\) more bits will be added to each packet. In this case, the total number of encoded bits would be \(m = 70\) and the number of 1s, denoted as u, is less than or equal to 28.

To make sure that, for a target code weight, there are at most u 1s independent of the original bit values, for n bits of information, the \(\frac{m!}{(m-u)!u!} \ge 2^n\) condition must be satisfied [22], where m is the total number of bits, a is the number of additional bits, and \(m = n+a\).

The method to determine the additional number of required bits is as follows. First, for a specific code weight W, u is specified as

$$\begin{aligned} u = \lceil W \cdot m \rceil , \end{aligned}$$
(2)

and the following condition must be satisfied with the minimum a, where \(m = n+a\).

$$\begin{aligned} \frac{m!}{(m-u)!u!} \ge 2^n \end{aligned}$$
(3)

Note that sending fewer 1s consumes less energy in the sender while it consumes more energy in the receiver. Energy is consumed when receiving any bit, 0s or 1s. Decreasing the code weight necessarily increases the packet size, increasing the cost to the receiver. Depending on the packet length and the ratio of energy required for reception to that for transmission of a pulse, named as \(\alpha \), the code weight may or may not save energy in total. Here, the assumption is that \(\alpha \) is small, say 0.1; therefore, the aim is to find the optimum values for packet length and code weight, which we address in Sect. 5.

The probability of collision between symbols is extremely low due to the fact that there can be no collisions for 0 symbols (silences) and that the length of \(T_s\) is much longer than \(T_p\) (typically 1000 times larger). However, unlike other frequency ranges of electromagnetic signals, there is molecular absorption noise, for example \(10^{-4}\) bit error rate (BER) for 10% water vapor. To mitigate the effect of these problems, repetition and code weight techniques have been proposed in [22, 23].

Repetition is a simple mechanism for error detection and correction. In this method, the sender simply repeats the symbol several times, typically 1 to 9 times. For example, in 3-repetition, a 1 would be transmitted as 111. In this case, if one or two of these 1s were not received, the problem could be detected at the receiver, and the information (i.e., a bit of 1) would still be received. Although it is not the most efficient method, it is the simplest. Other methods for coding and error detection and correction are being investigated [5, 31].

4 Modeling of Energy Harvesting and Consumption

Modeling of energy harvesting and consumption has been the topic of research in other networks such as sensor and RFID networks. In this section, we first give an overview of existing models. Then we discuss the lack of models for nanonetworks. A recent model for nanonetworks that incorporates some of the properties of nanonetworks is introduced at the end of this section.

4.1 Models for Other Networks

There has been much previous works on modeling energy harvesting (see for example [12, 53]). In [53], energy harvesting and energy consumption is modeled as a queuing system, and based on stationary analysis, a transmission strategy is proposed to optimize the throughput of a sensor node. This model considers only one node and the energy required for transmission. It also assumes that the data buffer and energy storage are infinite, which may not be the case in many situations such as nanoscale nodes. In [12], the best spending rate of energy consumption for a node/link is derived through optimization and lexicographic frameworks. The authors developed an algorithm for predictable energy inputs as well as stochastic models. The model has been evaluated in a network of RFID active tags.

Models and algorithms for energy harvesting and consumption could be categorized in various aspects as follows [12]:

  • energy model profile: Several parameters such as energy source (e.g., solar, vibration, RF) and environment (e.g., indoor/outdoor, vibration rate, temperature) can produce different energy model profiles. Predictable, partially predictable, stochastic, and model free are known categories that have been identified and studied [4, 56].

  • ratio of energy storage capacity to energy harvested: This parameter specifies how fast the energy storage is filled. It depends both on the capacity of energy storage and the availability of energy. In other words, it connects the energy harvesting rate to power density.

  • time granularity: This specifies the timescale of decision making and design schemes, algorithms, and protocols. The timescale can be in the range of seconds to days. It is related to the storage-harvesting ratio as well as the energy profile model. The higher the time granularity, the more accuracy is required of a design. This is important in applications where there are QoS requirements for data transfer.

  • problem size: When solving any problem for efficient energy harvesting, the design can be evaluated in the domain of a node, pairwise nodes (link), or network wide (e.g., routing).

In the following, we describe some literature that model the energy harvesting process. Table 5 compares the works based on various design aspects. These models can be categorized into two general types: lexicographic and stochastic.

Lexicographic Footnote 1: In [12] a solar power model for active tag RFID nodes is proposed, which operates based on various time fair energy allocations for both predictable energy inputs as well as stochastic inputs. Here, the authors provide some real environment measurements, and develop a prediction model for energy arrival. Next, they use the lexicographic maximization and utility maximization framework for modeling the energy spending rate, and achieve fair allocation of resources among nodes over a one day duration. Considering a stochastic energy arrival, the authors claim that, based on a developed Markov Decision Process, an optimal energy spending policy can be achieved for a single node or link. In [34], a fair and high throughput data extraction as well as a routing path solution among all nodes is designed, where the energy model is developed for solar power. They develop a centralized solution and two distributed solutions. The main idea is to adapt the extraction rate (sensing and sending rate of information) based on the available energy. A rate assignment for data transfer is found through lexicographical optimization. Even though the strength of the scheme is that it is independent of the energy arrival profile, the optimization solution works only on a large time scale, i.e., a day.

Stochastic: The energy arrival and consumption as a G/G/1 queue is modeled in [53]. After finding the stationary state of the model in some specific conditions, this model attempts to find the optimum throughput (largest possible data rate of packets) based on energy management policy, and also minimizes the delay of packets in the buffer. The optimization model is called \(\alpha \)-discount optimal and is developed based on the stationary state of Markov model. The main weakness of this model is that it assumes that the energy buffer and the data buffer are infinite. The goal of the scheme developed in [29] is to achieve the highest data rate that results in a long term optimal solution. The advantage of the scheme is that it requires no explicit knowledge of the energy harvesting profile or traffic generation process. In fact, it is a learning system that adapts itself based on the environment (i.e., available energy) and network circumstances. This scheme works at the node level as well as at the network layer. This work is limited to analysis, with no simulation or test-bed results. In [35], on the other hand, an optimized training model is developed for a transmission policy that specifies the energy spending based on channel state information (CSI). This model also assumes an infinite buffer level. Finally, in [59], a model is proposed for evaluating the stochastic properties of energy harvesting while evaluating the network performance, such as satisfying a soft QoS. However, it is not clear how efficient the model would be.

Table 5 Comparison of energy harvesting and consumption modeling

There is additional works in the literature involving stochastic modeling of energy consumption that focus on other aspects of energy harvesting. For example, a stochastic optimization framework is proposed in [9] for modeling the stochastic behavior of the channel while achieving the best policy on transmission and energy consumption. In [28] the duty cycle of sensor nodes is modeled, assuming that nodes cannot harvest energy and communicate simultaneously. Therefore, nodes are switched between active and passive states. The goal is to optimize the timing of sleep/awake to maximize a utility function, such as throughput.

4.2 Model for Nanonetworks

As discussed in Sect. 4.1, many models have been developed for energy harvesting and consumption in other networks. However, there are special characteristics of nanonetworks that necessitate the development of new models for the evaluation of energy consumption and harvesting processes. More specifically, unlike other networks, the granularity of the energy harvesting rate in nanonetworks is slower than the energy consumption rate (Fig. 5). In other words, it means that the energy that it takes a couple of seconds to harvest can be consumed in a couple of picosconds. For example, it can take up to 5 min to harvest energy to transmit only a small packet [23]. Moreover, new harvester elements such as nanowires present different behaviors than previously studied models, such as photovoltaic or electrostatic cells. In addition, new sources of energy are emerging. For example, energy harvesting from blood sugar by biofuel cells [37] or from electrical difference in the inner ear [38] are new sources of energy with unique properties. Furthermore, nanocapacitors represent a nonlinear behavior as compared to most battery-based models. All such properties mandate the need for novel models of energy harvesting and consumption for nanonodes.

Fig. 5
figure 5

Comparison of timescales between harvesting and consumption of energy

A model for the joint evaluation of energy consumption and harvesting in nanonetworks has been proposed in [23]. The model can be used to determine the energy status of nanonodes, and consequently, to evaluate the performance of nanonetworks. A continuous time Markov process, as illustrated in Fig. 6, is developed, where states represent the level of energy, \(\lambda _{i}\)s represent the harvesting rates, and \(\mu _{i}\)s represent the consumption rates. In the first state, the nanonode does not have any energy to receive or transmit a packet, and in the last state, the nanonode’s energy storage is full. The model considers Poisson models for the energy arrival and consumption. Energy is harvested by a nanogenerator through the vibrations of nanowires and is stored in an ultra nano-capacitor with a nonlinear storage behavior.

Fig. 6
figure 6

Markov model for the joint process of energy harvesting and consumption

The nanonodes are assumed to be in a grid, and transmit the received packets from their neighbors in addition to their own generated packets. The authors model the joint process as a continuous time Markov process, where the steady states of the system represent the energy level probability distribution of each nanonode. This metric is later used to evaluate the delay, throughput, and the probability of successful delivery of packets. However, this model does not evaluate the effect of various parameters to find the optimal performance. To be specific, several parameters are introduced in the modeling of energy harvesting and consumption that can affect the optimum energy utilization of a nanonode. The authors in [23] argue that using code weight can save energy in transmission since the lower the code weight, the lower the energy for transmission. However, a deeper look shows that the selection of optimal code weight depends on the energy ratio of reception to transmission of pulses as well as topology (i.e., number of neighbors). Moreover, the optimum packet size is dependent on code weight. Finally, the effect of code weight and repetition on communication reliability in combination with energy consumption needs to be considered. Section 5 shows how to find an optimum combination of these variables through solving an optimization problem. Moreover, the scheduling of packet transmission, which is assumed to be Poisson, can be modified to utilize the energy more efficiently. We describe this in more detail in Sect. 6.

4.3 Summary

To summarize, most energy harvesting models, developed so far in other domains such as sensor networks, are not applicable for many reasons. First of all, each of the stochastic-based models has assumptions such as unlimited energy buffer that cannot be used in nanonetwork scenarios. Second, they mainly assume a linear model for charging their energy storage, while energy storage for nanonodes follows non-linear models. Third, new energy sources such as ambient vibration are less studied. Also, models that are independent of energy sources are not applicable due to their very generic modeling. Moreover, most models do not include consumption and harvesting at the same time. Even if they do, they are not built on pulse-based communication characteristics. Therefore, it is not possible to evaluate the model for different parameters such as packet length, traffic model, etc. Table 6 summarizes the differences between previous work and the two models for nanonetworks [23, 41]. As can be viewed, the model in [23] has many limitations in the stochastic energy arrival model and network traffic model, among others. The model in [41] is a more general model and addresses optimization issues also. This model will be discussed in more details in Sect. 6.

Table 6 Comparison of energy harvesting and consumption models—Y = Yes, N = No

5 Optimizing Energy Consumption Factors

As described in Sect. 4, various parameters can affect the model of energy harvesting and consumption. Particularly, the packet size, code weight, and repetition can affect the amount of energy consumed. Repetition and code weight should be selected in a way that provides an efficient bit rate. Therefore, finding the optimum design point between the energy usage efficiency and bit rate efficiency is the challenge that is addressed in this section. We first provide an overview of a model, previously developed in [40], that can find the best combination of these parameters. Then, we show how the best answer could be selected among a list of candidates when traffic load and utilization are taken into account. More details about the model and results can be found in [40].

5.1 Optimization Model

Multi-Objective Combinatorial Optimization (MOCO) is a special form of Multi-Objective Optimization (MOP) [7], where variables can take discrete values. In a MOP/MOCO problem, several functions need to be optimized at the same time. In our problem, the functions to be optimized at the same time for the packet size (N), repetition (R), and code weight (W) variables are defined as follows.

$$\begin{aligned} Min_{v} \,&{[f_1(v),f_2(v),f_3(v),f_4(v),f_5(v)]} \\&\textit{s.t.} \\&g_1(v) \le 0 ,\\&g_2(v) \le 0, \\&v= [N , R,W ] ,\\&W \in (0.15:0.05:0.5), \\&R \in (1,3,5), \\&1 \le N \le 2500 \, . \end{aligned}$$

The first function is energy consumption, that is, the energy consumed for transmission (\(E_{packet-tx}\)) plus reception of a packet (\(E_{packet-rx}\)) by all the G neighbors with N bits data.

$$\begin{aligned} f_{1}&= \frac{E_{packet-tx} + G \cdot E_{packet-rx}}{N} . \end{aligned}$$
(4)

The energy required for the transmission and reception of a packet can be computed as follows [23]. For a packet of size N bits, the energy consumed when transmitting and receiving a packet with code weight W are respectively given by

$$\begin{aligned} E_{packet-tx} = N \cdot W \cdot E_{pulse-tx} , \end{aligned}$$
(5)
$$\begin{aligned} E_{packet-rx} = N \cdot E_{pulse-rx} , \end{aligned}$$
(6)

where \(E_{pulse-tx}\) and \(E_{pulse-rx}\) are the energy consumed in the transmission and in the reception of a pulse, respectively.

After substituting (5) and (6) in (4), we can write:

$$\begin{aligned} f_{1}&= \frac{E_{packet-tx} + G \cdot E_{packet-rx}}{N} = \frac{ m' \cdot W \cdot E_{pulse-tx} + G \cdot m' \cdot \alpha \cdot E_{pulse-tx} }{N} \\&= \frac{ m' \cdot E_{pulse-tx}}{{N}} \cdot (W + G \cdot \alpha ) , \end{aligned}$$

where \(\alpha \) is the ratio of energy for pulse reception to transmission, G is the number of neighbors, W is the code weigh. The value of \(m'\) is equal to \(N+ a\), where a is the number of additional bits added to N that enables coding with code weight W.

The value of \(E_{pulse-tx}\) is set to 1 picoJoule (pJ). We developed the model in the general form that there are G neighbors. Therefore, it would cover most unicast or broadcast scenarios where the packet will be received by one, some, or all of the neighbors. Moreover, a preamble or handshake method could be deployed to avoid reception of packets by all neighbors when it is not targeted for them. This objective function is set to be minimized, which means that the total energy that is consumed for transmission and reception per bit of information should be minimized.

The second objective function concerns delay. Since N is larger than the information generation rate, the packet would contain several pieces of information together to avoid the overhead of packet transmission. However, this increases the delay in transmission of information. For example, if information is generated at 10 bits per second and the packet size is 1000 bits, it means that it will take 100 seconds to prepare a packet. This may be acceptable for non-real time applications, or when the rest of the packet can be filled with neighbors’ forwarding data, or can just be left empty. However, in our model, we are assuming that packets only contain information generated from one node. The simplest way to define the delay function is to model it in a linear relation with packet length, N. However, if delay has higher importance, the function could be modeled as a higher degree polynomial function of N.

$$\begin{aligned} f_{2} = {N} \, . \end{aligned}$$
(7)

This function is set to be minimized.

The third objective function associates the chance of bit error rate with code weight. A lower code weight means the transmission of fewer 1s, which results in a lower probability of absorption as well as collision between 1s.

$$\begin{aligned} f_{3} = W \, . \end{aligned}$$
(8)

This function is set to be minimized.

The optimization problem can be formulated with only the \(f_1\), \(f_2\) and \(f_3\) functions, if repetition is not required to be considered as a variable. This could be the case if it is known that the environment would not affect the pulses significantly and it is better to repeat the entire packet in case of error rather than consume energy with the repetition of symbols. However, we define two objective functions for repetition in order to have a comprehensive model.

The following function shows the effect of repetition. The higher the repetition, the higher the chance of error detection and recovery.

$$\begin{aligned} f_{4} = \lfloor \frac{\frac{R-1}{2}}{R} \rfloor \, . \end{aligned}$$
(9)

On the other hand, lower repetition means fewer bits and less energy consumption.

$$\begin{aligned} f_{5} = \frac{N}{R} \, . \end{aligned}$$
(10)

The function \(f_5\) shows the efficient bit rate when repetition is used, and it should be maximized.

The constraint functions would be

$$\begin{aligned}&g_{1} = m' \cdot W \cdot E_{pulse-tx} - E_{max} \le 0 \, , \\&g_{2} = m' \cdot E_{pulse-rx} - E_{max} \le 0 . \end{aligned}$$

This means that the energy for transmission or reception of one packet cannot exceed the maximum energy capacity of the node, \(E_{max}\).

As stated earlier, the bounds on the variables of the problem are defined as follows:

$$\begin{aligned}&W \in (0.15:0.05:0.5) \, ,\\&R \in (1,3,5) \, \text { and} \, \\&1 \le N \le 2500 \, . \end{aligned}$$

Since this is a combinatorial problem, the bounds are actually the set of valid values that can be assigned to variables, i.e., W and R. For N, in addition to the bounds, the values should be discrete.

The output of a MOCO would be a set of Pareto optimal points. Typically, the selection of one point depends on the application and context that a decision maker is facing.

5.2 Simulation

We solved the above MOCO problem with the optimization toolbox of MATLAB. We ran the optimization with different values for \(\alpha \), G and repetition to show the effect of these parameters on the points that are selected as optimum. The results for two scenarios are presented in the following subsections. The results of additional scenarios can be found in [40]. Note that Pareto optimal points are not unique and can even be different in several runs. However, the results that are presented here have a similar pattern for all runs, and different runs give only non-significant bit differences in packet size.

5.3 Scenario 1 (G \(=\) 1, \(\alpha =0.1\), Repetition \(=\) 1)

In this scenario, we set G to 1 and use no repetition. This scenario will evaluate the case of transmission between two adjacent nodes when broadcast will result only in reception by one neighbor. The value of \(\alpha \) is set to 0.1, based on the numerical values in [25] and modeling in [23].

Fig. 7
figure 7

Pareto point and function values for scenario 1

Figure 7 shows the Pareto optimal points that are selected. This scatter plot represents the value of first and second objective functions for each of the Pareto points. The code weight and the packet length for each of the points is presented in the legend. Recall that the first objective function tries to minimize the amount of consumed energy per bit, and, the second function, minimizing delay, is related to the packet length. Each of these points dominates another in one of the two objective functions. Therefore, depending on design priority, any of these points can be selected as the optimal solution. For example, if the priority is energy consumption, one of the points in lower-right of the chart could be selected. If delay has priority, one of the points in the left side of the chart would be the choice.

Figure 7 illustrates that various packet lengths are selected. A deeper look at the selected code weight for these points shows that all of them are equal to 0.15, which is the minimum code weight. It means that with this setting for G and \(\alpha \), it is better to choose the minimum code weight that is available.

Figure 7 also shows that the difference in terms of efficient energy per actual information bit, \(f_{1}\), is not significantly different among all the optimal points. This observation can be confirmed by the fact that for a selected code weight, usually the ratio of additional bit rate to actual bits, i.e. \(\frac{a}{N }\), illustrated in Fig. 8, is almost the same for each code weight independent of N.

Fig. 8
figure 8

Additional bit overhead for various code weights

Figure 8 also shows that the overhead from code weight generally does not depend on the length of data. The figure illustrates data lengths that are in the range [1..1000] bits. Outliers occur when the number of original bits are very small, i.e., less than 10 bits, but these short data lengths are not applicable for packet transmission.

5.4 Scenario 2 (G \(=\) 4, \(\alpha = 0.1\), Repetition \(=\) 5)

This scenario evaluates the effect of repetition in combination with a higher number of neighbors (from one to four). The maximum repetition and \(\alpha \) are set to 5 and 0.1, respectively. In this scenario, the optimal points, as illustrated in Fig. 9, are selected from almost all ranges of code weight and repetition. However, packet length values are mainly chosen from very short or very large packet sizes. The reason is that when a short packet size is selected, the energy bit efficiency and delay will be the dominant functions. On the other hand, for large packet sizes, code weight will be the dominant factor that leads to lower average energy per bit.

Fig. 9
figure 9

Pareto point and function values for scenario 2

6 Open Issues and Challenges

As the harvester’s size is reduced, and possibly energy is harvested from new sources, there are other issues and challenges to be investigated in the domain of energy harvesting for nanonetworks. First of all, as shown in Sect. 4, there is a need for new models of energy harvesting and consumption, based on the characteristics of nanonetworks. In addition, the optimization of energy consumption remains an open issue in several aspects. Furthermore, protocol design in an energy harvesting context and with nano scale properties is an open question. We describe these issues in the following subsections.

6.1 Optimization of Energy Consumption

The optimum usage of harvested energy is a main challenge to be addressed in nanonetworks. The optimum usage of energy can be related to increasing the throughput, decreasing delay, or increasing reliability.

The goal of optimization is to develop energy-harvesting-aware [17] rather than energy-efficient methods. We should emphasize that energy harvesting-aware is different from energy-efficient. In energy-efficient methods, the energy budget is limited and the available energy over the total period of problem modeling should be optimized. However, in energy harvesting-aware methods, the decision about the situation depends on the amount of available energy at the moment, and the prediction of energy arrival. Therefore, the optimum use of energy needs a different model.

In an initial effort on optimization of harvested energy in wireless sensor networks, Energy-Neutral Operation (ENO) [17, 27] is defined as how to operate such that the amount of energy used is always less than the amount of energy harvested. This concept estimates battery size based on an average approach for the rates of energy harvesting and consumption, where energy storage is not 100% efficient and there is energy leakage. Also a power management system is developed to optimize the harvested energy. An exponentially weighted moving-average (EWMA) filter is used to predict the arrival of energy at each time slot based on previous time slots, and then compute the consumption rate based on the prediction. In the next time slot, the prediction is adjusted based on real values.

Additional literature in wireless sensor networks and RFID networks (e.g., [12, 13, 34, 43]) follow the idea that the optimization of energy consumption in perpetual networks is different from typical battery-based networks. However, they do not address the problem in a way that is suitable for nanonetworks. In [34], the authors focus on consumption for data collection, not energy consumption for communication. In [43] the problem of optimization is described, when energy arrivals are stochastic. However, the authors develop their solution based on a historical prediction model of energy arrival, not an exact probability distribution function. In [12, 13], a stochastic model is considered which maximizes the data rate and smoothing consumption for a discrete distribution of energy arrival. Moreover, the model does not behave based on the stochastic arrival of energy. Therefore, nodes can be out of energy for unknown amount of time. Therefore, these methods are not applicable for nanonetworks.

A model for optimum energy consumption for nanonetworks has been proposed in [41]. Knowing the model for energy harvesting, the problem of finding the optimal usage of the harvested energy can be investigated. In fact, with optimum rates, a better data rate can be achieved as compared to fixed consumption rates. Intuitively, it is better to consume more if more energy is harvested and vice versa. Energy should be always available in order to avoid node failure and consequently lack of communication. In this case, the question is: what are the optimal rates of energy consumption? If the harvested energy is not consumed optimally, a node will miss some energy that it could have harvested. This, for example, can occur if a conservative policy (i.e., minimum consumption rate) is used. On the other hand, an aggressive strategy will create nodes with low energy levels which will lead to many failures in packet transmission. A comparison of various strategies can be found in [41]. Moreover, an optimal model is defined. The current amount of energy and the harvesting model determine the optimal energy consumption policy. It is a challenging problem since energy arrival follows a stochastic process. Moreover, finding the packet size and/or the feasible transmission rates to satisfy the optimal rates make the problem more difficult. Using a variable packet size, which has some overhead, is another option that can be investigated.

An optimal energy allocation policy should consider these requirements. First, the energy that is consumed cannot be more than the harvested energy. Since the amount of harvested energy follows a stochastic process, the consumption process should consider it when the optimal policy is designed. Second, a conservative policy is not an optimal policy since it is not acceptable to have energy harvested that cannot be stored due to a full battery. Therefore, it is more important to make the best use of harvested energy rather than to minimize the energy consumption.

In the current state-of-the-art for energy harvesting at nanoscale, the rate of energy consumption is much higher than the rate of energy harvesting. Moreover, limited energy storage (ultra-nanocapacitor/nanobattery) capacity as well as limited queuing space for packets makes the problem more challenging. Thus, these constraints should be taken into account for modeling and optimization of the energy harvesting processes.

Given that nanonodes may be in unknown environments, at least in terms of available energy for harvesting, they need to understand their environment. Moreover, optimization models to maximize the utilization of harvested energy typically result in computationally expensive schemes. Since the processing and memory resources are limited at nanonodes, the optimum solutions should be designed as offline solutions. Another approach to consider is to develop light-weight heuristic methods with near-optimal performance [41].

6.2 Energy Harvesting-Aware Protocols

After the optimum energy consumption design, energy harvesting-aware protocols need to be developed. Medium access design is the main issue that needs to be addressed. Not only do the MAC protocols for nanonodes need to be harvesting-aware, but they also have to be designed based on other characteristics of nanonodes, e.g., limited capabilities, pulse-based communication, and the large scale of the nanonetwork. Some pulse-based MAC protocols have been developed for UWB networks [14] that may have the potential to be used in nanonetworks. However, characteristics of the THz band, as well as the limited processing capabilities of nanodevices, are the major factors that can lead to the need for the redesign of protocols for the networking of nanonodes.

Similar to reasoning about the need for new models of energy harvesting in nanonetworks, energy harvesting-aware protocols need to be customized and may even be newly created. Pulse-based communication in the THz band, the unique properties of energy harvesting and consumption for nanonodes, and the capability limitations due to size constraints are the main factors that mandate the development of novel energy harvesting-aware protocols.

Recently, some energy harvesting-aware MAC protocols have been proposed for nanonetworks. One such proposal [26] exploits the benefits of novel low-weight coding and chooses the optimal value of code weight and repetition. The performance of the proposed protocol is analytically studied in terms of energy consumption, delay, and achievable throughput, using models of the Terahertz channel (path-loss and molecular absorption noise) and interference. However, the feasibility of the protocol implementation and an energy efficiency evaluation of the method are still open issues. Later, in [57] an energy harvesting-aware and light-weight MAC protocol has been proposed. The aim of the protocol is to achieve fair throughput and optimal channel access among nanosensors which are controlled by a nano-controller. Towards this end, the critical packet transmission ratio is defined, which is the maximum allowable ratio between the transmission time and the energy harvesting time, below which a nanosensor can harvest more energy. However, the focus of the work is on the scheduling of packet transmissions by the nanocontroller, rather than energy aspects.

An energy harvesting-aware MAC protocol (RIH-MAC) is proposed in [42], where nanonodes communicate based on a receiver-initiated mechanism. The advantage of the protocol is that through a receiver-initiated mechanism, harvested energy is utilized more efficiently because the transmitter and receiver spend their energy wisely to maximize the probability that both the transmitter and receiver will have energy for communication. RIH-MAC can be used either in a centralized network topology or in an ad hoc formation of nanonodes, i.e., a distributed network topology. Distributed RIH-MAC protocol exploits a distributed edge-graph coloring scheme to facilitate a coordination among nanonodes to access the medium. Furthermore, RIH-MAC adapts to various energy harvesting rates. These protocols are the first steps towards energy harvesting-aware protocols for nanonetworks. More protocols for the MAC layer as well as upper layers remain open for further investigation.

7 Summary

In this chapter, we introduced a taxonomy of energy harvesting. Recent advances in nanomaterials have enabled the development of nanoscale harvesters such as nanogenerators. Nanonodes are expected to harvest their required energy mainly from mechanical and chemical sources. Harvested energy is consumed for communication in the THz band among nanonodes. Modeling the joint process of energy harvesting and energy consumption is required to understand the special characteristics of this process due to the nanoscale properties of harvesting process, a new communication model, and limited energy storage. Next, the optimization of the consumption of the harvested energy needs to be studied. Development of energy harvesting-aware protocols and maximizing the utilization of energy are the main approaches to optimize energy consumption.