Energy-aware topology control for reliable data delivery in solar-powered WSNs

Solar power is a valuable source of power for wireless sensor networks, but it periodically requires an appropriate energy management strategy. We introduce a scheme that constructs and maintains a fault-tolerant wireless sensor network topology that can make the best use of solar energy. This topology control scheme is based on a simple model of the availability of solar energy and matches the connectivity of each node with the energy left in its battery. Operating locally, our scheme constructs and maintains a k-connected backbone of energy-rich nodes that handles most of the network’s traffic reliably, without depleting the reserves of energy-poor nodes. Simulation results demonstrate the effectiveness of our scheme.


Introduction
In a mains-powered wireless sensor network(WSN), energy is not a constraint on achieving a specific level of performance, so as to meet goals such as throughput and reliability. In a battery-based network, however, attempting to meet all goals in full can shorten the network lifetime; it may be better to sacrifice throughput and reliability, rather than to deplete the batteries of the sensor nodes. For this reason, designers of battery-based WSNs have focused on reducing energy consumption, so as to prolong the network lifetime.
Recently, however, environmental energy has emerged as a feasible supplement to battery power for wireless sensors, when manual recharging or replacement of batteries is not practical. In many situations, a ready source of environmental energy is the sun. Solar energy has a power density of about 15 mW/cm 3 [1], which compares very favorably with other renewable energy sources. Of course, this high-power density is only available for part of the day; nevertheless, its contribution *Correspondence: jbhur@cau.ac.kr 2 School of Computer Science and Engineering, Chung-Ang University, 84 Heukseokro, Dongjak-gu, Seoul 156-756, Korea Full list of author information is available at the end of the article allows the designer of a WSN more scope to consider positive measures to improve performance, rather than having to concentrate on energy consumption. In this paper, we look specifically at the contribution that a fault-tolerant topology can make to network performance.
Topology control involves coordinating nodes' decisions regarding their transmission ranges, in order to create a network with a desirable connectivity, while restraining energy consumption or increasing network capacity, or both [2]. The need for a network-wide perspective distinguishes topology control from other node-level techniques for saving energy or increasing network capacity. Although topology control is achieved through individual nodes choices of transmission power level, which determine their neighbors, but the result is a global property of the entire network.
Most research on topology control [3][4][5] has been predicated on the assumption that some level of network connectivity is the primary property to be achieved. Topology control protocols have then been formulated to achieve this connectivity with the lowest transmission power at each node. The resulting networks meet requirements in terms of capacity, energy consumption, and interference. However, they are more http://jwcn.eurasipjournals.com/content/2013/1/258 susceptible to node failure, because reducing nodes' transmission powers also reduces the number of possible routes between any pair of nodes.
Sensor nodes are notoriously unreliable, and therefore, fault tolerance is important in most WSNs. It is especially desirable that network connectivity should be preserved for as long as possible when some of sensor nodes fail or run out of power. Recent research on topology control [6][7][8][9] has therefore considered both energy efficiency and fault tolerance.
Increasing fault tolerance requires more transmission power. Thus, the sun would be an attractive power source for a fault-tolerant WSN if we could match energy requirement with its availability, but the workload of a WSN and the weather are both difficult to predict. Instead, we propose a simple solar energy model, which requires no explicit forecasting of either energy supply or demand, but nevertheless is able to help individual nodes to make the best use of solar energy in contributing to the performance of the network as a whole.
Based on this energy model, we introduce a distributed and localized algorithm, called SolarTC, that determines the transmission power at each node that will make the best contribution to the fault tolerance of the whole network, while taking account of the residual energy available in that node. SolarTC has the following properties: • Energy-adaptive operation: A node running SolarTC usually operates in fault-tolerant mode, in which it tries to obtain more connectivity by increasing its transmission power. If a node has insufficient energy to operate in fault-tolerant mode, it switches to energy-saving mode, in which it tries to maintain the minimum transmission power required to maintain marginal network connectivity, while to minimize possible blackout time. • Supporting fault-tolerant and energy-aware routing: The robust fault-tolerant nodes operate as a backbone network, which provides as many paths as possible to the sink node. This network can support either fault-tolerant routing or energy-aware routing. The rest of this paper is organized as follows. In the next section, we review some existing schemes for topology control in WSNs and introduce solar-powered WSNs. In Section 3, we describe our energy model of a solar-powered sensor node, and in Section 4, we explain our energy-conserving topology control scheme for enhancing fault tolerance. Section 5 discusses the proposed topology control that affects the network layer. We then evaluate the performance of our algorithm in Section 6, and conclude the proposed work in Section 7.

