vlcsim.simulator
Simulator Module for VLC Event-Driven Simulation.
This module provides the simulation engine for VLC (Visible Light Communication) systems. It implements an event-driven discrete-event simulation (DES) with support for:
- Classes:
Event: Represents simulation events (arrivals, departures, pauses, resumes) Simulator: Main simulation engine managing event scheduling and execution
- The Simulator module handles:
Event scheduling and management using Future Event List (FEL)
Random variable generation for arrivals, departures, and positions
Connection lifecycle tracking (arrive → allocate → transmit → depart)
Statistical data collection (blocking probability, AP utilization)
Scenario initialization and execution control
Example
Basic simulation setup:
from vlcsim import Simulator, VLed, RF
# Create simulator with 10x10x3m room
sim = Simulator(x=10.0, y=10.0, z=3.0, nGrids=20, rho=0.8)
# Add access points
vled = VLed(x=5.0, y=5.0, z=3.0, nLedsX=2, nLedsY=2, ledPower=20, theta=60)
sim.scenario.addVLed(vled)
# Configure simulation parameters
sim.lambdaS = 3.0 # Arrival rate (connections/second)
sim.mu = 10.0 # Service rate (1/seconds)
sim.goalConnections = 1000
# Run simulation
sim.init()
sim.run()
# Get results
print(f"Blocking probability: {sim.get_Blocking_Probability()}")
Note
Must call init() before run()
Uses exponential inter-arrival times (Poisson process)
Supports both VLC (VLed) and RF access points
Classes
|
Represents a simulation event in the discrete-event simulation. |
|
Event-driven discrete-event simulator for VLC systems. |