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

Event([type, time, id_connection])

Represents a simulation event in the discrete-event simulation.

Simulator(x, y, z, nGrids, rho)

Event-driven discrete-event simulator for VLC systems.