Effects of topology control in WSNs
A topology control protocol creates and maintains a list of the immediate neighbors of each node, in a network. Thus, it is related both to routing and to the MAC (medium access control) layer of the protocol stack, as shown in Figure 1. A topology control protocol is not a routing algorithm, but it can trigger a route update if it detects that a node's neighbor list has changed significantly. This allows a routing protocol to respond more quickly to topology changes and thus reduces the rate of packet loss. Conversely, the routing protocol can trigger the execution of the topology control protocol if the former detects a lot of broken routes in the network, since this strongly suggests that the actual network topology has changed appreciably since the last execution of topology control.
A topology control protocol is responsible for selecting the transmission range of each node, which determines the contention in the MAC layer. Like the routing protocol, the MAC protocol can trigger the execution of the topology control if it discovers new neighbor nodes by overhearing their traffic. This intimate relationship between topology control and the performance of the routing and the MAC layers makes topology control one of the most important issues in designing efficient WSNs.

Topology control for fault-tolerant WSNs
By reducing the transmission power of nodes to conserve the energy in nodes' batteries, most topology control protocols tend to reduce the numbers of routes between pairs of nodes. The reduced topology that results is naturally more susceptible to node failure.
It would be ideal to be able to construct a uniformly kvertex connected (or k-connected) network, which would be k-1 fault tolerant, meaning that it is able to survive the failure of any k-1 nodes. Figure 2 shows an example of a two-connected network. Increasing the value of k requires a larger transmission range and sacrifices network lifetime and capacity. It is also likely to increase contention in the MAC layer. These disadvantages have to be traded against reliability.
A considerable amount of work [6][7][8] has been done on topology control protocols that try to create faulttolerant networks, with the objective of minimizing power consumption while providing a specific level of connectivity. CBCT (fault-tolerant cone-based topology control) is a distributed and localized algorithm, proposed by Bahramgiri et al. [6], which achieves k-connectivity in a planar network by having each node increase its transmission power until either the maximum angle between any two neighbors is 2π/3k, or it is transmitting at full power. Other authors [10,11] have tried to minimize the maximum transmission power used by any node. Ramanathan et al. [11] proposed a centralized greedy algorithm for achieving two-connectivity that iteratively merges pairs of mutually connected network components to construct the whole network. Li and Hou [10] introduced two variants of the local minimum spanning tree (LMST) algorithm [5] to address the k-connectivity problem: one of these (GLSS) is centralized and the other (FLSS) is distributed and localized. Both algorithms examine links in increasing order of length and only include the links needed to satisfy the k-connectivity condition. These procedures have been shown to be better than all other current schemes for reducing the peak power consumption of a node.
Most of the work that has been done on faulttolerant topologies, including that described above, seeks to achieve uniform k-vertex connectivity between any two nodes in the network. This requirement is highly appropriate for ad hoc wireless networks, in which any two nodes can be the source and destination, because data is transmitted from the sensors to one or more sinks. Thus, it is not necessary to maintain a specific degree of fault tolerance between all pairs of sensors, but it is important to have faulttolerant data paths between the sensors and the sink. Cardei et al. [12] addressed this problem with the k-ATC algorithm, which is tailored to heterogeneous battery-powered WSNs, in which data is forwarded from the sensors to so-called super-nodes through a k-connected network of fixed topology. Our algorithm also tries to achieve k-connectivity, but in the form of a k-connected backbone network with a structure that changes so that it always consists of energy-rich nodes.

Solar-powered WSNs
Corke et al. [13] articulated the principles involved in designing hardware for durable solar-powered wireless sensor networks. Minami et al. [14] designed a batteryless wireless sensor system for environmental monitoring, called Solar-Biscuit. Simjee and Chou [15] presented a solar-powered wireless sensor node, based on a supercapacitor, called Everlast. Jay et al. [16] described a systematic approach to build micro-solar power subsystems for wireless sensor nodes. However, most research on solarpowered WSNs, including the work mentioned above, has focused on node-level design topics such as hardware architecture and system analysis.
A few researchers [17][18][19] have been concerned with network-wide issues, such as latency and capacity, in solar-powered WSNs, but, to the best of our knowledge, we are the first to look specifically at topology control for enhancing fault tolerance in solar-powered WSNs. http://jwcn.eurasipjournals.com/content/2013/1/258

