Functions. R SMALLSTEPSIZE. R BasalInputUPPERLIMIT. R BasalInputLOWERLIMIT. R BolusInputUPPERLIMIT. R BolusInputLOWERLIMIT. R BatteryChangeInputUPPERLIMIT. R BatteryChangeInputLOWERLIMIT. R TankFillInputUPPERLIMIT. R TankFillInputLOWERLIMIT. R TankChangeInputUPPERLIMIT. R TankChangeInputLOWERLIMIT. End. ProgramVariables. R simTime. R BasalInput. R BolusInput. R BatteryChangeInput. R TankFillInput. R TankChangeInput. R ServiceBolusInputProcessingInput. R ServiceBolusInputProcessingOutput. R ServiceBolusInputProcessingOutputPrevious. R Bolus. R ServiceBasalInputProcessingInput. R ServiceBasalInputProcessingOutput. R ServiceBasalInputProcessingOutputPrevious. R Basal. R ServiceBatteryChangeInputProcessingBinaryInput. R ServiceBatteryChangeInputProcessingBinaryOutput. R ServiceBatteryChangeInputProcessingBinaryOutputPrevious. R BatteryChange. R ServiceTankFillInputProcessingInput. R ServiceTankFillInputProcessingOutput. R ServiceTankFillInputProcessingOutputPrevious. R TankFill. R ServiceTankChangeInputProcessingBinaryInput. R ServiceTankChangeInputProcessingBinaryOutput. R ServiceTankChangeInputProcessingBinaryOutputPrevious. R TankChange. R smallStep. End. Problem. (simTime = 0.0) & (SMALLSTEPSIZE = 0.01) & (smallStep = 0.0) ->( [ { smallStep:=0.0; TankChangeInput:= *; ?(( TankChangeInput <= TankChangeInputUPPERLIMIT) & ( TankChangeInput >= TankChangeInputLOWERLIMIT)); TankFillInput:= *; ?(( TankFillInput <= TankFillInputUPPERLIMIT) & ( TankFillInput >= TankFillInputLOWERLIMIT)); BatteryChangeInput:= *; ?(( BatteryChangeInput <= BatteryChangeInputUPPERLIMIT) & ( BatteryChangeInput >= BatteryChangeInputLOWERLIMIT)); BolusInput:= *; ?(( BolusInput <= BolusInputUPPERLIMIT) & ( BolusInput >= BolusInputLOWERLIMIT)); BasalInput:= *; ?(( BasalInput <= BasalInputUPPERLIMIT) & ( BasalInput >= BasalInputLOWERLIMIT)); ServiceBolusInputProcessingInput:=BolusInput; ServiceBolusInputProcessingOutputPrevious:=ServiceBolusInputProcessingOutput; ServiceBolusInputProcessingOutput:= *; ?( ( ServiceBolusInputProcessingInput <= 0.0) ->(( ServiceBolusInputProcessingOutput = 0.0))); ?( ( ServiceBolusInputProcessingInput > 0.0) ->(( ServiceBolusInputProcessingOutput = ServiceBolusInputProcessingInput))); Bolus:=ServiceBolusInputProcessingOutput; ServiceBasalInputProcessingInput:=BasalInput; ServiceBasalInputProcessingOutputPrevious:=ServiceBasalInputProcessingOutput; ServiceBasalInputProcessingOutput:= *; ?( ( ServiceBasalInputProcessingInput <= 0.0) ->(( ServiceBasalInputProcessingOutput = 0.0))); ?( ( ServiceBasalInputProcessingInput > 0.0) ->(( ServiceBasalInputProcessingOutput = ServiceBasalInputProcessingInput))); Basal:=ServiceBasalInputProcessingOutput; ServiceTankFillInputProcessingInput:=TankFillInput; ServiceTankFillInputProcessingOutputPrevious:=ServiceTankFillInputProcessingOutput; ServiceTankFillInputProcessingOutput:= *; ?( ( ServiceTankFillInputProcessingInput <= 0.0) ->(( ServiceTankFillInputProcessingOutput = 0.0))); ?( ( ServiceTankFillInputProcessingInput > 0.0) ->(( ServiceTankFillInputProcessingOutput = ServiceTankFillInputProcessingInput))); TankFill:=ServiceTankFillInputProcessingOutput; ServiceBatteryChangeInputProcessingBinaryInput:=BatteryChangeInput; ServiceBatteryChangeInputProcessingBinaryOutputPrevious:=ServiceBatteryChangeInputProcessingBinaryOutput; ServiceBatteryChangeInputProcessingBinaryOutput:= *; ?( ( ServiceBatteryChangeInputProcessingBinaryInput <= 0.0) ->(( ServiceBatteryChangeInputProcessingBinaryOutput = 0.0))); ?( ( ServiceBatteryChangeInputProcessingBinaryInput > 0.0) ->(( ServiceBatteryChangeInputProcessingBinaryOutput = 1.0))); BatteryChange:=ServiceBatteryChangeInputProcessingBinaryOutput; ServiceTankChangeInputProcessingBinaryInput:=TankChangeInput; ServiceTankChangeInputProcessingBinaryOutputPrevious:=ServiceTankChangeInputProcessingBinaryOutput; ServiceTankChangeInputProcessingBinaryOutput:= *; ?( ( ServiceTankChangeInputProcessingBinaryInput <= 0.0) ->(( ServiceTankChangeInputProcessingBinaryOutput = 0.0))); ?( ( ServiceTankChangeInputProcessingBinaryInput > 0.0) ->(( ServiceTankChangeInputProcessingBinaryOutput = 1.0))); TankChange:=ServiceTankChangeInputProcessingBinaryOutput; { ?((true)); { simTime' = 1.0, smallStep' = 1.0 &(true) } } }* ] (true)) End.