AgvSystem

open class AgvSystem @JvmOverloads constructor(parent: ModelElement, val network: GuidedPathNetwork, zoneContentionRule: ZoneContentionRuleIfc = FIFOZoneContentionRule(), assignmentPolicy: AssignmentPolicyIfc = NearestVehiclePolicy(), name: String? = null) : FleetSystem(source)

A fleet of self-directing vehicles on a guide path, and the dispatcher that tasks them.

The binding: it builds the space layer, supplies the network as the fleet's layout, and publishes the rows that only a guide path can fill -- zones entered, deadlocks, obstructions, and the five per-carry figures both paradigms share. Everything else a modeller uses is on FleetSystem and is the same whatever the vehicles run on.

The same physical world as the passive subsystem -- the same network, zones, routing, blocking and deadlock detection -- with the decision-making moved out of the entity's process and into objects that have processes of their own.

Parameters

network

the guide path the fleet runs on. It is also the fleet's space: its intersections and station aliases are already named places, so the two are one object rather than two that could disagree

Constructors

Link copied to clipboard
constructor(parent: ModelElement, network: GuidedPathNetwork, zoneContentionRule: ZoneContentionRuleIfc = FIFOZoneContentionRule(), assignmentPolicy: AssignmentPolicyIfc = NearestVehiclePolicy(), name: String? = null)

Properties

Link copied to clipboard

Per completed carry: time spent travelling out empty to collect the load.

Link copied to clipboard
@set:KSLControl(controlType = ControlType.BOOLEAN)
open override var auditAtReplicationEnd: Boolean

Whether this system audits its own account of itself once, as each replication ends.

Link copied to clipboard

Whether the space-exclusivity invariants are checked whenever the simulation clock advances.

Link copied to clipboard

Whether the space layer registers a response per link.

Link copied to clipboard

Whether the space layer registers a response per zone: the finest tier, and the most expensive.

Link copied to clipboard

Whether the guide path underneath watches for a circular wait and raises when it finds one.

Link copied to clipboard

Events scheduled per zone entered. One is the floor; much above two is wake-and-refuse.

Link copied to clipboard
Link copied to clipboard

Circular waits found. At most one per replication, since finding one ends it.

Link copied to clipboard

Events the guide path put on the calendar: traversals, rear releases, and retries.

Link copied to clipboard

Times a vehicle stopped behind an idle one that will not move on its own.

Link copied to clipboard

How many vehicles cannot claim the space ahead. The figure a free-path model cannot produce.

Link copied to clipboard

How many vehicles are travelling. Distinct from numVehiclesOnTask: a vehicle repositioning is moving and is on no task.

Link copied to clipboard

How many zones the fleet entered, which is very nearly the engine's event count.

Link copied to clipboard

Per completed carry: time spent travelling with the load aboard.

Link copied to clipboard

Per completed carry: distance covered along the guide path.

Link copied to clipboard
open override val space: GuidedPathNetwork

The network, which is what the fleet's machinery asks for places and distances.

Link copied to clipboard

Whether a vehicle obstructed by one that is idle is treated as an error rather than as traffic.

Link copied to clipboard

Per completed carry: time unable to claim the space ahead.

Link copied to clipboard

Per completed carry: zones entered.

Link copied to clipboard

The fraction of the guide path's zones that are held.

Functions

Link copied to clipboard
protected open override fun collectCarry(approachTime: Double, rideTime: Double, blockedTime: Double, zonesTraversed: Int, routeLength: Double)

Reports what one delivered load cost the substrate underneath.

Link copied to clipboard
protected open override fun spaceHeldBy(vehicle: FleetVehicle): String

What space a vehicle is denying to everyone else, for the horizon diagnostic. Empty where a vehicle standing still is in nobody's way.

Link copied to clipboard
protected open override fun substrateReporting(option: Boolean)

Whether the space layer's three movement hold queues appear on the summary report.