Energy model for a solar-powered sensor node
An energy model for a solar-powered system requires both an expression of the expected harvest of solar energy, and an expression of the rate at which the system uses energy. The former is dependent on the season, the weather, and the location at which the system is deployed, and the latter depends on the rate at which data is sensed and transmitted, and the duty-cycle, which is the proportion of time for which a node is active. Unfortunately, these factors cannot be predicted precisely. We therefore propose a simple energy model [19] that is independent of these factors, and we will show how this model can be used to predict the amount of energy that a node can allocate to improving faulttolerance.
Let P solar be the average solar power acquired by a node, and let P sys be its average rate of energy consumption. If the residual energy in the node is E residual , then the expected time T full before the node's battery will be full can be expressed as follows: where C is the battery capacity. Note that the battery will only charge when P solar > P sys . Otherwise, a node is not viable in the long term. We will explain how to control P sys at the end of this section.
Even though the availability of solar energy varies from day to night and from one day to anther, a node should not blackout in the period before the battery is fully charged, as long as the residual charge in the battery at the start of this period satisfies the following condition: This is true even in the worst case, in which the solar energy arrives as late as possible. From Equations (1) and (2), we obtain E residual ≥ P sys P solar C. This means that the system can run constantly in any environment if it has at least a threshold amount of energy E threshold , where If E residual falls below E threshold , then the node may have to shut down, and therefore, it needs to concentrate on saving energy. In SolarTC, a node in this situation operates as an energy-saving node, or ES-node. But when E residual exceeds E threshold , it starts to operate as a fault-tolerant node, or FT-node, which allocates some of its available energy to enhancing fault tolerance.
Determining E threshold requires a knowledge of P sys and P solar , which can both be estimated using moving averages. If P new sys and P new solar are the most recent samples of the rate of energy consumption and battery charging, then moving averages can be computed as follows: where θ (0 < θ < 1) controls the way in which the historical samples are considered: increasing θ reduces the contribution of older values. The duty-cycle concept [20], which is often employed to allow a node to save energy, could easily be included in the calculation of P sys . Since P sys is proportional to the duty cycle, changing the duty cycle has a predicable effect on P sys . This means that the designer of a WSN can control P sys in an approximate way by adjusting the duty cycle. Therefore, E threshold , which is dependant on P sys , can also be controlled by varying the duty cycle, and this is important since the value of E threshold determines the number of FT nodes in the network.

Topology control
Definition 1 (k-FTN connectivity). A graph G has k-FTN connectivity if, for any two FT-nodes n 1 and n 2 , there are k pairwise vertex-disjoint paths from n 1 to n 2 on the backbone graph consisting of FT-nodes. Or equivalently, a graph is k-FTN connected if the backbone graph consisting of FT-nodes is still connected after the failure of up to k − 1 FT-nodes.
Basically, SolarTC k tries to construct a k-FTN backbone network consisting of FT-nodes. If that is not possible due to the low density of FT-nodes (we will discuss this in Section 4.3), it attempts to keep the connectivity of the backbone network as close to k as possible. We will explain the SolarTC k algorithm in more detail in this section, which uses the notation of Table 1.

