使用Battery的Transporter
Transporter充电及状态统计
初始化
--在Track和garage各生成一辆小车
car1:=.MUs.car.create(Track,7)
car2:=.MUs.car.create(garage)
Track传感器策略
param SensorID: integer, Front: boolean, BookPos: boolean
var oldtime:time
if SensorID=1
if @.batcharge<@.batreserve
--剩余电量低于备用电量,电池开始充电
@.batcharging:=true
@.move(chargingstation)
--充完电的小车上线
garage.cont.move(track,7)
end
elseif SensorID=2
@.stopped:=true
waituntil B1.occupied prio 1
B1.cont.move(@)
--装载时间10s
@.startpause(10)
@.stopped:=false
elseif SensorID=3
@.stopped:=true
oldtime:=EventController.simTime
waituntil S1.empty prio 1
@.statWaitingOccupied:=@.statWaitingOccupied+EventController.simTime-oldtime
@.cont.move(S1)
--卸载时间10s
@.startpause(10)
@.stopped:=false
end
Transporter充电策略
--充电时执行该策略
if chargingStation.occupied
--电量充满将小车移到garage
if chargingStation.cont.batcharge >= chargingStation.cont.batcapacity
chargingStation.cont.move(garage)
end
end
仿真完成后的统计策略
--统计表格
--[Drive,Load/Unload,Charging,Failure,Wait,Starved]
statisticTable.writeRow(1,1,
car1.StatTransportTimePortion,
car1.StatTspPausingPortion,
car1.StatBatChargePortion,
car1.StatTspFailPortion,
time_to_num(car1.StatWaitingOccupied)/
time_to_num(EventController.simTime),
1-car1.StatTransportTimePortion-
car1.StatTspPausingPortion-
car1.StatBatChargePortion-
car1.StatTspFailPortion-
time_to_num(car1.StatWaitingOccupied)/
time_to_num(EventController.simTime))
statisticTable.writeRow(1,2,
car2.StatTransportTimePortion,
car2.StatTspPausingPortion,
car2.StatBatChargePortion,
car2.StatTspFailPortion,
time_to_num(car2.StatWaitingOccupied)/
time_to_num(EventController.simTime),
1-car2.StatTransportTimePortion-
car2.StatTspPausingPortion-
car2.StatBatChargePortion-
car2.StatTspFailPortion-
time_to_num(car2.StatWaitingOccupied)/
time_to_num(EventController.simTime))
统计表格绘图
Transporter统计属性
<MU-Path>.StatTransportTimePortion → real
只读属性StatTransportTimePortion统计Transporter位于类型为Transport的物流对象上的时间占比(分母为该物流对象的统计收集周期)
<MU-Path>.StatTspPausingPortion → real
只读属性StatTspPausingPortion统计Transporter被暂停的时间占比(分母为该MU的使用时间)
<MU-Path>.StatBatChargePortion → real
只读属性StatBatChargePortion统计Transporter的充电时间占比(分母为该MU的使用时间)
<MU-Path>.StatTspFailPortion → real
只读属性StatTspFailPortion统计Transporter的故障时间占比(分母为该MU的使用时间)