Maintenance & Failures Configuration¶
Configuration for scheduled maintenance and random failures.
Robot Maintenance Schema¶
robots:
maintenance:
enabled: <boolean> # Default: false
interval_hours: <float> # Default: 8.0
failure:
enabled: <boolean> # Default: false
mtbf_hours: <float> # Default: 100.0
Maintenance Station Schema¶
maintenance_stations:
- id: <string> # Required
node: <string> # Required
bays: <integer> # Default: 2
maintenance_duration_s: <float> # Default: 300
repair_time: <ServiceTimeConfig> # Optional
queue_capacity: <integer> # Optional
Scheduled Maintenance¶
maintenance.enabled¶
Type: boolean Default: false
Enable scheduled maintenance.
maintenance.interval_hours¶
Type: float Default: 8.0
Hours between scheduled maintenance visits.
Typical values:
| Scenario | Interval (hours) |
|---|---|
| High reliability | 12-24 |
| Standard | 6-8 |
| Intensive use | 4-6 |
Random Failures¶
failure.enabled¶
Type: boolean Default: false
Enable random failures.
failure.mtbf_hours¶
Type: float Default: 100.0
Mean Time Between Failures in hours.
MTBF Guidelines:
| Reliability | MTBF (hours) |
|---|---|
| High | 150-200+ |
| Normal | 80-120 |
| Low (stress testing) | 30-50 |
Maintenance Stations¶
id¶
Type: string Required: Yes
Unique identifier.
node¶
Type: string Required: Yes
Map node location.
bays¶
Type: integer Default: 2
Concurrent repair capacity.
maintenance_duration_s¶
Type: float Default: 300
Duration for scheduled maintenance in seconds.
repair_time¶
Type: ServiceTimeConfig Optional
Variable repair time for failures (uses same schema as station service times).
maintenance_stations:
- id: "maint_1"
node: "N75"
maintenance_duration_s: 300
repair_time:
distribution: lognormal
base: 600 # Mean 10 minutes
base_stddev: 180 # Significant variance
queue_capacity¶
Type: integer Default: unlimited
Maximum robots waiting for maintenance.
Examples¶
Basic Maintenance¶
robots:
count: 20
max_speed_mps: 1.5
maintenance:
enabled: true
interval_hours: 8.0
maintenance_stations:
- id: "maint_1"
node: "N75"
bays: 2
maintenance_duration_s: 300
With Random Failures¶
robots:
count: 20
max_speed_mps: 1.5
maintenance:
enabled: true
interval_hours: 8.0
failure:
enabled: true
mtbf_hours: 100.0
maintenance_stations:
- id: "maint_zone_1"
node: "N50"
bays: 2
maintenance_duration_s: 300
repair_time:
distribution: lognormal
base: 900 # 15 min mean repair
base_stddev: 300
queue_capacity: 6
Multiple Maintenance Stations¶
robots:
count: 50
max_speed_mps: 1.8
maintenance:
enabled: true
interval_hours: 6.0
failure:
enabled: true
mtbf_hours: 80.0
maintenance_stations:
- id: "maint_east"
node: "N100"
bays: 3
maintenance_duration_s: 240
repair_time:
distribution: lognormal
base: 720
base_stddev: 240
queue_capacity: 8
- id: "maint_west"
node: "N200"
bays: 3
maintenance_duration_s: 240
repair_time:
distribution: lognormal
base: 720
base_stddev: 240
queue_capacity: 8
Reliability Stress Test¶
robots:
count: 30
max_speed_mps: 1.5
maintenance:
enabled: true
interval_hours: 4.0 # Frequent maintenance
failure:
enabled: true
mtbf_hours: 40.0 # Frequent failures
maintenance_stations:
- id: "maint_main"
node: "N75"
bays: 5
maintenance_duration_s: 180
repair_time:
distribution: exponential
base: 600
queue_capacity: 15
Capacity Planning¶
Maintenance Station Sizing¶
Estimate required maintenance capacity:
Scheduled visits/hour = robots / interval_hours
Failure repairs/hour = robots / mtbf_hours
Total/hour = scheduled + repairs
Required bays ≈ total/hour × avg_service_time_hours × 1.2
Example¶
- 20 robots
- 8-hour maintenance interval
- 100-hour MTBF
- 5-minute scheduled maintenance
- 15-minute average repair
Scheduled: 20/8 = 2.5/hour × 5/60 = 0.21 bay-hours
Failures: 20/100 = 0.2/hour × 15/60 = 0.05 bay-hours
Total: 0.26 bay-hours → 1 bay minimum, 2 for buffer
Behavior¶
Scheduled Maintenance Flow¶
- Robot reaches maintenance interval
- Completes current task
- Travels to maintenance station
- Waits in queue if necessary
- Receives maintenance (fixed duration)
- Returns to service
Failure Flow¶
- Failure occurs (exponentially distributed)
- Robot stops immediately
- Travels to maintenance station (if mobile)
- Waits in queue if necessary
- Receives repair (variable duration)
- Returns to service