SolarTC k algorithm
When sensor nodes are initially deployed, each node n i starts by constructing its localized neighborhood N all (i) by exchanging 'hello' messages with all nodes that are within its maximum transmission range r max i , and then it determines the minimum transmission power required to reach each neighbor. Next, node n i runs the localized minimum spanning tree(LMST) algorithm [5], as shown in Figure 3, which has been shown to achieve connectivity for every feasible topology and has a very low overhead of n messages for a network of n nodes [5]. LMST initially creates a network with 1-connectivity, and we refer to the transmission power required by each node n i to achieve http://jwcn.eurasipjournals.com/content/2013/1/258 Maximal transmission range and power of node . At this stage, node n i has complete knowledge of its one-hop neighborhood which can be reached with p LMST i . However, this neighborhood may change if nodes are moved or go out of service, requiring LMST to be invoked regularly, or when certain events occurs, as shown in Figure 3.
After LMST has been run, node n i invokes SolarTC k (i) periodically as shown in Figure 3. SolarTC k (i) begins by determining the mode m i in which it will run from the amount of residual energy E residual (i) in the node's battery (lines 1 to 5). If E residual (i) > E threshold (i), then m i is set to 1 so that node n i becomes an FT-node. It broadcasts this fact to its neighbors with its maximum transmission power (lines 6 to 9). There is then a back-off time, during which node n i recalculates its list of FT-neighbors FTN all (i) from the messages received in response to its transmission (lines 11 to 15). FTN all (i) should be updated 8: broadcast_message (i, m i ); 9: end if 10: start timer t; 11: while t do 12: if a broadcast message has been received then 13: recalculate FTN all (i); 14: end if 15 21: else 22: invoke FTTC k (i); 23: end if 24: end if 25: return; at every node, regardless of its mode m i . If the node is an FT-node (m i =1), then FTN all (i) will be used in the construction of the backbone network which consists of the FT-nodes. If the node is an ES-node, FTN all (i) can still be used by the routing scheme to find energy-rich neighbors (Algorithm 1).
After updating FTN all (i), node n i determines its transmission power p i from the value of m i . If m i is 0, then p i is naturally the same as p LMST i (lines 16 to 17). Otherwise, the node must determine the value of p i which corresponds to the closest approximation to preserve local k-FTN connectivity.
In order for a node to be k-connected, it must have at least k neighbors [21]. Similarly, for an FT-node to be k-FTN connected, it must have at least k FT-nodes within its transmission range. When |FTN all (i)| ≥ k, the routine FTTC k (i) is called to find the minimum transmission power p i for node n i which will create k disjoint-paths between n i and each of its FT-neighbors n j (line 22). Otherwise, p i is set to p FTN i (|FTN all (i)|), so that n i retains as many FT-nodes as possible in its neighbor list (line 20).

FTTC k algorithm
When the function FTTC k (i) is run by node n i , it computes p FTN i (k) and compares it with p LMST i . The larger of the two values then becomes that node's minimum transmission power p min i , since p FTN i (k) is not necessarily sufficient to connect to all the neighbors of n i in N all (i). Node n i then uses an iterative process to establish its actual transmission power p i , starting from p min i . This iteration ends when each node n j in FTN all (i) is either within the transmission range r i of node n i or disjoint k-vertex paths are established between n i and every n j . The value of s i is then set to 1 (Algorithm 2). calculate p i ; 12: start timer t; 13: while t do 14: if a broadcast message has been received then 15: recalculate (FTN covered (i)); 16: recalculate ( p i ); 17: if FTN covered (i) = FTN all (i) then 18:  The algorithm terminates after at most |FTN all (i)| − k rounds. In each round (line 10), both of FTN covered (i) and p i are recalculated (lines 13 to 16) if a broadcast message has been received from an FT-neighbor in FTN all (i). This is straightforward since the message contains information about that neighbor and its onehop FT-neighbors. The algorithm terminates when FTN all (i) = FTN covered (i), and then node n i broadcasts its p i to all its neighbors (lines 17 to 20). If there is any FT-neighbor that is still out of range, the power level p i is raised by the minimum increment p i , which is sufficient to allow at least one more FT-neighbor in FTN all (i) -FTN covered (i) to receive transmissions from node n i (line 24). Then, the node recalculates FTN covered (i), since p i has changed, and begins a new round, in which it seeks to discover whether the new value of p i can reach all nodes in FTN all (i) (line 26). If it can, then the node broadcasts its new power level p i (line 29) to all of its neighbors, and the algorithm terminates. Otherwise, the node broadcasts its current status (line 29) and starts another round.

