feat: enhance simulation types with new metrics and event types

- Added EventType for various asset events.
- Introduced new metrics in TimeMetrics, ThroughputMetrics, EfficiencyMetrics, QualityMetrics, CostMetrics, EnergyMetrics, and ConveyorMaterialMetrics.
- Expanded ConveyorAnalysis and VehicleAnalysis interfaces to include additional metrics for cost, energy, and material flow.
- Enhanced efficiency and quality metrics with detailed attributes for better analysis.
This commit is contained in:
2025-12-15 12:49:15 +05:30
parent 595d7852c9
commit 2026248a4c
2 changed files with 916 additions and 329 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -231,6 +231,8 @@ interface CraneEventSchema extends AssetEventSchema {
point: CranePointSchema;
}
type EventType = "conveyor" | "vehicle" | "roboticArm" | "machine" | "storage" | "human" | "crane";
type EventsSchema = ConveyorEventSchema | VehicleEventSchema | RoboticArmEventSchema | MachineEventSchema | StorageEventSchema | HumanEventSchema | CraneEventSchema;
// Statuses
@@ -481,6 +483,8 @@ interface TimeMetrics {
utilizationRate: number; // activeTime / totalTime
mtbf: number; // Mean Time Between Failures
mttr: number; // Mean Time To Repair
availability: number;
reliability: number;
}
interface ThroughputMetrics {
@@ -488,6 +492,9 @@ interface ThroughputMetrics {
itemsPerDay: number;
materialFlowRate: number;
capacityUtilization: number; // Percentage
throughputEfficiency: number;
wip: number; // Work In Progress
bottleneckIndex: number;
}
interface EfficiencyMetrics {
@@ -509,6 +516,32 @@ interface QualityMetrics {
}[];
}
interface CostMetrics {
operatingCost: number; // Cost per time unit
maintenanceCost: number; // Cost per time unit
energyCost: number; // Cost per time unit
totalCost: number; // Sum of all costs
roi: number; // Return on Investment percentage
valueAdded: number; // Value added per time unit
}
interface EnergyMetrics {
energyConsumed: number; // Energy units per time unit
energyEfficiency: number; // Output per energy unit
carbonFootprint: number; // CO2 emissions per time unit
powerUsage: number; // Average power usage
energyCost: number; // Cost of energy per time unit
}
interface ConveyorMaterialMetrics {
wip: number; // Work In Progress
throughput: number; // Materials processed per time unit
avgCycleTime: number; // Average time per material
materialVelocity: number; // Speed of material flow
inventoryTurns: number; // Number of times inventory is cycled
leadTimeVariance: number; // Variance in lead time
}
// ============================================================================
// ASSET-SPECIFIC ANALYSIS
// ============================================================================
@@ -525,6 +558,8 @@ interface ConveyorAnalysis {
state: string;
speed: number;
currentProduct: string | null;
currentMaterials: number;
queueLength: number;
};
// Time Metrics
@@ -532,6 +567,7 @@ interface ConveyorAnalysis {
idleTime: number;
activeTime: number;
totalTime: number;
scheduleAdherence: number;
};
// Throughput
@@ -541,11 +577,30 @@ interface ConveyorAnalysis {
};
// Efficiency
efficiency: EfficiencyMetrics;
efficiency: EfficiencyMetrics & {
timeEfficiency: number; // activeTime vs planned active time
energyEfficiency: number; // Energy consumption per material processed
costEfficiency: number; // Cost per material processed
scheduleEfficiency: number; // Adherence to planned schedule
};
// Quality
quality: QualityMetrics;
// Cost
costMetrics: CostMetrics & {
costPerUnit: number; // Cost per item processed
costPerHour: number; // Cost per hour of operation
};
// Energy
energyMetrics: EnergyMetrics & {
energyPerUnit: number; // Energy per item processed
};
// Material
materialFlow: ConveyorMaterialMetrics;
// Historical Data
historicalData: {
timestamp: string;
@@ -569,6 +624,8 @@ interface VehicleAnalysis {
speed: number;
currentLoad: number;
currentMaterials: { materialType: string; materialId: string }[];
distanceTraveled: number;
currentRouteEfficiency: number;
};
// Time Metrics
@@ -592,15 +649,40 @@ interface VehicleAnalysis {
averageSpeedActual: number;
fuelEfficiency: number; // Distance per energy unit
routeEfficiency: number; // Actual vs optimal distance
idleDistance: number;
totalTrips: number;
averageTripDistance: number;
distanceEfficiency: number; // Actual vs planned distance
};
// Efficiency
efficiency: EfficiencyMetrics & {
loadUtilization: number; // Average load / max capacity
timeEfficiency: number; // activeTime vs planned active time
energyEfficiency: number; // Energy consumption per material processed
routeEfficiency: number; // Adherence to optimal routes
costEfficiency: number; // Cost per material processed
};
// Quality
quality: QualityMetrics;
quality: QualityMetrics & {
onTimeDelivery: number; // Percentage of on-time deliveries
damageRate: number; // Damaged materials per total delivered
accuracyRate: number; // Correct deliveries per total deliveries
};
// Cost
costMetrics: CostMetrics & {
costPerMile: number; // Cost per mile traveled
costPerTrip: number; // Cost per trip
costPerLoad: number; // Cost per load delivered
};
// Energy
energyMetrics: EnergyMetrics & {
energyPerMile: number; // Energy per mile traveled
energyPerTrip: number; // Energy per trip
};
// Historical Data
historicalData: {