Abstract
Recently, energy harvesting has been emerging as a promising technique to prolong the lifetime for wireless sensor nodes. Most existing efforts address the design of energy harvesting and sensor node subsystem separately or ignore some real-world constraints. In this paper, we study how to codesign the two subsystems and how to jointly manage energy harvesting,
storage, and usage. We first propose a novel system architecture for energy harvesting which employs several supercapacitors to eliminate the conflicts on charging and discharging among different system components. Then, we present a method to schedule their charging and discharging, which is proved to be able to guarantee zero waste of the harvested energy if the battery is not full. Third, we propose an optimal algorithm to minimize different components’ capacity and two heuristic algorithms to maximize the system reward. We conduct extensive experiments based on real-life data traces. Results show that the proposed system architecture can harvest more energy compared to the state of the art, and the capacity optimization algorithm can choose the most suitable size for each system component.
1. Introduction
In recent years, more and more wireless sensor nodes have been integrating into real-world applications such as habitat study [1], environment or ecology monitoring [2], and structural health monitoring [3]. Traditional battery-powered sensor nodes are notorious for their limited lifetime. It is usually very expensive or even infeasible to replace their batteries after deployment. Energy harvesting has been emerging as a promising technique for such long-term applications [4–7]. This technique refers to harvesting energy from ambient energy sources (including solar, wind, thermal, and vibration) and converting it to usable electrical power to feed sensor nodes. This paper studies an important open problem of how to codesign the energy harvesting and sensor node subsystems and how to jointly manage energy harvesting, storage, and usage among different system components.
Most existing works address the design of the two subsystems separately. They either manage the power consumption of nodes without considering the scale or operations of the harvesting subsystem (e.g., [8, 9]) or confine themselves to devising different architectures or implementations for energy harvesting with a little consideration of the management of nodes’ power usage (e.g., [10–12]). This will cause energy under- or overprovisioning for the system, which results in problems such as energy inefficiency and lower utilization of the harvested energy. Some works have studied joint design of the two subsystems but ignored some real-world constraints for either one [13, 14]. For example, they ignore how fluctuations in energy harvesting impact the energy usage. This may cause system halts in real-world applications. In this paper, we present a holistic solution to solve these problems. We list our contributions as follows.
First, we propose a novel system architecture 3SC, which eliminates the charging-discharging conflicts among different system components. This paper considers photovoltaic (PV) solar energy harvesting. The converted electrical energy is buffered by energy storage components including supercapacitors and batteries. However, these storage components cannot charge and discharge at the same time [15, 16]. If they all start charging together, the sensor node subsystem will halt due to no available power supply. To solve this problem, 3SC employs three supercapacitors between solar panel and batteries/sensor nodes. They behave as chargers (or dischargers) at different time instances.
Second, we present a charging and discharging scheduling algorithm named CDSA. CDSA makes wise decisions on how to choose energy storage component for the harvested energy to flow to and when should charge or discharge the component. The algorithm is proved to be able to guarantee zero waste of the harvested energy if the battery is not full.
Third, the design of energy harvesting sensor nodes is a three-player game among energy harvesting, storage, and usage. Energy storage components with small capacity may be enough to power up sensor nodes for a location with abundant solar resource and vice versa. On the other hand, to adapt to short-term variations of the harvested energy, we can also adjust the power needs of sensor nodes by tuning tasks’ execution. We propose several algorithms to address the problem of how to achieve a match among solar resource, components’ capacity, and power needs. An optimal algorithm COA is designed to minimize each component's capacity. Two heuristic algorithms (L2U and U2L) are developed to optimize the system reward if tasks are of different importance. We conduct extensive experiments using real-life data traces and results show the effectiveness of our design.
The rest of paper is organized as follows. Section 2 introduces the related work. Section 3 describes the novel system architecture for energy harvesting sensor nodes. Section 4 proposes a charging and discharging scheduling algorithm based on the proposed architecture. Sections 5 and 6 present several algorithms for system components’ capacity optimization and system reward maximization. Section 7 shows experimental results. Section 8 concludes the paper.
2. Related Work
2.1. System Architectures and Charging/Discharging Scheduling Algorithms
There have been a number of works on the design of energy harvesting system architectures and charging/discharging scheduling methods. The authors of [10] present a system named Prometheus that combines positive attributes of the supercapacitor in terms of charging/discharging cycles and the lithium batteries for their high energy density and low leakage. In addition, a charging/discharging scheduling driver for Prometheus is proposed to prolong its lifetime. In [11], an autonomous energy harvesting platform named AmbiMax with a battery and a reservoir capacitor array is proposed and a simple charging/discharging management is designed according to voltages of capacitors and batteries. In [12], a battery-supercapacitor hybrid accumulator architecture is proposed and a charging/discharging management algorithm based on finite state machine is designed to extend the lifetime of batteries. Reference [13] proposes a unified joint rate control and power management framework. Reference [14] proposes a hybrid energy storage system with one Li-Ion battery and two separate supercapacitors connected by a DC bus and then designs a budgeting heuristic algorithm to assign energy for executing tasks and charging battery. In [17], hypoenergy (hybrid supercapacitor-battery power-supply optimization for energy efficiency) is introduced, which aims at maximizing the battery's lifetime. Reference [18] proposes a photovoltaic-thermoelectric hybrid power system, in which the energy management is to improve the energy efficiency and reliability. Reference [19] designs a real-time task scheduling framework based on the energy harvesting system, which contains a solar panel and a supercapacitor. And there are some other researches, for example, [20–24]. But these previous works do not consider how to eliminate the conflicts on charging and discharging among different system components and how to avoid wasting harvested energy.
2.2. Minimizing System Components’ Capacity and Maximizing the System Reward
For minimizing components’ capacity in energy harvesting systems, the related work is as follows. The authors of [17] design a heterogeneous supercapacitor bank and choose the supercapacitors’ capacity so as to minimize the supercapacitor leakage. In [25], the system designers sweep the components’ capacity to determine the system architecture that meets their requirements. Reference [26] focuses on stand-alone PV-H2 systems and develops a systematical method to select the sizes of the PV panel, the electrolyzer, H2 tanks, the fuel cell, and the battery. Reference [27] presents that the size of the battery should be overrated with a factor to extend battery lifetime and analyzes the effect on the factor for the volume and mass of system components. In [28], in order to satisfy system requirements, the designer chooses the sizes of energy system components based on the Pareto curve that relates energy storage to energy generation.
Reference [29] focuses on the reward of the system with multiversion tasks, in which a task has multiple versions and each version corresponds to a reward value that shows the importance for systems. Then a heuristic algorithm is proposed to maximize the system reward under time and energy constraints. Reference [30] is the first work to maximize the system reward for energy harvesting systems with predictable energy sources. The authors design polynomial-time algorithms to solve this problem for systems with continuous service levels and prove that the polynomial-time algorithms are optimal. Then, in [31, 32], the same authors extend these algorithms to the system with discrete service levels and more application scenarios. Reference [33] is based on decomposable and combinable tasks. The reward optimization problem is modeled as the bounded Knapsack problem, which is solved using dynamic programming.
However, the system models of previous works are not the same as ours; therefore the related work about minimizing components’ capacity and maximizing system reward cannot be used without modification in this paper.
3. System Architecture
In this paper, we adopt the harvest-store-use architecture, which is the most popular architecture for sensor nodes [5]. We choose the solar energy as our energy harvesting source. Rechargeable batteries and supercapacitors are two choices for energy storage. Rechargeable batteries have a higher energy density than supercapacitors, while supercapacitors have a higher power density and more charging/discharging cycles than batteries. Recent research works have illustrated that the battery-supercapacitor hybrid energy system is the best choice for energy harvesting sensor nodes. So we adopt this battery-supercapacitor hybrid architecture in our system. However, existing battery-supercapacitor hybrid architectures (e.g., [12, 14]) cannot eliminate the charging-discharging conflicts among different system components, which will cause the intermittency of power supply. To address this problem, we design a battery-supercapacitor hybrid system architecture, which we name 3SC (shown in Figure 1).