Theorem 1. (k-FTConnectivity, N, of FTTC k ) If the maximal power graph of all FT-nodes is k-connected, then the backbone network obtained by FTTC k is also k-connected.
Proof. Let the set of all edges connecting FT-nodes constructed by FTTC k be E(FTTC k ), and let the set of all edges connecting FT-nodes in the maximal power graph be E(MaxGraph). It is immediately apparent that E(FTTC k ) is a subset of E(MaxGraph). Suppose there is an edge (n i , n j ) which is in E(MaxGraph(i)) but not in E(FTTC k (i)). The FTTC k (i) algorithm running in node n i will only remove edge (n i , n j ) from E(FTTC k (i)) if it is k-connected to node n j through the nodes in its transmission range r i . This means that k independent paths between node n i and node n j already exist. Thus the network is still k-connected after removing this edge (n i , n j ) from E(MaxGraph(i)). Therefore, the edges removed by the FTTC k (i) algorithm do not reduce the connectivity of the original graph which corresponds to the maximum transmission power.
This theorem only allows FTTC k to guarantee k-FTN connectivity if the maximum-power graph of the FTnodes is k-connected, and this becomes more likely as the number of FT-nodes increases.
As explained at the end of Section 3, E threshold can be roughly determined from the duty cycle. If a node reduces E threshold by decreasing its duty cycle, then that node is more likely to become an FT-node, since http://jwcn.eurasipjournals.com/content/2013/1/258 E threshold is more likely to drop below E residual . This relation allows an administrator indirect control over the number of FT-nodes in the network. However, reducing the duty cycle can also prevent a node from sensing data over an adequate period. Therefore, E threshold needs to be chosen to meet the requirements of a particular application; if fault tolerance is more important than the amount of data acquired, then a lower value of E threshold is more suitable and vice versa.

Theorem 2. (Bi-directional Connectivity of SolarTC k )
The topology constructed by SolarTC k has only bidirectional links.
Proof. The topology constructed by LMST has already been proven to be a bi-directional graph [5]. It remains to prove that the new links added by the SolarTC k algorithm are bi-directional. SolarTC k and FTTC k , only try to add more links when they are running on an FT-node. And the only candidate links are those which connect that node to other FT-nodes. Therefore, no new link from an FTnode to an ES-node can be added, and all the existing links between FT-nodes and ES-nodes will have been created by LMST and therefore have bi-directional connectivity.
It now only remains to prove that the links between FTnodes are bi-directional. Suppose that node n i and node n j are both FT-nodes and that there is a link between them. The existence of the link (n i , n j ) means that these two nodes are not k-connected, since the FTTC k (i) routine would eliminate the link (n i , n j ) if node n i were already kconnected to node n j . Similarly FTTC k (j) will retain the link (n j , n i ). Consequently, the link between node n i and node n j is bi-directional.
Bi-directional connectivity is a very important property for a wireless network, since it is essential for link-level acknowledgment, which is necessary for the reliable transmission of packets over unreliable media. Bi-directionality is also fundamental to floor acquisition mechanisms in the MAC layer, such as the RTS/CTS mechanism in IEEE 802.11. The disadvantages of unidirectional connectivity are well described by Marina and Das [22].

Design considerations 4.4.1 Frequency of invocation of LMST
Any method of topology control used in WSNs should be able to accommodate the addition, removal, and movement of nodes. The addition or removal of a node is sure to change the connectivity of a network, and moving a node is also likely to do so. To cope with these changes, our scheme periodically invokes LMST, as shown in Figure 3. The period between invocations (L in Figure 3) should be carefully determined based on the frequency of changes to the configuration of nodes, the pattern of node failure, and the speed at which node are likely to move. These factors depend on the application, the type of nodes in use, and the environmental conditions; thus, it is better to rely on historical data.

Frequency of invocation of SolarTC k
The interval between runs of SolarTC k (i), labeled l in Figure 3, also needs to be chosen carefully: once SolarTC k (i) has determined the mode of a node, that node keeps operating in the same mode until the next run of SolarTC k (i). Suppose that node n i is an FT-node (m i = 0) at the start of a period of l and that E residual (i) drops below E threshold (i) before the end of that period, so that m i becomes 0 and the node becomes an ES-node. Even so, node n i should keep operating as an FT-node until the end of the period, so as to avoid damaging the existing topology before the next run of SolarTC k (i) constructs a new topology. Therefore, the value of l directly affects system performance.
Reducing the value of l helps SolarTC k (i) to reflect recent changes in the status of the nodes in a new topology, but it also incurs a very significant overhead. A larger value of l reduces this overhead but may prevent nodes from operating stably. For instance, an FTnode which needs the criteria to become an ES-node shortly after the start of a period may experience a blackout if it is forced to operate as an FT-node for too long. The optimal value of l depends on the characteristics of the nodes, the applications, and environmental conditions. The only feasible way of choosing l is by experiment.

