1 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/cm3[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 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 [35] 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 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 [69] 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.

  •  Minimizing the disadvantage of a fault-tolerant topology: Existing fault-tolerant topology control techniques which increase the transmission ranges of all nodes reduces the capacity of a network and increases MAC layer contention, whereas SolarTC only increases the transmission range of fault-tolerant nodes.

  •  Fully localized algorithm: A node running SolarTC only uses information about its neighbors which are one or two hops distant. Information about two-hop neighbors is obtained from one-hop neighbors.

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.

2 Background

2.1 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.

Figure 1
figure 1

Interactions between topology control and the routing and MAC layers of the protocol stack.

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.

2.2 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 k-vertex 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.

Figure 2
figure 2

An example of a two-connected network.

A considerable amount of work [68] has been done on topology control protocols that try to create fault-tolerant 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 fault-tolerant 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 fault-tolerant 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.

2.3 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 battery-less 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 solar-powered WSNs, including the work mentioned above, has focused on node-level design topics such as hardware architecture and system analysis.

A few researchers [1719] 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.

3 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 fault-tolerance.

Let Psolar 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 Eresidual, then the expected time Tfull before the node’s battery will be full can be expressed as follows:

T full ( E residual )= C - E residual P solar - P sys ,

where C is the battery capacity.

Note that the battery will only charge when Psolar > Psys. Otherwise, a node is not viable in the long term. We will explain how to control Psys 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:

E residual P sys T full ( E residual ).

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 Ethreshold, where

E threshold = P sys P solar C.

If Eresidual falls below Ethreshold, 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 Eresidual exceeds Ethreshold, it starts to operate as a fault-tolerant node, or FT-node, which allocates some of its available energy to enhancing fault tolerance.

Determining Ethreshold requires a knowledge of Psys and Psolar, which can both be estimated using moving averages. If P sys new and P solar new are the most recent samples of the rate of energy consumption and battery charging, then moving averages can be computed as follows:

P sys = ( 1 - θ sys ) P sys + θ P sys new ,
P solar = ( 1 - θ solar ) P solar + θ P solar new ,

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 Psys. Since Psys is proportional to the duty cycle, changing the duty cycle has a predicable effect on Psys. This means that the designer of a WSN can control Psys in an approximate way by adjusting the duty cycle. Therefore, Ethreshold, which is dependant on Psys, can also be controlled by varying the duty cycle, and this is important since the value of Ethreshold determines the number of FT nodes in the network.

4 Topology control

Definition 1 ( k -FTN connectivity ). A graph G has k-FTN connectivity if, for any two FT-nodes n1and n2, there are k pairwise vertex-disjoint paths from n1to n2on 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.

Table 1 Notation for SolarTC k ( i ) and FTTC k ( i )

4.1 SolarTC k algorithm

When sensor nodes are initially deployed, each node n i starts by constructing its localized neighborhood Nall(i) by exchanging 'hello’ messages with all nodes that are within its maximum transmission range r i max , 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 this connectivity as p i LMST . At this stage, node n i has complete knowledge of its one-hop neighborhood which can be reached with p i LMST . 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.

Figure 3
figure 3

Periodic invocation of SolarTC k ( i ) to adapt to the changing energy status.

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 Eresidual(i) in the node’s battery (lines 1 to 5). If Eresidual(i) > Ethreshold(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 FTNall(i) from the messages received in response to its transmission (lines 11 to 15). FTNall(i) should be updated at every node, regardless of its mode m i . If the node is an FT-node (m i  = 1), then FTNall(i) will be used in the construction of the backbone network which consists of the FT-nodes. If the node is an ES-node,FTNall(i) can still be used by the routing scheme to find energy-rich neighbors (Algorithm 1).

Algorithm 1 SolarTC k (i)

After updating FTNall(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 i LMST (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 |FTNall(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 i FTN (| FTN all (i)|), so that n i retains as many FT-nodes as possible in its neighbor list (line 20).

4.2 FTTC k algorithm

When the function FTTC k (i) is run by node n i , it computes p i FTN (k) and compares it with p i LMST . The larger of the two values then becomes that node’s minimum transmission power p i min , since p i FTN (k) is not necessarily sufficient to connect to all the neighbors of n i in Nall(i). Node n i then uses an iterative process to establish its actual transmission power p i , starting from p i min . This iteration ends when each node n j in FTNall(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).

Algorithm 2 FTTC k (i)

The algorithm terminates after at most |FTNall(i)|-k rounds. In each round (line 10), both of FTNcovered(i) and Δp i are recalculated (lines 13 to 16) if a broadcast message has been received from an FT-neighbor in FTNall(i). This is straightforward since the message contains information about that neighbor and its one-hop FT-neighbors. The algorithm terminates when FTNall(i) = FTNcovered(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 FTNall(i) - FTNcovered(i) to receive transmissions from node n i (line 24). Then, the node recalculates FTNcovered(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 FTNall(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.

4.3 Connectivity properties

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(FTTCk(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 FT-nodes is k-connected, and this becomes more likely as the number of FT-nodes increases.

As explained at the end of Section 3, Ethreshold can be roughly determined from the duty cycle. If a node reduces Ethreshold by decreasing its duty cycle, then that node is more likely to become an FT-node, since Ethreshold is more likely to drop below Eresidual. 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, Ethreshold 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 Ethreshold is more suitable and vice versa.

Theorem 2. ( Bi-directional Connectivity of SolarTC k ) The topology constructed by SolarTC k has only bi-directional 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 FT-node 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 FT-nodes 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 k-connected 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].

4.4 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.

4.4.2 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 Eresidual(i) drops below Ethreshold(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 FT-node 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.

4.4.3 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 Eresidual(i) and Ethreshold(i). However, frequent comparisons of Eresidual(i) and Ethreshold(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 Eresidual(i) exceeds Ethreshold(i). Eresidual(i) is very likely to sink below Ethreshold(i) almost at once. A similar but opposite effect is likely when a node becomes an ES-node. 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

5 Effects of SolarTC k on the routing protocol

SolarTC k produces a backbone network consisting of FT-nodes. 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 FT-nodes 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 SolarTC2 algorithm.

Figure 4
figure 4

Topologies constructed by SolarTC 2 . (a) No backbone (simply connected topology produced by LMST), (b) 2-connected backbone, (c) simply connected backbone, and (d) disconnected backbone.

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 v6, for example, might be routed to the sink along the path (v6,v5,v4,v3,v2,v1, sink), while data from v9 might take the route (v9,v3,v2,v1, sink). These paths impose a heavy load on nodes v1 and v2, and are likely to bring about an energy imbalance. Moreover, if nodes v1 or v2 fail, the whole WSN becomes useless.

The network shown in Figure 4b has more energy, and SolarTC2 makes nodes v2,v4,v7, and v10 FT-nodes, and uses them to construct a backbone with 2-connectivity. In the modified scheme, node v9 runs EGR and finds that nodes v7 and v10 are its FT-neighbors. EGR will choose the most suitable of these FT-neighbors to receive data and probably selects node v10, since it is closer to the sink node. In that case, data that has arrived at v10, which is an FT-node, will be routed over the backbone to the sink, along the path (v9,v10,v2, sink). Similarly, node v6 can be expected to send its data long the path (v6,v7,v4, sink).

In Figure 4c, nodes v2,v4,v8, and v10 are FT-nodes. But SolarTC2 cannot create a 2-connected network from these FT-nodes since they are not 2-connected, even using maximum power, because node v4 cannot contact node v8. So SolarTC2 creates as many paths as possible among the FT-nodes. In this example, EGR running on node v9 would send data to node v10 instead of node v3, since node v10 is a FT-neighbor. Even though node v10 is not 2-connected to the sink, it has more energy than v3, and its connectivity gives it more fault-tolerance. Node v10 routes the data to the sink over the backbone along the path (v9,v10,v2, sink).

Lastly, there may be an isolated FT-node, like v7 in Figure 4d. In this case, SolarTC2 keeps the transmission power at v7 as small as possible. This minimum power is p i FTN (0), which is the same as p i LMST . This does not affect the performance since v7 cannot reach any other FT-nodes, even if it were to use its maximum transmission power p i max . EGR will then make node v6 route data to node v7 instead of node v5, since node v7 is an FT-neighbor. But node v7 has no FT-neighbors, and so it applies EGR to all its neighbors, and the resulting path is (v7,v9,v3,v2, sink). Although node v7 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 v7 since it has enough energy to accommodate a high workload.

6 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.

6.1 Simulation

6.1.1 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]:

E = E elec trans + β d α + E elec receive = 2 E elec + β d α ,

where Eelec 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.

Table 2 Energy model parameters

6.1.2 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.

6.1.3 Simulated WSN

We simulated a WSN containing between 50 and 500 solar-powered nodes, spread randomly over an area of 800 × 800 m2. 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.

Table 3 Experimental parameters used in the simulation
Table 4 Performance parameters of the simulation

6.2 Simulation results

Figure 5 shows how the residual energy Eresidual and the energy threshold Ethreshold vary under SolarTC4 running on node n30. Node n30 starts with an nearly half-charged 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 n30 remains in energy-saving mode and SolarTC4 retains the LMST topology without attempting to enhance fault tolerance. In each of the following days, there are always a few hours when Eresidual is larger than Ethreshold, and thus n30 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 5
figure 5

Simulated performance of SolarTC 4 in a sample node.

Figure 6 shows the average number of FT-nodes when the network is running SolarTC2 and SolarTC4, respectively. The larger value of k naturally incurs faster energy consumption by the FT-nodes. This quickly leads Eresidual to fall below Ethreshold, so most nodes returns to energy-saving 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 Psys, which raises Ethreshold. 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 6
figure 6

Variation in the average number of FT-nodes with k .

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 FT-nodes 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.

Figure 7
figure 7

Probability of k -FTN connectivity for different values of k .

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 k-connectivity should only be made if reliable transmission is at a premium.

Figure 8
figure 8

Average transmission ranges of FT- and ES-nodes.

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 k-connectivity 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.

Figure 9
figure 9

Average transmission range of all nodes, running FLSS and SolarTC. (a) SolarTC 2 and (b) SolarTC4.

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, SolarTC4 increases the range of each node to get as close to 4-FTN connectivity as possible.

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.

Figure 10
figure 10

Average proportion of blackout time.

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 trade-off 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 efficiency) and fewer nodes with a relatively high transmission range (due to the increased probability of spatial reuse and reduced MAC layer contention).

Figure 11
figure 11

Throughput of the network.

7 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 k-connectivity 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.