Our proposed system architecture 3SC.
3SC is composed of one rechargeable battery, one solar panel, one sensor node subsystem, and three supercapacitors. Supercapacitors store electrical energy generated by the solar panel and transmit electrical energy to the sensor node or the battery. Each supercapacitor can play multiple roles: (1) receiving energy from the solar panel, (2) charging the battery, and (3) powering the sensor node subsystem. But a supercapacitor cannot play more than one role at the same time. The roles of several supercapacitors can switch with each other. If the energy stored in supercapacitors is not enough to power the sensor node subsystem, the battery will supply energy to power it. We can see that supercapacitors are related to all of other system components. Moreover, (1), (2), and (3) may occur simultaneously. But supercapacitors cannot charge and discharge at the same time. So the number of supercapacitors must be at least 3. In the case of existence of only two supercapacitors, only two of three roles can be supported at the same time, and the remaining one must wait. Then the following situations may occur.
Although the solar panel generates electrical energy and energy storage components are not full, the system cannot harvest energy, since two supercapacitors are assigned to the sensor node subsystem and the battery, respectively.
In order to harvest solar energy uninterruptedly, one supercapacitor must be used to receive energy generated by the solar panel and another supercapacitor charges the battery or powers the sensor node subsystem. But the charging time will affect the sensor node subsystem performance. In this case, how to satisfy the performance constraint of the sensor node system is an unsolved problem.
Three supercapacitors with an advanced charging/discharging scheduling algorithm can eliminate the conflicts on charging and discharging between energy components, since the three supercapacitors can be seen as an energy buffer with three bidirectional interfaces, which can make (1), (2), and (3) execute in parallel. We propose the system architecture as shown in Figure 1, where DC-DC converters serve the purpose of voltage conversions between components. Each supercapacitor is connected to the solar panel, the battery, and the sensor node subsystem by converters. The charging/discharging scheduling algorithm is described in the next section.
Comparing with the architecture containing two supercapacitors [12], our system architecture adds extra cost, but it is small. The price of the supercapacitor with capacitances on the order of tens of farads is about several dollars. (The suggestion about selecting supercapacitors is shown in Section 5.) For example, the
4. Charging/Discharging Scheduling
The key notations used in this paper are summarized in Notations section.
Our proposed charging/discharging scheduling algorithm (shown in Algorithm 1) manages energy conversions according to the stored electrical energy in system components. We assume that all of the energy storage components are ideal. SP,
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15)
The first event is between lines (1) and (7). If there is no energy in the supercapacitor that is powering the sensor node subsystem (line (1)), then the energy source of the sensor node subsystem is assigned as the supercapacitor that can power the sensor node subsystem and stores the maximum energy (line (2)). At the same time, the supercapacitor with the minimum energy is charged by the solar panel (line (3)). In this case, if no supercapacitor can start the sensor node subsystem (line (4)), the battery supplies energy to the sensor node subsystem (line (5)). Otherwise, the energy that is stored in the idle supercapacitor (neither the supercapacitor powering the sensor node subsystem nor the supercapacitor charged by the solar panel) is charged to the battery if it exists (lines (6) and (7)). If the battery is full, the redundant energy is discarded.
The second event is between lines (8) and (10). When the amount of one supercapacitor's energy is enough to power the sensor node subsystem (line (8)), the energy source is changed from the battery to the supercapacitor (line (9)) and the supercapacitor with the minimum energy is charged by the solar panel (line (10)). The premise of this event is that the battery is the energy source of the sensor node subsystem; that is, the energy stored in any supercapacitor is less than
The third event is between lines (11) and (15). When the supercapacitor is charged fully by the solar panel, the third event occurs (line (11)). This supercapacitor is assigned as the energy source (line (12)). Similarly, the supercapacitor with the minimum energy is charged (line (13)), and the energy stored in the idle supercapacitor is charged to the battery (lines (15)).
To sum up, the design for CDSA is based on the following considerations.
To reduce the frequency of running CDSA, the supercapacitor with the maximum energy is chosen as the power source of the sensor node subsystem SN (line (2)) and the supercapacitor with the minimum energy is charged by the solar panel SP (lines (3), (10) and (13)).
To reserve enough capacity to store the energy generated by the solar panel, the energy in the idle supercapacitor is converted to the battery BA (lines between (6) and (7) and between (14) and (15)).
We show the following example to explain our algorithm CDSA.
We assume that the battery is half full and the three supercapacitors are empty. In this case,
When
The supercapacitor
If sunlight is sufficient,
We assume that 10 percent of the battery's energy is reserved to deal with the unpredictable solar radiation, supply energy to CDSA, and handle some other unexpected events. So the energy leakage of supercapacitors and the energy used by CDSA are ignored in the following sections of the paper.
In our system, the output power of the solar panel with the area a (
Property 1.
The energy storage components can harvest all output power of the solar panel if the battery is not full and
Proof.
To prove Property 1, the following two parts must be proved.
If inequality (1) can be satisfied, then the energy conversion channel from the solar panel to the battery (or to the sensor node subsystem) will not be blocked. Our algorithm CDSA can guarantee that at any time there is at least one nonfull supercapacitor that can be charged by the solar panel.
For part (1), we use
Therefore, if
then
For part (2), we assume by contradiction that all supercapacitors are full and the last charged supercapacitor is charged fully in the time interval between
Property 2.
If the energy storage components are not empty, the sensor node subsystem can be powered uninterruptedly.
Proof.
As shown in Algorithm 1, in all of three events, a nonempty supercapacitor (lines (2), (9), and (12)) or the battery (line (5)) is assigned to the sensor node subsystem as its power source.
5. Capacity Optimization for System Components
The capacity selection is a major factor affecting the system performance. If the capacity is too small, there is not enough energy to drive the sensor node subsystem. If the capacity is very large, although there is enough energy to drive it, the remaining resource cannot be used effectively and the system cost is wasted. Therefore, in this section, we optimize the capacity of each system component according to system power needs and the historic values of the solar radiation. Recall that we reserve 10 percent of the battery's energy to deal with the unpredictable solar irradiation. This is also because the value of the solar radiation is different for different years. The power required by the sensor node depends on the tasks running on it. So we will first introduce our system model in the following subsection.
5.1. System Model
In the sensor node subsystem, there are a total of n tasks. The task set is denoted by
There are m batteries that can be selected. The selectable battery set is denoted by
In our proposed system, the supercapacitor is designed as the energy buffer. The supercapacitor's capacity cannot affect energy harvesting (Property 1). Therefore, we do not optimize it in this paper. But the capacity of the supercapacitor cannot be too large or too small, since the supercapacitor with small capacity will lead to invoke CDSA frequently. While the large supercapacitor is not the best alternative, since the larger the supercapacitor, the higher the leakage power, we suggest selecting supercapacitors with capacitances on the order of several to tens of farads.
We process the solar energy on a daily basis. This is because the daily cycle of sunlight leads to the charging/discharging cycle of the energy storage system. Moreover, this method can balance the complexity and efficiency of our algorithm. We use h to represent the number of days of the historic values and
5.2. Problem Formulation
Given the task set T, the battery set B, and the historic values
where
The capacity optimization should respect the following constraints.
Area Constraint. The area a cannot exceed the maximum acceptable area A:
Power Conversion Constraint. According to Property 1, inequality (1) should be satisfied, which is rewritten as follows:
where α is a constant between 0 and 1.
Energy Constraint. At any time, the available energy in energy storage components cannot be less than zero:
where
Lemma 1.
The lower bound of available energy at the end of the ith day is
where
Proof.
Earlier in the paper, we described the supercapacitor (several to tens of farads), whose capacity is far less than the capacity of the battery. So we ignore it.
If the capacity of the battery is unlimited, then
If the battery is full and the power supplied by the solar panel is the maximum, then the discarded energy is the maximum and the harvested energy is the minimum. So the lower bound of available energy occurs in the situation where
Theorem 2.
In h days, the lower bound of available energy is
Proof.
We assume that
But it is impossible to see the value of
is used to recover the available energy; then
Therefore, the lower bound of
5.3. An Optimal Algorithm
Now we present our capacity optimization algorithm COA (shown in Algorithm 2), which finds the area a and the battery
(1) (2) (3) (4) (5) (6) (7) right = mid; (8) (9) left = mid; (10) (11) (12) (13) (14) (15) (16) (17) (18)
The number of iterations of
The complexity of the verification of inequality (8) is
Theorem 3.
The algorithm COA can find the OPTIMAL capacities of the battery and the solar panel leading to the minimized equation (5) under the constraints inequalities (6), (7), and (8).
Proof.
For each battery, the binary search can find the optimal area of the solar panel to minimize the objective, since a linear relationship exists between the area and our objective equation (5). Then COA finds the battery
6. System Reward Maximization
Each task has a reward which is a measure of task's importance. The task with a higher reward is considered more important and should be executed frequently. The task's importance is based on not only the system resource, but also the user requirements. So the task reward is assigned by the user. In this section, based on the system model shown in Section 5.1, we maximize the system reward according to the given system components’ capacity.
6.1. Problem Formulation
Given the task set T, the historic values, and system components’ capacity which satisfy inequalities (6) and (7), our objective is to assign the period
The system reward maximization should respect the following constraints.
Microprocessor Utilization Constraint. The utilization of the microprocessor in the sensor node is not more than the utilization bound for EDF scheduling:
Our system can supply energy to the sensor node subsystem uninterruptedly (Property 2). Based on this situation, the sensor node subsystem can be seen as a uniprocessor system. So any task scheduling for uniprocessor systems can be used in our system. The utilization constraint assumes that preemptive EDF scheduling is used. A different utilization formula can be used with different scheduling algorithms, such as RM and DM.
Energy Constraint. In order to stably supply power to system tasks, at any time, the available energy in energy storage components is not less than zero. The formulation of this constraint is the same as inequality (8).
Period Constraint. The assigned period cannot exceed the lower and upper bound of the period:
6.2. Efficient Heuristic Algorithms
The harvesting energy and the computational resource limit the system reward. So to maximize the system reward the frequently executed task should have a large optimized objective
The task with the larger metric should be executed more frequently and vice versa. Based on the metric δ, we propose two heuristic algorithms (L2U and U2L) to maximize the system reward.
6.2.1. Stretch (from the Lower Bound to the Upper Bound)
For the first heuristic algorithm L2U (shown in Algorithm 3), we begin with assigning all periods to the lower bound (line (4)). If they can satisfy inequalities (18) and (8) (lines between (5) and (6)), the initial assignment will be the solution. Otherwise, we need to stretch the period of the task with the minimum δ (lines between (7) and (18)) in the set T, which contains the tasks with the stretchable period. If the period
(1) (3) exit: the input parameters are not feasible; (4) (6) (7) (8) (9) (10) (11) (12) (13) (14) break; (16) (17) (18) remove (19) (20) (21)
The number of iterations of
6.2.2. Compression (from the Upper Bound to the Lower Bound)
Instead of assigning all periods to the lower bound
(1) (3) (4) (6) exit: the input parameters are not feasible; (7) (8) (9) (10) (11) (12) (14) (15) (16)
The steps in Algorithm 4 are similar to those in Algorithm 3. Therefore, the complexity of Algorithm 4 is the same as Algorithm 3.
7. Experimental Results
We proposed a battery-supercapacitor hybrid architecture and several algorithms to jointly manage the energy harvesting, storage, and usage. In this section, we compare our architecture 3SC and charging/discharging scheduling algorithm CDSA with the state-of-the-art research [14] and discuss the results of the capacity optimization algorithm COA and the system reward maximization algorithms (L2U and U2L) based on the historical data of solar radiation of 365 days, from July 1, 2012, to June 30, 2013, provided by the Measurement and Instrumentation Date Center (MIDC) of National Renewable Energy Laboratory (NREL).
7.1. Capacity Optimization
We evaluate our proposed capacity optimization algorithm COA based on the historical data over the past year (i.e.,
There are 12 batteries as shown in Table 1. We set
When
When
When the starting season is summer, no matter what the initial energy is, the results of COA are the same (shown as
Batteries parameters.

The results of COA with different starting seasons and initial energy.

The energy profile of the battery under different system components’ capacities.
We developed a simulator in C++ to trace the changes of the energy stored in the battery. Figure 3 shows the comparison of the stored energy profile under different capacities of system components. First, in Figure 3(b),
7.2. Architecture Comparison
We compare our architecture 3SC to the state-of-the-art research HY [14], which focuses on real-world applications. In this experiment, we adopt the algorithm COA's optimized result

The ratio of the harvested energy of HY to that of our architecture 3SC over one year.
7.3. System Reward Maximization
In this subsection, the ILOG CPLEX solver is exploited to obtain the optimal solution from the MIQCP formulation ((17), (18), and (8)) compared to which we evaluate the performance of the proposed system reward maximization algorithms (L2U and U2L). In addition, we implement two variant algorithms: G-L2U and G-U2L. They assign periods according to the reward instead of the metric equality (20). In order to make it solvable by the ILOG CPLEX, the parameters are set as follows. We uniformly sample sixteen
Figure 5 shows the normalized system rewards of CPLEX and the four algorithms for different number of tasks. Each measurement point is the average value of 200 task sets. The results of U2L and L2U are at least 93% and 85% of the optimal results, respectively. From Figure 5, we observe the following.
G-U2L and G-L2U have a lower system reward, since they do not take
When the number of tasks is small, the system reward of U2L is higher than that of L2U. It is because U2L aims at decreasing the period of the task with high reward and this objective is the same as the objective of system reward maximization. However, L2U stretches the period from the lower bound to upper bound. The system reward is inversely proportional to periods. So increasing small periods will bring more impact on the system reward than decreasing large periods; that is, L2U skips more solutions. Therefore, when the number of task is less than 6, U2L is more effective and stable than L2U. When the number of tasks is greater than 5, the solution space of the large task set contains more solutions. So L2U can also find a nearly optimal solution.

The system reward comparison.
8. Conclusion
In this paper, we study the joint management of energy harvesting, storage, and usage for green wireless sensor networks. First, we propose a novel system architecture to eliminate the conflicts on charging and discharging between energy components. Based on the system architecture, a charging/discharging scheduling algorithm is designed to effectively harvest, store, and use the solar energy. Then we prove the lower bound of available solar energy. Based on the lower bound, one system components’ capacity optimization algorithm, which is proved to be able to find the optimal result, and two system reward maximization algorithms are proposed. We evaluate our architecture and algorithms based on real-life data traces. For our architecture and the charging/discharging scheduling algorithm, the comparison experiment proves that the conflict-free architecture can harvest more energy than the architecture HY. For the capacity optimization algorithm, experimental results show the impacts of realistic data traces and the initial energy on the capacity optimization. In addition, the result of the simulation for the battery's energy shows that the lower bound of available solar energy is fairly tight in practice. For the system reward maximization algorithms, their results are nearly optimal.
Footnotes
Notations
Conflict of Interests
The authors declare that there is no conflict of interests regarding the publication of this paper.
Acknowledgments
This work was partially supported by the National High Technology Research and Development Program of China (863 Program no. 2011AA040103), the Important National Science and Technology Specific Project no. 2013ZX03005004, and the Natural Science Foundation of China no. 61100023.