Preventing repeated changes of mode
As explained in Section 4.1, the value of m i for node n i is determined from the relative values of E residual (i) and E threshold (i). However, frequent comparisons of E residual (i) and E threshold (i) may cause jitter in the value of m i . Suppose that node n i starts to operate as an FT-node as soon as E residual (i) exceeds E threshold (i). E residual (i) is very likely to sink below E threshold (i) almost at once. A similar but opposite effect is likely when a node becomes an ESnode. These repeated changes of mode degrade system reliability and performance. Therefore, SolarTC k uses an energy tolerance ψ to damp this oscillation. Lines 1 to 5 of SolarTC k then become

Effects of SolarTC k on the routing protocol
SolarTC k produces a backbone network consisting of FTnodes. Theorem 1 has established that SolarTC k cannot guarantee k-FTN connectivity if the maximal power graph of FT-nodes is not k-connected. The density of the FTnodes determines the topology of the backbone. It may be k-connected, simply connected, disconnected, or there may be no FT-nodes at all. Figure 4 shows examples of topologies constructed by the SolarTC 2 algorithm.
We will now provide some examples showing how SolarTC k can support fault tolerant and energy-aware routing. We use the energy-aware geographic routing (EGR) scheme [23], in which a node routes data to the most energy-rich of its neighbor nodes, in the direction of the sink node if possible. In order to use this scheme with SolarTC k , we require each node to check its FT-neighbors before invoking EGR. The node then proceeds as follows: • If there are FT-neighbors, the node applies EGR to those nodes alone. • Otherwise, the node applies EGR to all its neighbors.
This modified routing scheme can be applied to each example in Figure 4. In Figure 4a, each node applies EGR to all its neighbors, since there are no FT-nodes. Data from node v 6 , for example, might be routed to the sink along the path (v 6 , v 5 , v 4 , v 3 , v 2 , v 1 , sink), while data from v 9 might take the route (v 9 , v 3 , v 2 , v 1 , sink). These paths impose a heavy load on nodes v 1 and v 2 , and are likely to bring about an energy imbalance. Moreover, if nodes v 1 or v 2 fail, the whole WSN becomes useless.
The network shown in Figure 4b has more energy, and SolarTC 2 makes nodes v 2 , v 4 , v 7 , and v 10 FT-nodes, and uses them to construct a backbone with 2-connectivity. In the modified scheme, node v 9 runs EGR and finds that nodes v 7 and v 10 are its FT-neighbors. EGR will choose the most suitable of these FT-neighbors to receive data and probably selects node v 10 , since it is closer to the sink node. In that case, data that has arrived at v 10 , which is an FT-node, will be routed over the backbone to the sink, along the path (v 9 , v 10 , v 2 , sink). Similarly, node v 6 can be expected to send its data long the path (v 6 , v 7 , v 4 , sink).
In Figure 4c, nodes v 2 , v 4 , v 8 , and v 10 are FT-nodes. But SolarTC 2 cannot create a 2-connected network from these FT-nodes since they are not 2-connected, even using maximum power, because node v 4 cannot contact node v 8 . So SolarTC 2 creates as many paths as possible among the FTnodes. In this example, EGR running on node v 9 would send data to node v 10 instead of node v 3 , since node v 10 is a FT-neighbor. Even though node v 10 is not 2-connected to the sink, it has more energy than v 3 , and its connectivity gives it more fault-tolerance. Node v 10 routes the data to the sink over the backbone along the path (v 9 , v 10 , v 2 , sink).
Lastly, there may be an isolated FT-node, like v 7 in Figure 4d. In this case, SolarTC 2 keeps the transmission power at v 7 as small as possible. This minimum power is p FTN i (0), which is the same as p LMST i . This does not affect the performance since v 7 cannot reach any other FT-nodes, even if it were to use its maximum transmission power p max i . EGR will then make node v 6 route data to node v 7 instead of node v 5 , since node v 7 is an FTneighbor. But node v 7 has no FT-neighbors, and so it applies EGR to all its neighbors, and the resulting path is (v 7 , v 9 , v 3 , v 2 , sink). Although node v 7 is not connected to the backbone network and therefore cannot provide any fault-tolerance, it is beneficial for its neighbors to route data through node v 7 since it has enough energy to accommodate a high workload.

