51 WSN Coverage Examples
51.1 Learning Objectives
By the end of this chapter, you will be able to:
- Perform k-Coverage Analysis: Calculate 2-coverage levels across a 100m x 100m grid with 12+ sensors and identify gap regions requiring remediation
- Design Energy-Efficient Schedules: Compute duty cycling parameters (target 2-5%) for 5-year deployments using D-cell lithium batteries (19,000 mAh)
- Analyze Sensing Range Trade-offs: Evaluate 3-year Total Cost of Ownership comparing short-range (8m) vs. long-range (15m) sensor deployments
- Apply the Zhang-Hou Theorem: Verify connectivity conditions (Rc >= 2Rs) for both Boolean and probabilistic sensing models
- Calculate Coverage Remediation Plans: Determine the number and placement of additional sensors to achieve 100% k-coverage from an initial 58% baseline
- Experiment with Interactive Tools: Use OJS-based coverage playground to visualize k-coverage, redundancy, and coverage holes in real time
Key Concepts
- Area Coverage: Fraction of the target field within sensing range of at least one active sensor
- k-Coverage: Coverage guarantee where every point is monitored by at least k sensors for redundancy
- Sensing Range: Maximum detection distance defining the circular sensing footprint of each sensor node
- Coverage Hole: Unmonitored region created when sensors fail or sleep simultaneously in an area
- Coverage Lifetime: Time until the network can no longer maintain required coverage ratio due to energy depletion
- Sleep Scheduling: Coordinated duty cycling protocol ensuring coverage is maintained while sensors take turns sleeping
- Connectivity-Coverage: Joint property: when Rc ≥ 2Rs, a fully connected network is also fully covered
51.2 Minimum Viable Understanding
- k-Coverage grid analysis: Discretize a deployment area into 5m grid cells and count covering sensors per point; 2-coverage means every point is within sensing range of at least 2 sensors, which is the minimum for critical infrastructure like water treatment.
- Duty cycle energy budgeting: Average current must stay below battery capacity divided by target lifetime (e.g., 19,000 mAh / 43,800 hours = 434 uA); a 2.35% duty cycle means waking 85 seconds per hour for listening and sleeping the remaining 3,515 seconds.
- Total Cost of Ownership over unit cost: A sensor costing 89% more per unit ($85 vs. $45) can yield 35% lower 3-year TCO when fewer sensors are needed (15 vs. 24), because deployment, installation, and battery replacement costs compound with node count.
Sensor Squad: Planning Where to Put Our Sensor Friends
Sammy the sound sensor is helping plan a big sensor sleepover at a water park! “We need to make sure every spot in the park has at least TWO of us watching,” Sammy explains. “If I fall asleep on the job, my buddy Lila is still keeping an eye on things!”
Lila the light sensor adds: “But we can’t just pile up in the middle – the CORNERS are where trouble sneaks in! Imagine you and your friends standing in a circle in a big room. The corners of the room are the hardest spots to see.”
Max the motion sensor figured out the energy puzzle: “We take turns napping! I wake up for just 85 seconds every hour – like peeking out from under my blanket every so often. That way my batteries last FIVE whole years without anyone climbing a mountain to replace them.”
Bella the bio sensor did the math on shopping: “It’s like buying shoes. The expensive pair ($85) that lasts a long time is actually cheaper than buying lots of cheap pairs ($45 each) because you need WAY fewer of the good ones!”
The Sensor Squad Lesson: Planning WHERE to put sensors matters more than HOW MANY you have. You need to cover the tricky corners, take turns sleeping to save energy, and always think about the TOTAL cost – not just the price tag!
For Beginners: Understanding Coverage Worked Examples
What is this chapter? This chapter provides step-by-step worked examples that show how to apply coverage theory to real-world problems.
Key Examples:
| Example | Focus | Application |
|---|---|---|
| k-Coverage Analysis | Coverage gaps and remediation | Water treatment facility |
| Duty Cycling Budget | Energy-efficient scheduling | Wildlife tracking WSN |
| Sensing Range Trade-off | Total cost of ownership | Building automation |
Why Practice Matters:
- Theory without practice doesn’t solve real problems
- Worked examples show complete solution workflows
- Interactive tools let you experiment without costly mistakes
51.3 Prerequisites
Before diving into this chapter, you should be familiar with:
- WSN Coverage: Core Concepts: Coverage fundamentals and the Zhang-Hou theorem
- WSN Coverage: Problem Types: Area, point, and barrier coverage formulations
51.4 Coverage Analysis Decision Workflow
The following diagram shows the systematic approach used across all three worked examples in this chapter – from defining requirements through gap analysis to final deployment decisions.
51.5 Worked Example: k-Coverage Analysis for Critical Infrastructure
51.5.1 Solution Step 1: Individual Sensor Coverage Area
First, calculate the coverage area of each sensor using the Boolean sensing model:
\[ A_{sensor} = \pi \times R_s^2 = \pi \times 20^2 = 1,257 \text{ m}^2 \]
Total theoretical coverage (no overlap): \[ A_{total} = 12 \times 1,257 = 15,084 \text{ m}^2 \]
Coverage ratio (theoretical): \[ \frac{A_{total}}{A_{facility}} = \frac{15,084}{10,000} = 1.51 \]
This 151% theoretical coverage suggests adequate sensors for 1-coverage, but does not guarantee 2-coverage due to overlap distribution.
51.5.2 Solution Step 2: Grid Point Analysis Method
To verify k-coverage, we discretize the facility into a grid and count covering sensors for each point.
Grid Configuration:
- Grid spacing: 5m x 5m
- Grid points: 21 x 21 = 441 points (including boundaries)
- Analysis points: 400 interior points (20 x 20)
For each grid point (x, y), count sensors within range:
\[ \text{Coverage count at } (x,y) = \sum_{i=1}^{12} \mathbf{1}\left[\sqrt{(x - x_i)^2 + (y - y_i)^2} \leq 20\right] \]
Putting Numbers to It
Once you compute per-grid coverage counts, turn them into a single deployment KPI: k-coverage percentage.
\[ C_k = \frac{N_{\text{points with count}\ge k}}{N_{total}}\times 100\% \]
Worked example: In this facility, for \(k=2\):
\[ N_{\ge2}=184+48=232,\qquad N_{total}=400 \]
\[ C_2 = \frac{232}{400}\times 100\% = 58\% \]
After remediation, \(N_{\ge2}=352\):
\[ C_2 = \frac{352}{400}\times 100\% = 88\% \]
This KPI makes coverage improvements measurable and comparable across design iterations.
Sample Calculations:
| Grid Point | Distance to S1 | Distance to S2 | Distance to S5 | Distance to S10 | Distance to S12 | Coverage Count |
|---|---|---|---|---|---|---|
| (25, 25) | 7.07m ✓ | 25.5m ✗ | 35.4m ✗ | 27.0m ✗ | 35.4m ✗ | 1 |
| (35, 35) | 21.2m ✗ | 21.2m ✗ | 21.2m ✗ | 15.0m ✓ | 21.2m ✗ | 1 |
| (50, 50) | 42.4m ✗ | 30.0m ✗ | 0.0m ✓ | 15.0m ✓ | 0.0m ✓ | 3* |
*Note: S5 and S12 are at the same position (50,50), so point (50,50) is covered by S5, S10, S11, and S12 = 4 sensors.
51.5.3 Solution Step 3: Complete k-Coverage Analysis
Detailed Coverage Distribution:
| Coverage Level | Grid Points | Percentage | Status |
|---|---|---|---|
| 0-coverage (holes) | 12 | 3.0% | CRITICAL - No monitoring |
| 1-coverage | 156 | 39.0% | WARNING - Single point of failure |
| 2-coverage | 184 | 46.0% | ACCEPTABLE - Meets requirement |
| 3+-coverage | 48 | 12.0% | REDUNDANT - Fault tolerant |
2-Coverage Achievement: 184 + 48 = 232 points (58%) meet the 2-coverage requirement.
51.5.4 Solution Step 4: Gap Analysis and Location
The 12 coverage holes (0-coverage points) and 156 single-coverage points are concentrated in specific regions:
Gap Location Summary:
| Region | Coordinates | Hole Points | 1-Coverage Points | Issue |
|---|---|---|---|---|
| NW Corner | (0-10, 90-100) | 4 | 15 | Nearest sensor S7 at (20,80) |
| NE Corner | (90-100, 90-100) | 4 | 18 | Nearest sensor S9 at (80,80) |
| SW Corner | (0-10, 0-10) | 2 | 12 | Nearest sensor S1 at (20,20) |
| SE Corner | (90-100, 0-10) | 2 | 14 | Nearest sensor S3 at (80,20) |
| Total Gaps | — | 12 | 59 | Corners beyond Rs from edge sensors |
51.5.5 Solution Step 5: Remediation Plan
To achieve 100% 2-coverage, we need to add sensors to cover corner regions:
Proposed Additional Sensors:
| New Sensor | Position | Coverage Contribution |
|---|---|---|
| S13 | (10, 10) | Covers SW corner, overlaps with S1, S4 |
| S14 | (90, 90) | Covers NE corner, overlaps with S9, S6 |
| S15 | (10, 90) | Covers NW corner, overlaps with S7, S4 |
| S16 | (90, 10) | Covers SE corner, overlaps with S3, S6 |
After Adding 4 Corner Sensors:
| Coverage Level | Before | After | Change |
|---|---|---|---|
| 0-coverage | 12 (3%) | 0 (0%) | -12 points |
| 1-coverage | 156 (39%) | 48 (12%) | -108 points |
| 2-coverage | 184 (46%) | 304 (76%) | +120 points |
| 3+-coverage | 48 (12%) | 48 (12%) | No change |
Final 2-Coverage: 304 + 48 = 352 points (88%) — significant improvement but still not 100%.
For Full 100% 2-Coverage: Add 2 more sensors at (50, 10) and (50, 90) to cover edge midpoints:
| Sensor | Position | Purpose |
|---|---|---|
| S17 | (50, 10) | South edge midpoint |
| S18 | (50, 90) | North edge midpoint |
Final Configuration: 18 sensors achieve 100% 2-coverage for the water treatment facility.
51.5.6 Final Answer
k-Coverage Analysis Summary
Initial State (12 sensors):
- 2-coverage achieved: 58% of facility area
- Coverage holes: 3% (12 grid points) — unacceptable for critical infrastructure
- Single coverage risk: 39% (156 points) — vulnerable to single sensor failure
Remediation Required:
- Minimum fix: Add 2 sensors at (10,10) and (90,90) to eliminate coverage holes
- Full 2-coverage fix: Add 6 sensors (4 corners + 2 edge midpoints) → 18 total sensors
Cost-Benefit Analysis: | Configuration | Sensors | 2-Coverage | Investment | Risk Level | |————–|———|————|————|————| | Current | 12 | 58% | Baseline | HIGH | | +2 corners | 14 | 72% | +17% cost | MEDIUM | | +4 corners | 16 | 88% | +33% cost | LOW | | +6 (full) | 18 | 100% | +50% cost | MINIMAL |
Recommendation: For critical water treatment infrastructure, the +50% sensor investment to achieve 100% 2-coverage is justified by: 1. Regulatory compliance — water safety standards require redundant monitoring 2. Liability protection — documented 2-coverage demonstrates due diligence 3. Operational continuity — any sensor failure still maintains 1-coverage
51.5.7 Interpretation: Why k-Coverage Matters for Critical Infrastructure
This worked example illustrates several key principles:
Theoretical vs. Practical Coverage: Even with 151% theoretical coverage ratio, only 58% of the area achieved the required 2-coverage level. Sensor placement geometry matters more than raw sensor count.
Edge Effects: Corner regions are inherently problematic in rectangular deployments. Sensors must be positioned closer to boundaries than their sensing range to eliminate corner gaps.
Fault Tolerance Quantification: In the original deployment, 42% of the facility would have no backup monitoring if a single sensor failed — unacceptable for water treatment where chemical leaks or contamination events require immediate detection.
Cost-Coverage Trade-off: Achieving 100% k-coverage typically requires 30-50% more sensors than 100% 1-coverage. This premium is justified for critical infrastructure but may be excessive for non-critical applications.
Grid Analysis Method: The 5m grid discretization provides sufficient resolution (400 analysis points) to identify coverage patterns while remaining computationally tractable. Finer grids (2m spacing = 2,500 points) provide more precision but may be overkill for planning purposes.
51.6 Worked Example: Duty Cycling Energy Budget for Multi-Year Deployment
Scenario: Wildlife Tracking WSN
A wildlife tracking WSN monitors animal migration corridors in a remote forest preserve. The deployment must operate for 5 years without battery replacement due to access constraints (helicopter-only site access costs $15,000 per visit).
Given:
| Parameter | Value |
|---|---|
| Sensor nodes | 50 |
| Sensing range (Rs) | 15 m (PIR motion + temperature) |
| Battery capacity | 19,000 mAh (D-cell lithium) |
| Active mode current | 28 mA (sensor + radio TX) |
| Receive mode current | 18 mA (radio listening) |
| Sleep mode current | 12 uA |
| Sensing event frequency | 3 detections/day average |
| Data packet size | 200 bytes |
| Transmission time | 50 ms per packet |
| Target lifetime | 5 years (43,800 hours) |
Steps:
- Calculate required average current for 5-year lifetime:
- Target lifetime = 5 years = 43,800 hours
- Required average current: I_avg = 19,000 mAh / 43,800 h = 0.434 mA = 434 uA
- Calculate energy budget per day:
- Daily energy = 19,000 mAh / (5 x 365 days) = 10.4 mAh per day
- In mA-hours: 10.4 mAh = 10,400 uAh available daily
- Calculate fixed daily active time for sensing events:
- 3 events/day x 50 ms TX time = 150 ms TX per day
- TX energy: 28 mA x (150 ms / 3,600,000 ms/h) = 0.00117 mAh per day
- This is negligible (<0.02% of budget)
- Calculate maximum duty cycle for listening mode:
- Remaining budget: 10.4 mAh - 0.00117 mAh = ~10.4 mAh for duty cycling
- Let D = duty cycle (fraction)
- Average current = D x I_receive + (1-D) x I_sleep
- 434 uA = D x 18,000 uA + (1-D) x 12 uA
- 434 = 18,000D + 12 - 12D
- 422 = 17,988D
- D = 422 / 17,988 = 0.0235 = 2.35%
- Calculate wake schedule from duty cycle:
- 2.35% duty cycle = 2.35% of each hour awake
- Active time per hour: 0.0235 x 3,600 s = 84.6 seconds per hour
- Sleep time per hour: 3,515.4 seconds
- Schedule: Wake for 85 seconds, sleep for 3,515 seconds, repeat
- Verify energy calculation:
- Average current = (0.0235 x 18 mA) + (0.9765 x 0.012 mA)
- Average current = 0.423 mA + 0.0117 mA = 0.435 mA (matches target)
- Calculate detection latency:
- Maximum time between wake-ups: 3,515 seconds = 58.6 minutes
- Average detection latency: 3,515 / 2 = 29.3 minutes
- For wildlife tracking (slow-moving animals), this latency is acceptable
Result:
| Metric | Value | Assessment |
|---|---|---|
| Duty cycle | 2.35% | Achievable with standard protocols |
| Wake time per hour | 85 seconds | Sufficient for RX + TX |
| Maximum detection latency | 58.6 minutes | Acceptable for migration tracking |
| Battery lifetime | 5 years | Meets requirement |
| Cost savings | $75,000 | Avoids 5 battery replacement visits |
Key Insight: The 2.35% duty cycle provides a practical balance for wildlife monitoring. The key realization is that receive mode dominates energy consumption, not transmission. Even though TX current (28 mA) exceeds RX current (18 mA), the sensor spends far more time listening for coordination messages than transmitting data. For event-driven applications with low event rates (3/day), the event sensing and TX energy is negligible compared to the duty-cycling RX overhead. Designers should optimize listening schedules first, then worry about transmission efficiency.
51.6.1 Interactive: Duty Cycle Calculator
51.7 Worked Example: Sensing Range vs Communication Range Trade-off
Scenario: Building Automation System
A building automation system monitors occupancy across a 3-floor office building. The architect must decide between two sensor options with different sensing and communication range characteristics.
Given:
| Parameter | Option A (Short-Range Sensor) | Option B (Long-Range Sensor) |
|---|---|---|
| Sensing range (Rs) | 8 m | 15 m |
| Communication range (Rc) | 25 m | 35 m |
| Cost per sensor | $45 | $85 |
| Power consumption | 12 mA active | 22 mA active |
| Floor dimensions | 50m x 30m per floor (1,500 m^2 each) | |
| Total area | 4,500 m^2 (3 floors) |
Steps:
- Verify Zhang-Hou connectivity condition:
- Option A: Rc = 25m, 2Rs = 16m. Since 25 >= 16, connectivity guaranteed if coverage achieved
- Option B: Rc = 35m, 2Rs = 30m. Since 35 >= 30, connectivity guaranteed if coverage achieved
- Calculate minimum sensors for 1-coverage per floor:
- Option A (Rs = 8m):
- Sensor coverage area: pi x 8^2 = 201 m^2
- Minimum per floor (theoretical): 1,500 / 201 = 7.5 sensors
- With triangular lattice packing efficiency (~90.7%): 7.5 / 0.907 = 8.3 ~ 9 sensors per floor
- Total for 3 floors: 27 sensors
- Option B (Rs = 15m):
- Sensor coverage area: pi x 15^2 = 707 m^2
- Minimum per floor (theoretical): 1,500 / 707 = 2.1 sensors
- With packing efficiency: 2.1 / 0.907 = 2.3 ~ 3 sensors per floor
- Total for 3 floors: 9 sensors
- Option A (Rs = 8m):
- Calculate actual sensors needed (accounting for room layout):
- Option A: Office has 6 rooms per floor (5 offices + 1 open area)
- Need at least 1 sensor per room for full coverage
- Minimum: 6 sensors per floor x 3 floors = 18 sensors
- With 8m range, larger rooms need 2 sensors: 24 sensors total
- Option B: With 15m range, most rooms covered by single sensor
- Open area (30m x 20m) needs 2 sensors
- Offices (5 x 10m x 6m each) each need 1 sensor
- Per floor: 2 + 5 = 7 sensors, but shared coverage reduces to 5
- Total: 15 sensors
- Option A: Office has 6 rooms per floor (5 offices + 1 open area)
- Calculate deployment cost:
| Metric | Option A | Option B |
|---|---|---|
| Sensors needed | 24 | 15 |
| Hardware cost | 24 x $45 = $1,080 | 15 x $85 = $1,275 |
| Installation (est. $30/sensor) | $720 | $450 |
| Total deployment cost | $1,800 | $1,725 |
- Calculate operational cost (1-year, 1% duty cycle):
Option A: 24 sensors x 12 mA x 0.01 duty = 2.88 mA average x 24 = 69.1 mAh/day
With 2,000 mAh batteries: replacement every 29 days
Battery replacements/year: 365/29 = 12.6 cycles x 24 sensors = 302 batteries
Battery cost: 302 x $3 = $906/year
Option B: 15 sensors x 22 mA x 0.01 duty = 3.3 mA average x 15 = 49.5 mAh/day
With 2,000 mAh batteries: replacement every 40 days
Battery replacements/year: 365/40 = 9.1 cycles x 15 sensors = 137 batteries
Battery cost: 137 x $3 = $411/year
- Calculate 3-year Total Cost of Ownership (TCO):
| Cost Component | Option A | Option B |
|---|---|---|
| Initial deployment | $1,800 | $1,725 |
| 3-year batteries | $2,718 | $1,233 |
| 3-Year TCO | $4,518 | $2,958 |
| Savings | — | $1,560 (35%) |
Result:
| Decision Factor | Option A (Short-Range) | Option B (Long-Range) | Winner |
|---|---|---|---|
| Sensors required | 24 | 15 | Option B |
| Initial cost | $1,800 | $1,725 | Option B |
| Annual battery cost | $906 | $411 | Option B |
| 3-year TCO | $4,518 | $2,958 | Option B |
| Installation complexity | Higher (more nodes) | Lower | Option B |
| Failure points | 24 | 15 | Option B |
Key Insight: Despite Option B sensors costing 89% more per unit ($85 vs $45), the total cost of ownership is 35% lower because fewer sensors are needed. The Zhang-Hou condition (Rc >= 2Rs) is satisfied by both options, ensuring connectivity follows from coverage. For building automation, Option B’s longer sensing range reduces total sensor count by 38%, which compounds into maintenance savings over the deployment lifetime. The lesson: evaluate WSN economics on TCO, not unit cost. Longer-range sensors often provide better value despite higher per-unit pricing.
Common Pitfalls in WSN Coverage Planning
Confusing theoretical coverage ratio with actual k-coverage: A 151% theoretical coverage ratio (total sensor area / deployment area) does NOT guarantee even 1-coverage everywhere. Overlap distribution and boundary effects mean the actual k-coverage can be as low as 58%. Always verify with grid-point analysis.
Ignoring edge and corner effects in rectangular deployments: Sensors placed at distance Rs from walls leave corner regions completely uncovered. In the water treatment example, 3% of the area had zero coverage because corner sensors were too far from boundaries. Rule of thumb: place corner sensors at most Rs/2 from each wall.
Optimizing TX power while ignoring RX listening costs: In the wildlife tracking example, transmission energy was less than 0.02% of the daily budget, while receive-mode listening consumed over 99%. Engineers often focus on reducing TX power when the real savings come from optimizing the duty-cycled listening schedule.
Evaluating sensors on unit cost instead of Total Cost of Ownership: A sensor costing $85 (89% more than a $45 alternative) delivered 35% lower 3-year TCO because fewer units were needed. Always factor in installation ($30/sensor), battery replacement frequency, and maintenance labor when comparing options.
Assuming the Zhang-Hou condition (Rc >= 2Rs) alone guarantees network quality: While the theorem proves that coverage implies connectivity when Rc >= 2Rs, it says nothing about multi-hop routing efficiency, latency, or throughput. A connected network may still have poor data delivery if communication paths are too long or congested.
51.8 Practice Exercises
Apply your knowledge of WSN coverage concepts with these hands-on exercises.
Exercise 1: Coverage Area Calculation
Objective: Calculate sensor requirements for different coverage scenarios using Boolean and probabilistic models.
Scenario: You need to deploy sensors to monitor a rectangular field (500m × 300m). Sensors have sensing radius Rs = 25m.
Tasks:
- Boolean Coverage Model: Calculate minimum number of sensors needed for 100% coverage assuming perfect circular sensing ranges
- Grid Deployment: Design a regular grid deployment and calculate actual coverage percentage
- Probabilistic Model: If detection probability at radius r is P(r) = e^(-0.1r), calculate required sensor density for 90% detection probability at any point
- Coverage Holes: Identify potential coverage gaps in your grid design and propose solutions
Expected Outcome:
- Understand difference between theoretical and practical coverage
- Learn to calculate sensor density for different coverage models
- Recognize trade-offs between coverage guarantee and sensor count
Solution Hints:
- Theoretical minimum: Area / (π × Rs²) ≈ 500×300 / (π × 25²) ≈ 76 sensors
- Grid spacing: For overlapping coverage, space sensors at √3 × Rs ≈ 43m intervals
- Probabilistic: Requires integral calculus or numerical simulation
- Coverage holes appear at grid cell corners furthest from sensors
Exercise 2: Barrier Coverage Design
Objective: Design k-barrier coverage for border surveillance applications.
Scenario: Secure a 2km border using motion sensors. Each sensor has 40m detection range. Detect any crossing with 99% probability (requires 2-barrier coverage).
Tasks:
- Calculate minimum sensors needed for weak 1-barrier coverage
- Calculate sensors for strong 2-barrier coverage
- Design sensor placement: create deployment map showing sensor positions
- Analyze robustness: if 10% of sensors fail randomly, what is probability of creating a gap in barrier?
- Propose redundancy strategy to maintain coverage under node failures
Expected Outcome:
- Understand weak vs. strong barrier coverage
- Learn to design fault-tolerant barrier deployments
- Develop skills in reliability analysis
Solution Approach:
- Weak 1-barrier: 2000m / (2 × 40m) = 25 sensors (single line)
- Strong 2-barrier: Need overlapping coverage belts, ~50-60 sensors in staggered rows
- Reliability: Use binomial probability to calculate gap formation
- Redundancy: Deploy 30% extra sensors or use mobile backup sensors
Exercise 3: Coverage vs. Connectivity Trade-off Analysis
Objective: Explore the relationship between coverage and connectivity using simulation.
Scenario: Random deployment of N sensors in 500m × 500m area. Sensing range Rs = 30m, communication range Rc varies.
Tasks:
- For Rc/Rs ratios of [1.0, 1.5, 2.0, 2.5, 3.0], simulate 100 random deployments with N = 100 sensors
- For each deployment, calculate: (a) Coverage percentage, (b) Connectivity (largest connected component size)
- Plot coverage vs. connectivity for different Rc/Rs ratios
- Verify Zhang-Hou theorem: does coverage → connectivity when Rc ≥ 2Rs?
- Identify minimum Rc/Rs ratio that ensures connectivity for your deployments
Expected Outcome:
- Understand coverage-connectivity relationship empirically
- Gain experience with Monte Carlo simulation methods
- Learn to validate theoretical results through experimentation
Implementation (Python + matplotlib):
import random
import matplotlib.pyplot as plt
def random_deployment(N, area_size, Rs, Rc):
nodes = [(random.uniform(0, area_size),
random.uniform(0, area_size)) for _ in range(N)]
coverage = calculate_coverage(nodes, Rs, area_size)
connectivity = calculate_connectivity(nodes, Rc)
return coverage, connectivity
# Run simulations and plot results
Exercise 4: Optimal Sensor Activation for Energy Efficiency
Objective: Implement and evaluate coverage-preserving sleep scheduling algorithms.
Scenario: Over-deployed WSN with 200 sensors covering 400m × 400m area. Rs = 20m, Rc = 50m. Goal: Maximize network lifetime while maintaining 100% coverage.
Tasks:
- Coverage Redundancy Analysis: For each point in area, count how many sensors cover it. Create heat map.
- Greedy Selection Algorithm: Implement algorithm to select minimum sensor set for full coverage:
- Start with all sensors OFF
- Iteratively add sensor that covers most uncovered area
- Stop when 100% coverage achieved
- Distributed Sleep Scheduling: Implement protocol where sensors decide locally to sleep if their coverage area is redundantly covered
- Lifetime Simulation: Simulate 1000 rounds of data collection with rotation. Compare active sensor count and network lifetime vs. always-on approach
Expected Outcome:
- Learn to implement coverage-preserving scheduling algorithms
- Understand centralized vs. distributed approaches
- Develop optimization skills for energy-coverage trade-offs
Algorithm Pseudocode:
def greedy_coverage(sensors, area, Rs):
active = []
uncovered = get_grid_points(area)
while uncovered:
best_sensor = max(sensors,
key=lambda s: count_covered(s, uncovered, Rs))
active.append(best_sensor)
uncovered = remove_covered(uncovered, best_sensor, Rs)
return active
# Expected: 40-60% sensor reduction with full coverage51.9 Interactive: Sensor Coverage Playground
Interactive Coverage Visualization
Explore WSN coverage concepts hands-on with this interactive simulation. Place sensors on a 2D grid, adjust sensing radius, and visualize coverage metrics including k-coverage, coverage holes, and redundant areas.
Instructions:
- Click on the grid to place/remove sensors
- Adjust the sensing radius slider to change detection range
- Toggle k-coverage mode to see areas covered by 1, 2, or more sensors
- Observe real-time coverage statistics
Coverage Metrics:
Analysis Guide:
| Coverage Level | Status | Interpretation |
|---|---|---|
| 1-coverage 100% | Minimum viable | Every point monitored by at least 1 sensor |
| 2-coverage 100% | Fault tolerant | Network survives 1 sensor failure |
| Redundancy > 30% | Energy inefficient | Consider duty cycling to extend lifetime |
| Holes > 5% | Coverage gaps | Add sensors or increase radius |
Try These Experiments:
- Minimum Coverage: Place sensors to achieve 100% 1-coverage with fewest sensors
- Barrier Coverage: Create a line of sensors across the grid - can you cover a “border”?
- K-Coverage Trade-off: Achieve 2-coverage and note how many more sensors are needed
- Redundancy Analysis: Over-deploy sensors and observe redundancy percentage for duty cycling potential
Phantom Figure Gallery
The following AI-generated figures provide alternative visual representations of concepts covered in this chapter. These “phantom figures” offer different artistic interpretations to help reinforce understanding.
51.9.1 Coverage Types
51.9.2 Coverage Algorithms
Worked Example: Coverage Gap Remediation for Bridge Monitoring
Scenario: A structural health monitoring WSN on a 500m bridge has coverage gaps after initial deployment. Calculate the minimum additional sensors needed to achieve 100% 1-coverage.
Given:
- Bridge dimensions: 500m × 20m = 10,000 m²
- Initial deployment: 60 sensors (random placement during construction)
- Sensing range (Rs): 15m (strain gauge + accelerometer)
- Current coverage: 78% (verified via grid sampling)
- Target: 100% 1-coverage (no gaps acceptable for structural safety)
Step 1: Identify coverage gaps via grid analysis:
Grid sampling resolution: 2m × 2m = 0.04 m² per point
Total grid points: 10,000 / 0.04 = 250,000 points (too dense!)
Practical sampling: 5m × 5m grid
Grid points: (500/5) × (20/5) = 100 × 4 = 400 points
Coverage check results:
- Covered points: 312 (78%)
- Uncovered points: 88 (22%)
- Gap clusters: 5 distinct regions
Step 2: Analyze gap regions:
| Gap ID | Location | Dimensions | Uncovered Points | Cause |
|---|---|---|---|---|
| Gap 1 | 50-80m, south side | 30m × 8m | 24 | Sensor deployment miss |
| Gap 2 | 180-200m, center | 20m × 12m | 19 | Sensor failure (dead battery) |
| Gap 3 | 320-340m, north side | 20m × 10m | 16 | Insufficient overlap |
| Gap 4 | 420-435m, south side | 15m × 8m | 12 | Edge effect |
| Gap 5 | 480-495m, entire width | 15m × 20m | 17 | End-of-bridge boundary |
Step 3: Calculate minimum sensors per gap:
Strategy: Place sensors at gap centers to maximize coverage
Gap 1 (30m × 8m):
Place sensor at (65, 4) → covers 15m radius
Remaining gap: 30-30=0m width, but 8m width requires 2 sensors
Sensors needed: 2
Gap 2 (20m × 12m):
Place sensor at (190, 10) → covers 15m radius
Covered width: min(20, 30m diameter) = 20m ✓
Covered length: min(12, 30m diameter) = 12m ✓
Sensors needed: 1
Gap 3 (20m × 10m):
Similar to Gap 2
Sensors needed: 1
Gap 4 (15m × 8m):
Single sensor sufficient (within 30m diameter coverage)
Sensors needed: 1
Gap 5 (15m × 20m):
Place sensor at (488, 10) → covers to edge
Entire gap within 15m radius
Sensors needed: 1
Step 4: Verify proposed placement achieves 100% coverage:
Original sensors: 60
Additional sensors: 2 + 1 + 1 + 1 + 1 = 6
Total sensors after remediation: 66
Coverage verification (grid sampling):
- Covered points after adding 6 sensors: 400 / 400 = 100% ✓
- Maximum distance to nearest sensor: 14.8m < Rs (15m) ✓
- All gap clusters eliminated ✓
Step 5: Calculate cost-benefit of remediation vs redeployment:
| Option | Approach | Sensor Count | Labor | Total Cost | Coverage |
|---|---|---|---|---|---|
| A: Remediation | Add 6 sensors to gaps | 66 | 4 hours × $75 = $300 | 6 × $120 + $300 = $1,020 | 100% |
| B: Optimal redeployment | Remove all, redeploy 48 in grid | 48 | 40 hours × $75 = $3,000 | 48 × $120 + $3,000 = $8,760 | 100% |
| C: Accept gaps | Do nothing | 60 | $0 | $0 | 78% |
Result: Targeted remediation with 6 additional sensors ($1,020 total) achieves 100% coverage at 88% lower cost than optimal redeployment ($8,760). The key insight is that fixing gaps is far cheaper than starting over, even though the final sensor count (66) exceeds the optimal (48) by 37%.
Key Lesson: Coverage gap remediation via targeted sensor placement is almost always more cost-effective than redeployment, despite being sub-optimal in sensor count. The labor cost of removing and reinstalling 60 sensors ($3,000) dwarfs the hardware cost of 6 additional sensors ($720) — optimize for total cost of ownership, not sensor count minimization.
Decision Framework: When to Remediate vs Redeploy
Use this framework to decide between gap remediation and full redeployment:
| Factor | Favor Remediation (Add Sensors) | Favor Redeployment (Start Over) | Threshold |
|---|---|---|---|
| Coverage gap size | <30% of area uncovered | >50% uncovered | 30-50% decision zone |
| Sensor over-deployment | <40% more than optimal | >2× optimal sensor count | 1.4-2.0× decision zone |
| Labor accessibility | Difficult (bridge, tower, remote) | Easy (indoor, ground-level) | 4+ hours per sensor |
| Time constraint | Urgent (days) | Flexible (weeks available) | 1-2 week decision point |
| Budget | Limited (<$5K available) | Ample (>$20K) | Varies by scale |
| Sensor age | New (<1 year deployed) | Old (>3 years, nearing EOL) | 2-3 year decision point |
Decision Algorithm:
def remediate_or_redeploy(coverage_pct, current_sensors, optimal_sensors, labor_cost_per_sensor, sensor_age_years):
gap_size = 100 - coverage_pct
over_deployment_ratio = current_sensors / optimal_sensors
# Priority 1: If coverage catastrophically bad, must redeploy
if gap_size > 50:
return "REDEPLOY (gaps too large)"
# Priority 2: If sensors old, redeploy makes sense for lifecycle management
if sensor_age_years > 3:
return "REDEPLOY (sensors near end-of-life anyway)"
# Priority 3: Calculate cost comparison
remediation_sensors = estimate_gaps_to_fill(gap_size, current_sensors)
remediation_cost = remediation_sensors * (120 + labor_cost_per_sensor)
redeploy_removal_cost = current_sensors * labor_cost_per_sensor
redeploy_hardware_cost = optimal_sensors * 120
redeploy_install_cost = optimal_sensors * labor_cost_per_sensor
redeploy_total = redeploy_removal_cost + redeploy_hardware_cost + redeploy_install_cost
if remediation_cost < redeploy_total * 0.5:
return f"REMEDIATE (${remediation_cost} vs ${redeploy_total})"
elif over_deployment_ratio > 2.0:
return f"REDEPLOY (2x over-deployed, future savings justify cost)"
else:
return f"REMEDIATE (cheaper by ${redeploy_total - remediation_cost})"Real-World Guidance:
- Remediate when gaps are <30%, sensors are <2 years old, and installation is difficult
- Redeploy when gaps are >50%, sensors are >3 years old, or over-deployment >2×
- Hybrid approach (common): Remediate now for quick fix, schedule redeployment during next major maintenance cycle
Common Mistake: Using Average Spacing to Diagnose Coverage Gaps
The Trap: “We deployed 60 sensors across 10,000 m², so average spacing is 13.2m. Since Rs = 15m, we should have full coverage.”
Why This Fails: Average spacing hides clustering and gaps:
Calculation:
Total area: 10,000 m²
Sensors: 60
Area per sensor: 10,000 / 60 = 167 m²
Equivalent square grid spacing: √167 = 12.9m
Expected coverage radius: 15m
Conclusion: "Should have complete coverage!" ❌ WRONG
The Reality: Random deployment creates clustering and gaps:
Actual deployment analysis:
- Cluster zone 1 (100-150m): 18 sensors (3× avg density, massive overlap)
- Cluster zone 2 (300-350m): 14 sensors (2.3× avg density)
- Gap zone 1 (50-80m): 2 sensors (0.3× avg density, 24 uncovered points)
- Gap zone 2 (420-450m): 3 sensors (0.6× avg density, 12 uncovered points)
- Normal zones: 23 sensors (1.0× avg density, good coverage)
Coverage result: 78% (not 100%)
Why Clustering Occurs: Random placement follows Poisson distribution: - Probability of k sensors in area A: P(k) = (λ^k × e^(-λ)) / k! - Where λ = expected sensors per area - Result: Some areas get 0 sensors, others get 3-4× average
The Corrected Diagnostic:
def diagnose_coverage_gaps(sensors, area, Rs):
# Step 1: Calculate coverage via grid sampling (NOT average spacing)
grid = create_grid(area, resolution=Rs/3)
coverage_map = []
for point in grid:
coverage_count = count_sensors_within_range(point, sensors, Rs)
coverage_map.append(coverage_count)
# Step 2: Identify gap clusters
gaps = [p for p, count in zip(grid, coverage_map) if count == 0]
gap_clusters = cluster_nearby_gaps(gaps, distance=Rs)
# Step 3: Report actual gaps, not average spacing
print(f"Coverage: {100 * (1 - len(gaps)/len(grid)):.1f}%")
print(f"Gap clusters: {len(gap_clusters)}")
print(f"Average spacing: {avg_distance(sensors):.1f}m (MISLEADING)")
print(f"Max spacing: {max_distance(sensors):.1f}m (ACTUAL PROBLEM)")
return gap_clustersRule of Thumb: Never diagnose coverage using average sensor spacing. Always use grid-based coverage verification or crossing-point analysis (Zhang-Hou theorem). Average spacing is statistically meaningless for randomly deployed sensors — the maximum spacing between sensors determines coverage, not the average.
51.10 Summary / Key Takeaways
This chapter provided comprehensive worked examples for applying WSN coverage theory to real-world deployment planning.
51.10.1 Key Results at a Glance
| Worked Example | Key Metric | Result | Takeaway |
|---|---|---|---|
| k-Coverage (Water Treatment) | 2-coverage achievement | 58% with 12 sensors, 100% with 18 | Corner/edge placement is critical |
| k-Coverage (Remediation) | Sensors to add for 100% | +6 sensors (+50% cost) | Justified for critical infrastructure |
| Duty Cycling (Wildlife) | Maximum duty cycle | 2.35% (85s wake / 3,515s sleep) | RX listening dominates energy budget |
| Duty Cycling (Lifetime) | Battery duration | 5 years on 19,000 mAh D-cell | Saves $75,000 in helicopter visits |
| Sensing Range (Building) | 3-year TCO | $2,958 (Option B) vs. $4,518 (Option A) | 35% savings with fewer, costlier sensors |
| Zhang-Hou Verification | Connectivity condition | Both options satisfy Rc >= 2Rs | Coverage implies connectivity |
51.10.2 Core Principles
- k-Coverage Analysis: Grid-based method (5m spacing, 400+ points) to evaluate coverage levels and identify gaps in water treatment facility deployment
- Duty Cycling Budget: Energy calculation showing 2.35% duty cycle achieves 5-year lifetime for wildlife tracking – receive mode consumes 99%+ of energy budget
- Sensing Range Trade-off: TCO analysis demonstrating 35% savings with longer-range sensors despite 89% higher unit cost
- Practice Exercises: Hands-on problems for coverage calculation, barrier design, Monte Carlo simulation, and sleep scheduling
- Interactive Playground: OJS-based coverage visualization for experimentation with sensor placement and k-coverage
51.11 Knowledge Check
51.12 What’s Next
| Topic | Chapter | Description |
|---|---|---|
| Implementations | WSN Coverage Implementations | OGDC, CCP, and energy-efficient rotation scheduling algorithms |
| Coverage Review | WSN Coverage Review | Comprehensive review and assessment covering all coverage concepts |
| Coverage Algorithms | WSN Coverage Algorithms | Centralized vs distributed algorithmic approaches to coverage optimization |
| Core Concepts | WSN Coverage Core Concepts | Zhang-Hou theorem, Boolean vs probabilistic sensing models |