Performance evaluation
We have set up outdoor testbed for solar-powered sensor networks, as described in our previous publications [19,24]. Unfortunately, however, the Ethernet cards used in the testbed cannot support any change of transmission power which is an essential function for our scheme. Moreover, there are too few nodes in the testbed to evaluate the performance of fault tolerance. Inevitably, therefore, we designed an NS2 simulation for the performance verification.

Energy model
We used solar-energy data obtained from our outdoor testbed [19,24] in Urbana, IL, USA, during the 15 days between 01 and 15 December 2009. The average energy harvested by a node during this period was 28.2Ah (at 12V). The energy consumption model that we constructed mimics the characteristics of our outdoor system [19] (including the energy consumed in sensing data, accessing memory, CPU operations, and so on) except for the energy used in data transmission. The amount of energy used for transmitting and receiving 1 bit of data over a distance d is expressed as follows [25]: where E elec is the energy consumed by the electronics (J/bit); α is the path loss (2 ≤ α ≤ 5); β is the energy used by the power amplifier in transmitting 1 bit over a distance of 1 m (J/bit/m); and d is the distance between the nodes (m). Table 2 shows the important parameters of this energy model, including the battery characteristics. α and β in Equation (6) 2 and 100

Traffic model
The simulation of SolarTC was tested on an application that runs on our outdoor testbed, so collect birdsong for studies of bird populations. We captured a pattern of traffic from the outdoor testbed to use in the simulation. We chose to explore a scenario in which nodes have different sensing rates, with ratios of 1:2:4 between them. This reflects real applications in which more interesting events usually occur at some locations than others. For example, in our application, sensors located near nests obtain more data than others. Each node in the simulation was randomly assigned one of the three sensing rates and creates traffic at that rate, unless that node is in sleep mode.

Simulated WSN
We simulated a WSN containing between 50 and 500 solar-powered nodes, spread randomly over an area of 800×800 m 2 . The maximum radio range was set to 200 m, and the period between runs of SolarTC k was half an hour. We use the modified EGR scheme [23] described in Section 5. Tables 3 and 4 summarize the experimental and performance parameters of our simulation respectively. Figure 5 shows how the residual energy E residual and the energy threshold E threshold vary under SolarTC 4 running on node n 30 . Node n 30 starts with an nearly half-charged  Level of fault-tolerance (k) 1 , 2 , a n d 4

Simulation results
Routing  battery. For the first 4 days, the residual energy drops below the threshold and stays there due to a small rate of energy harvest. Thus, node n 30 remains in energysaving mode and SolarTC 4 retains the LMST topology without attempting to enhance fault tolerance. In each of the following days, there are always a few hours when E residual is larger than E threshold , and thus n 30 operates as a fault-tolerant mode during these periods. Since energy is consumed more slowly when a node is operating as an ES-node, the changes in residual energy over the first 4 days exhibit the pattern labeled Type B in Figure 5, and over the next 5 days the changes follow Type C. Subsequently, the Type A pattern occurs when the node is always operating in fault-tolerant mode, and Type B when it is in energy-saving mode. We call this composite pattern Type C. Figure 6 shows the average number of FT-nodes when the network is running SolarTC 2 and SolarTC 4 , respectively. The larger value of k naturally incurs faster energy consumption by the FT-nodes. This quickly leads E residual to fall below E threshold , so most nodes returns to energysaving mode immediately. Therefore, the average number of FT-nodes decreases as the value of k gets larger. Moreover, the high rate of energy consumption at each node increases P sys , which raises E threshold . This makes it less likely that a node will operate as an FT-node. As shown in Figure 6, between 35% and 50% of all nodes are FT-nodes when k = 2, but only 25% to 35% are FT-nodes when k = 4. Figure 7 shows how the probability of achieving k-FTN connectivity varies with the number of nodes, for values of k of 2 and 4. We can immediately see that k-FTN connectivity increases with the number of nodes, regardless of the value of k. This is because the number of FTnodes is proportional to the total number of nodes, as shown in Figure 6. It is also apparent that larger values of k require more FT-nodes to preserve k-FTN connectivity, but larger values of k mean that there are actually fewer FT-nodes, as shown in Figure 6. As a result, the probability of achieving k-FTN connectivity drops as the k increases. As shown in Figure 7, 2-FTN connectivity can almost be achieved when the network has over 150 nodes, and 4-FTN connectivity is possible with over 350 nodes.
These results are significant for the deployment of sensors in the field. For example, suppose that there are 150 nodes and the value of k is set to 4. Then, each FT-node uses a high transmission power in an attempt to achieve 4-connectivity, as we see in Figure 8, but the probability of achieving 4-FTN connectivity is only about 20%. Thus this endeavor is likely to waste energy, and an attempt at kconnectivity should only be made if reliable transmission is at a premium.
FLSS [10] is an efficient algorithm for establishing an ad hoc network with k-connectivity. Since SolarTC only provides k-FTN connectivity, FLSS constructs a more robust network than SolarTC, for the same value of k. Therefore, it may not be fair simply to compare FLSS and SolarTC. But there is no topology control scheme more like SolarTC, as far as we know, so we compare the performance of FLSS with that of SolarTC, as a marginal reference. Figure 9 shows the average transmission range of all nodes, running FLSS and SolarTC, with k set to 2 and 4. Both schemes require larger transmission ranges to achieve the higher value of k. But SolarTC requires a  shorter range, and hence less power, than FLSS for the same value of k. But the difference is barely significant and may be caused by the schemes' different ways of using the energy available: FLSS simply tries to achieve kconnectivity and does not consider energy, whereas only the FT-nodes running SolarTC use residual energy to increase their transmission range, and SolarTC tries to achieve k-connectivity among those nodes alone. Therefore, as shown in Figure 8, the average transmission range of FT-nodes is larger than that of ES-nodes, and this difference increases when k = 4 ( Figure 8b). Thus, the transmission range of ES-nodes used by SolarTC is much smaller than the range of an average node running FLSS. It is this asymmetric assignment of transmission range that gives SolarTC its edge.
We can make one more interesting observation from Figure 8b. Generally, the transmission range of each node decreases when there are more nodes, since the density of nodes is higher. In Figure 8b, however, the FT-nodes show an opposite trend, until the number of nodes reaches 250. We suggest that this is related to the probability of 4-FTN connectivity, shown in Figure 7. Since the network is unlikely to achieve 4-FTN connectivity with few nodes, SolarTC 4 increases the range of each node to get as close to 4-FTN connectivity as possible. http://jwcn.eurasipjournals.com/content/2013/1/258 Figure 10 Average proportion of blackout time.
The proportion of blackout time at an average node for each scheme is shown in Figure 10. As the number of nodes grows, the average transmission range of each node decreases, as shown in Figure 9, but nodes' energy consumption increases since more data has to be relayed over more hop. Thus, the blackout time increases, as shown in Figure 10. Because SolarTC achieves a better balance than FLSS between workload and available energy across the network, there are fewer blackouts. Blackouts reduce a network's throughput and its capacity to acquire data, with a knock-on effect on the topology.
Finally, in Figure 11, we compare the throughput of the network at the sink node. It can be observed that increasing the fault-tolerance of the network by using a higher k reduces its throughput. This demonstrates the tradeoff between the robustness of the network, manifest as the number of redundant routes, and its capacity. Additionally, SolarTC achieves a better throughput than FLSS, since it has less blackout time (because of greater energy Figure 11 Throughput of the network. efficiency) and fewer nodes with a relatively high transmission range (due to the increased probability of spatial reuse and reduced MAC layer contention).

Conclusions
It is not easy to make good use of solar energy in a WSN, because its availability depends on the time, season, and weather. We propose a simple solar energy model that requires no forecasting but nevertheless helps individual nodes to make the best use of energy and hence network performance improves, in particular fault-tolerance.
Based on this energy model, we designed a localized scheme for adaptive topology control which maintains kconnectivity from all the energy-rich nodes in the network to a sink whenever possible; otherwise, it tries to keep as many paths as possible between these energy-rich nodes, so as to support energy-efficient routing. This scheme also increase network stability by reducing the unscheduled blackout time of solar-powered sensor nodes.