Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit 006664b8 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

refactor: use new IFuelMap Interface

parent af031df2
No related branches found
No related tags found
No related merge requests found
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
' See the LICENSE.txt for the specific language governing permissions and limitations. ' See the LICENSE.txt for the specific language governing permissions and limitations.
Public Interface IVectoInputs Public Interface IVectoInputs
''' <summary> ''' <summary>
''' Vehicle Mass (KG) ''' Vehicle Mass (KG)
''' </summary> ''' </summary>
...@@ -18,6 +17,7 @@ Public Interface IVectoInputs ...@@ -18,6 +17,7 @@ Public Interface IVectoInputs
''' <returns></returns> ''' <returns></returns>
''' <remarks></remarks> ''' <remarks></remarks>
Property VehicleWeightKG As Single Property VehicleWeightKG As Single
''' <summary> ''' <summary>
''' Cycle ( Urban, Interurban etc ) ''' Cycle ( Urban, Interurban etc )
''' </summary> ''' </summary>
...@@ -25,6 +25,7 @@ Public Interface IVectoInputs ...@@ -25,6 +25,7 @@ Public Interface IVectoInputs
''' <returns></returns> ''' <returns></returns>
''' <remarks></remarks> ''' <remarks></remarks>
Property Cycle As String Property Cycle As String
''' <summary> ''' <summary>
''' PowerNet Voltage (V) Volts available on the bus by Batteries ''' PowerNet Voltage (V) Volts available on the bus by Batteries
''' </summary> ''' </summary>
...@@ -32,19 +33,20 @@ Public Interface IVectoInputs ...@@ -32,19 +33,20 @@ Public Interface IVectoInputs
''' <returns></returns> ''' <returns></returns>
''' <remarks></remarks> ''' <remarks></remarks>
Property PowerNetVoltage As Single Property PowerNetVoltage As Single
''' <summary> ''' <summary>
''' Fuel Map Used in Vecto. ''' Fuel Map Used in Vecto.
''' </summary> ''' </summary>
''' <value></value> ''' <value></value>
''' <returns></returns> ''' <returns></returns>
''' <remarks></remarks> ''' <remarks></remarks>
Property FuelMap As String Property FuelMap As IFuelConsumptionMap
''' <summary> ''' <summary>
''' Fuel density used in Vecto. ''' Fuel density used in Vecto.
''' </summary> ''' </summary>
''' <value></value> ''' <value></value>
''' <returns></returns> ''' <returns></returns>
''' <remarks></remarks> ''' <remarks></remarks>
Property FuelDensity As String Property FuelDensity As Double
End Interface End Interface
...@@ -35,7 +35,7 @@ Public Class AdvancedAuxiliaries ...@@ -35,7 +35,7 @@ Public Class AdvancedAuxiliaries
Private WithEvents alternatorMap As IAlternatorMap Private WithEvents alternatorMap As IAlternatorMap
Private WithEvents actuationsMap As IPneumaticActuationsMAP Private WithEvents actuationsMap As IPneumaticActuationsMAP
Private WithEvents fuelMap As IFUELMAP Private fuelMap As IFuelConsumptionMap
'Classes which compose the model. 'Classes which compose the model.
Private WithEvents M0 As IM0_NonSmart_AlternatorsSetEfficiency Private WithEvents M0 As IM0_NonSmart_AlternatorsSetEfficiency
...@@ -60,14 +60,14 @@ Public Class AdvancedAuxiliaries ...@@ -60,14 +60,14 @@ Public Class AdvancedAuxiliaries
Private hvacConstants As HVACConstants Private hvacConstants As HVACConstants
'Event Handler top level bubble. 'Event Handler top level bubble.
Public Sub VectoEventHandler(ByRef sender As Object, message As String, messageType As AdvancedAuxiliaryMessageType) Handles compressorMap.AuxiliaryEvent, alternatorMap.AuxiliaryEvent, ssmTool.Message, ssmToolModule14.Message Public Sub VectoEventHandler(ByRef sender As Object, message As String, messageType As AdvancedAuxiliaryMessageType) _
Handles CompressorMap.AuxiliaryEvent, AlternatorMap.AuxiliaryEvent, SSMTOOL.Message, ssmToolModule14.Message
If Signals.AuxiliaryEventReportingLevel <= messageType Then If Signals.AuxiliaryEventReportingLevel <= messageType Then
RaiseEvent AuxiliaryEvent(sender, message, messageType) RaiseEvent AuxiliaryEvent(sender, message, messageType)
End If End If
End Sub End Sub
'Constructor 'Constructor
...@@ -75,7 +75,6 @@ Public Class AdvancedAuxiliaries ...@@ -75,7 +75,6 @@ Public Class AdvancedAuxiliaries
VectoInputs = New VectoInputs() VectoInputs = New VectoInputs()
Signals = New Signals() Signals = New Signals()
End Sub End Sub
'Initialise Model 'Initialise Model
...@@ -97,27 +96,31 @@ Public Class AdvancedAuxiliaries ...@@ -97,27 +96,31 @@ Public Class AdvancedAuxiliaries
Signals.SmartPneumatics = auxConfig.PneumaticUserInputsConfig.SmartAirCompression Signals.SmartPneumatics = auxConfig.PneumaticUserInputsConfig.SmartAirCompression
Signals.PneumaticOverrunUtilisation = auxConfig.PneumaticAuxillariesConfig.OverrunUtilisationForCompressionFraction Signals.PneumaticOverrunUtilisation = auxConfig.PneumaticAuxillariesConfig.OverrunUtilisationForCompressionFraction
alternatorMap = New CombinedAlternator(FilePathUtils.ResolveFilePath(vectoDirectory, auxConfig.ElectricalUserInputsConfig.AlternatorMap), Signals) alternatorMap = New CombinedAlternator(
FilePathUtils.ResolveFilePath(vectoDirectory, auxConfig.ElectricalUserInputsConfig.AlternatorMap), Signals)
actuationsMap = New PneumaticActuationsMAP(FilePathUtils.ResolveFilePath(vectoDirectory, auxConfig.PneumaticUserInputsConfig.ActuationsMap)) actuationsMap = New PneumaticActuationsMAP(FilePathUtils.ResolveFilePath(vectoDirectory,
auxConfig.PneumaticUserInputsConfig.ActuationsMap))
compressorMap = New CompressorMap(FilePathUtils.ResolveFilePath(vectoDirectory, auxConfig.PneumaticUserInputsConfig.CompressorMap)) compressorMap = New CompressorMap(FilePathUtils.ResolveFilePath(vectoDirectory,
auxConfig.PneumaticUserInputsConfig.CompressorMap))
compressorMap.Initialise() compressorMap.Initialise()
fuelMap = New cMAP() 'fuelMap = New cMAP()
fuelMap.FilePath = FilePathUtils.ResolveFilePath(vectoDirectory, VectoInputs.FuelMap) 'fuelMap.FilePath = FilePathUtils.ResolveFilePath(vectoDirectory, VectoInputs.FuelMap)
If Not fuelMap.ReadFile() Then 'If Not fuelMap.ReadFile() Then
MessageBox.Show("Unable to read fuel map, aborting.") ' MessageBox.Show("Unable to read fuel map, aborting.")
Return ' Return
End If 'End If
fuelMap.Triangulate() 'fuelMap.Triangulate()
fuelMap = VectoInputs.FuelMap
auxConfig.ElectricalUserInputsConfig.ElectricalConsumers.DoorDutyCycleFraction = GetDoorActuationTimeFraction() auxConfig.ElectricalUserInputsConfig.ElectricalConsumers.DoorDutyCycleFraction = GetDoorActuationTimeFraction()
'SSM HVAC 'SSM HVAC
Dim ssmPath As String = FilePathUtils.ResolveFilePath(vectoDirectory, auxConfig.HvacUserInputsConfig.SSMFilePath) Dim ssmPath As String = FilePathUtils.ResolveFilePath(vectoDirectory, auxConfig.HvacUserInputsConfig.SSMFilePath)
Dim BusDatabase As String = FilePathUtils.ResolveFilePath(vectoDirectory, auxConfig.HvacUserInputsConfig.BusDatabasePath) Dim BusDatabase As String = FilePathUtils.ResolveFilePath(vectoDirectory,
auxConfig.HvacUserInputsConfig.BusDatabasePath)
ssmTool = New SSMTOOL(ssmPath, hvacConstants, auxConfig.HvacUserInputsConfig.SSMDisabled) ssmTool = New SSMTOOL(ssmPath, hvacConstants, auxConfig.HvacUserInputsConfig.SSMDisabled)
'This duplicate SSM is being created for use in M14 as its properties will be dynamically changed at that point 'This duplicate SSM is being created for use in M14 as its properties will be dynamically changed at that point
...@@ -161,7 +164,6 @@ Public Class AdvancedAuxiliaries ...@@ -161,7 +164,6 @@ Public Class AdvancedAuxiliaries
auxConfig.ElectricalUserInputsConfig.PowerNetVoltage, Signals) auxConfig.ElectricalUserInputsConfig.PowerNetVoltage, Signals)
M3 = New M3_AveragePneumaticLoadDemand(auxConfig.PneumaticUserInputsConfig, M3 = New M3_AveragePneumaticLoadDemand(auxConfig.PneumaticUserInputsConfig,
auxConfig.PneumaticAuxillariesConfig, auxConfig.PneumaticAuxillariesConfig,
actuationsMap, actuationsMap,
...@@ -170,8 +172,10 @@ Public Class AdvancedAuxiliaries ...@@ -170,8 +172,10 @@ Public Class AdvancedAuxiliaries
VectoInputs.Cycle, VectoInputs.Cycle,
Signals) Signals)
M4 = New M4_AirCompressor(compressorMap, auxConfig.PneumaticUserInputsConfig.CompressorGearRatio, auxConfig.PneumaticUserInputsConfig.CompressorGearEfficiency, Signals) M4 = New M4_AirCompressor(compressorMap, auxConfig.PneumaticUserInputsConfig.CompressorGearRatio,
M5 = New M5__SmartAlternatorSetGeneration(M05, auxConfig.ElectricalUserInputsConfig.PowerNetVoltage, auxConfig.ElectricalUserInputsConfig.AlternatorGearEfficiency) auxConfig.PneumaticUserInputsConfig.CompressorGearEfficiency, Signals)
M5 = New M5__SmartAlternatorSetGeneration(M05, auxConfig.ElectricalUserInputsConfig.PowerNetVoltage,
auxConfig.ElectricalUserInputsConfig.AlternatorGearEfficiency)
M6 = New M6(M1, M2, M3, M4, M5, Signals) M6 = New M6(M1, M2, M3, M4, M5, Signals)
M7 = New M7(M5, M6, Signals) M7 = New M7(M5, M6, Signals)
M8 = New M8(M1, M6, M7, Signals) M8 = New M8(M1, M6, M7, Signals)
...@@ -181,8 +185,6 @@ Public Class AdvancedAuxiliaries ...@@ -181,8 +185,6 @@ Public Class AdvancedAuxiliaries
M12 = New M12(M10, M11, Signals) M12 = New M12(M10, M11, Signals)
M13 = New M13(M10, M11, M12, Signals) M13 = New M13(M10, M11, M12, Signals)
M14 = New M14(M13, ssmToolModule14, hvacConstants, Signals) M14 = New M14(M13, ssmToolModule14, hvacConstants, Signals)
End Sub End Sub
#Region "Interface implementation" #Region "Interface implementation"
...@@ -190,9 +192,11 @@ Public Class AdvancedAuxiliaries ...@@ -190,9 +192,11 @@ Public Class AdvancedAuxiliaries
Public Property Signals As ISignals Implements IAdvancedAuxiliaries.Signals Public Property Signals As ISignals Implements IAdvancedAuxiliaries.Signals
Public Property VectoInputs As IVectoInputs Implements IAdvancedAuxiliaries.VectoInputs Public Property VectoInputs As IVectoInputs Implements IAdvancedAuxiliaries.VectoInputs
Public Event AuxiliaryEvent(ByRef sender As Object, message As String, messageType As AdvancedAuxiliaryMessageType) Implements IAdvancedAuxiliaries.AuxiliaryEvent Public Event AuxiliaryEvent(ByRef sender As Object, message As String, messageType As AdvancedAuxiliaryMessageType) _
Implements IAdvancedAuxiliaries.AuxiliaryEvent
Public Function Configure(filePath As String, vectoFilePath As String) As Boolean Implements VectoAuxiliaries.IAdvancedAuxiliaries.Configure Public Function Configure(filePath As String, vectoFilePath As String) As Boolean _
Implements VectoAuxiliaries.IAdvancedAuxiliaries.Configure
Try Try
...@@ -221,10 +225,10 @@ Public Class AdvancedAuxiliaries ...@@ -221,10 +225,10 @@ Public Class AdvancedAuxiliaries
Return True Return True
End Function End Function
Public Function CycleStep(seconds As Integer, ByRef message As String) As Boolean Implements VectoAuxiliaries.IAdvancedAuxiliaries.CycleStep Public Function CycleStep(seconds As Integer, ByRef message As String) As Boolean _
Implements VectoAuxiliaries.IAdvancedAuxiliaries.CycleStep
Try Try
...@@ -240,9 +244,7 @@ Public Class AdvancedAuxiliaries ...@@ -240,9 +244,7 @@ Public Class AdvancedAuxiliaries
End Try End Try
Return True Return True
End Function End Function
Public ReadOnly Property Running As Boolean Implements VectoAuxiliaries.IAdvancedAuxiliaries.Running Public ReadOnly Property Running As Boolean Implements VectoAuxiliaries.IAdvancedAuxiliaries.Running
...@@ -251,7 +253,8 @@ Public Class AdvancedAuxiliaries ...@@ -251,7 +253,8 @@ Public Class AdvancedAuxiliaries
End Get End Get
End Property End Property
Public Function RunStart(ByVal auxFilePath As String, ByVal vectoFilePath As String, ByRef message As String) As Boolean Implements VectoAuxiliaries.IAdvancedAuxiliaries.RunStart Public Function RunStart(ByVal auxFilePath As String, ByVal vectoFilePath As String) As Boolean _
Implements VectoAuxiliaries.IAdvancedAuxiliaries.RunStart
Try Try
...@@ -264,7 +267,6 @@ Public Class AdvancedAuxiliaries ...@@ -264,7 +267,6 @@ Public Class AdvancedAuxiliaries
End Try End Try
Return True Return True
End Function End Function
Public Function RunStop(ByRef message As String) As Boolean Implements VectoAuxiliaries.IAdvancedAuxiliaries.RunStop Public Function RunStop(ByRef message As String) As Boolean Implements VectoAuxiliaries.IAdvancedAuxiliaries.RunStop
...@@ -282,8 +284,6 @@ Public Class AdvancedAuxiliaries ...@@ -282,8 +284,6 @@ Public Class AdvancedAuxiliaries
Return 0 Return 0
End If End If
End Get End Get
End Property End Property
...@@ -319,7 +319,8 @@ Public Class AdvancedAuxiliaries ...@@ -319,7 +319,8 @@ Public Class AdvancedAuxiliaries
'Helpers 'Helpers
Private Function GetDoorActuationTimeFraction() As Single Private Function GetDoorActuationTimeFraction() As Single
Dim actuationsMap As PneumaticActuationsMAP = New PneumaticActuationsMAP(FilePathUtils.ResolveFilePath(vectoDirectory, auxConfig.PneumaticUserInputsConfig.ActuationsMap)) Dim actuationsMap As PneumaticActuationsMAP = New PneumaticActuationsMAP(FilePathUtils.ResolveFilePath(vectoDirectory,
auxConfig.PneumaticUserInputsConfig.ActuationsMap))
Dim actuationsKey As ActuationsKey = New ActuationsKey("Park brake + 2 doors", VectoInputs.Cycle) Dim actuationsKey As ActuationsKey = New ActuationsKey("Park brake + 2 doors", VectoInputs.Cycle)
Dim numActuations As Single = actuationsMap.GetNumActuations(actuationsKey) Dim numActuations As Single = actuationsMap.GetNumActuations(actuationsKey)
...@@ -328,10 +329,10 @@ Public Class AdvancedAuxiliaries ...@@ -328,10 +329,10 @@ Public Class AdvancedAuxiliaries
Dim doorDutyCycleFraction As Single = (numActuations * secondsPerActuation) / Signals.TotalCycleTimeSeconds Dim doorDutyCycleFraction As Single = (numActuations * secondsPerActuation) / Signals.TotalCycleTimeSeconds
Return doorDutyCycleFraction Return doorDutyCycleFraction
End Function End Function
Public Function ValidateAAUXFile(filePath As String, ByRef message As String) As Boolean Implements IAdvancedAuxiliaries.ValidateAAUXFile Public Function ValidateAAUXFile(filePath As String, ByRef message As String) As Boolean _
Implements IAdvancedAuxiliaries.ValidateAAUXFile
Dim validResult As Boolean = FilePathUtils.ValidateFilePath(filePath, ".aaux", message) Dim validResult As Boolean = FilePathUtils.ValidateFilePath(filePath, ".aaux", message)
...@@ -340,12 +341,12 @@ Public Class AdvancedAuxiliaries ...@@ -340,12 +341,12 @@ Public Class AdvancedAuxiliaries
Return True Return True
End Function End Function
'Diagnostics outputs for testing purposes in Vecto. 'Diagnostics outputs for testing purposes in Vecto.
'Eventually this can be removed or rendered non effective to reduce calculation load on the model. 'Eventually this can be removed or rendered non effective to reduce calculation load on the model.
Public ReadOnly Property AA_NonSmartAlternatorsEfficiency As Single? Implements IAdvancedAuxiliaries.AA_NonSmartAlternatorsEfficiency Public ReadOnly Property AA_NonSmartAlternatorsEfficiency As Single? _
Implements IAdvancedAuxiliaries.AA_NonSmartAlternatorsEfficiency
Get Get
Return M0.AlternatorsEfficiency Return M0.AlternatorsEfficiency
End Get End Get
...@@ -357,37 +358,43 @@ Public Class AdvancedAuxiliaries ...@@ -357,37 +358,43 @@ Public Class AdvancedAuxiliaries
End Get End Get
End Property End Property
Public ReadOnly Property AA_SmartIdleAlternatorsEfficiency As Single? Implements IAdvancedAuxiliaries.AA_SmartIdleAlternatorsEfficiency Public ReadOnly Property AA_SmartIdleAlternatorsEfficiency As Single? _
Implements IAdvancedAuxiliaries.AA_SmartIdleAlternatorsEfficiency
Get Get
Return M05.AlternatorsEfficiencyIdleResultCard Return M05.AlternatorsEfficiencyIdleResultCard
End Get End Get
End Property End Property
Public ReadOnly Property AA_SmartTractionCurrent_Amps As Single? Implements IAdvancedAuxiliaries.AA_SmartTractionCurrent_Amps Public ReadOnly Property AA_SmartTractionCurrent_Amps As Single? _
Implements IAdvancedAuxiliaries.AA_SmartTractionCurrent_Amps
Get Get
Return M05.SmartTractionCurrent Return M05.SmartTractionCurrent
End Get End Get
End Property End Property
Public ReadOnly Property AA_SmartTractionAlternatorEfficiency As Single? Implements IAdvancedAuxiliaries.AA_SmartTractionAlternatorEfficiency Public ReadOnly Property AA_SmartTractionAlternatorEfficiency As Single? _
Implements IAdvancedAuxiliaries.AA_SmartTractionAlternatorEfficiency
Get Get
Return M05.AlternatorsEfficiencyTractionOnResultCard Return M05.AlternatorsEfficiencyTractionOnResultCard
End Get End Get
End Property End Property
Public ReadOnly Property AA_SmartOverrunCurrent_Amps As Single? Implements IAdvancedAuxiliaries.AA_SmartOverrunCurrent_Amps Public ReadOnly Property AA_SmartOverrunCurrent_Amps As Single? _
Implements IAdvancedAuxiliaries.AA_SmartOverrunCurrent_Amps
Get Get
Return M05.SmartOverrunCurrent Return M05.SmartOverrunCurrent
End Get End Get
End Property End Property
Public ReadOnly Property AA_SmartOverrunAlternatorEfficiency As Single? Implements IAdvancedAuxiliaries.AA_SmartOverrunAlternatorEfficiency Public ReadOnly Property AA_SmartOverrunAlternatorEfficiency As Single? _
Implements IAdvancedAuxiliaries.AA_SmartOverrunAlternatorEfficiency
Get Get
Return M05.AlternatorsEfficiencyOverrunResultCard Return M05.AlternatorsEfficiencyOverrunResultCard
End Get End Get
End Property End Property
Public ReadOnly Property AA_CompressorFlowRate_LitrePerSec As Single? Implements IAdvancedAuxiliaries.AA_CompressorFlowRate_LitrePerSec Public ReadOnly Property AA_CompressorFlowRate_LitrePerSec As Single? _
Implements IAdvancedAuxiliaries.AA_CompressorFlowRate_LitrePerSec
Get Get
Return M4.GetFlowRate Return M4.GetFlowRate
End Get End Get
...@@ -402,8 +409,9 @@ Public Class AdvancedAuxiliaries ...@@ -402,8 +409,9 @@ Public Class AdvancedAuxiliaries
Public ReadOnly Property AA_EngineIdleFlag As Integer? Implements IAdvancedAuxiliaries.AA_EngineIdleFlag Public ReadOnly Property AA_EngineIdleFlag As Integer? Implements IAdvancedAuxiliaries.AA_EngineIdleFlag
Get Get
Return If(signals.EngineSpeed <= _signals.EngineIdleSpeed AndAlso (Not signals.ClutchEngaged OrElse signals.InNeutral), 1, 0) Return _
If _
(signals.EngineSpeed <= _signals.EngineIdleSpeed AndAlso (Not signals.ClutchEngaged OrElse signals.InNeutral), 1, 0)
End Get End Get
End Property End Property
...@@ -425,38 +433,50 @@ Public Class AdvancedAuxiliaries ...@@ -425,38 +433,50 @@ Public Class AdvancedAuxiliaries
End Get End Get
End Property End Property
Public ReadOnly Property AuxiliaryPowerAtCrankWatts As Single Implements IAdvancedAuxiliaries.AuxiliaryPowerAtCrankWatts Public ReadOnly Property AuxiliaryPowerAtCrankWatts As Single _
Implements IAdvancedAuxiliaries.AuxiliaryPowerAtCrankWatts
Get Get
Return M8.AuxPowerAtCrankFromElectricalHVACAndPneumaticsAncillaries Return M8.AuxPowerAtCrankFromElectricalHVACAndPneumaticsAncillaries
End Get End Get
End Property End Property
Public ReadOnly Property AA_AveragePowerDemandCrankHVACMechanicals As Single? Implements IAdvancedAuxiliaries.AA_AveragePowerDemandCrankHVACMechanicals Public ReadOnly Property AA_AveragePowerDemandCrankHVACMechanicals As Single? _
Implements IAdvancedAuxiliaries.AA_AveragePowerDemandCrankHVACMechanicals
Get Get
Return M1.AveragePowerDemandAtCrankFromHVACMechanicalsWatts() Return M1.AveragePowerDemandAtCrankFromHVACMechanicalsWatts()
End Get End Get
End Property End Property
Public ReadOnly Property AA_AveragePowerDemandCrankHVACElectricals As Single? Implements IAdvancedAuxiliaries.AA_AveragePowerDemandCrankHVACElectricals
Public ReadOnly Property AA_AveragePowerDemandCrankHVACElectricals As Single? _
Implements IAdvancedAuxiliaries.AA_AveragePowerDemandCrankHVACElectricals
Get Get
Return M1.AveragePowerDemandAtCrankFromHVACElectricsWatts() Return M1.AveragePowerDemandAtCrankFromHVACElectricsWatts()
End Get End Get
End Property End Property
Public ReadOnly Property AA_AveragePowerDemandCrankElectrics As Single? Implements IAdvancedAuxiliaries.AA_AveragePowerDemandCrankElectrics
Public ReadOnly Property AA_AveragePowerDemandCrankElectrics As Single? _
Implements IAdvancedAuxiliaries.AA_AveragePowerDemandCrankElectrics
Get Get
Return M2.GetAveragePowerAtCrankFromElectrics() Return M2.GetAveragePowerAtCrankFromElectrics()
End Get End Get
End Property End Property
Public ReadOnly Property AA_AveragePowerDemandCrankPneumatics As Single? Implements IAdvancedAuxiliaries.AA_AveragePowerDemandCrankPneumatics
Public ReadOnly Property AA_AveragePowerDemandCrankPneumatics As Single? _
Implements IAdvancedAuxiliaries.AA_AveragePowerDemandCrankPneumatics
Get Get
Return M3.GetAveragePowerDemandAtCrankFromPneumatics() Return M3.GetAveragePowerDemandAtCrankFromPneumatics()
End Get End Get
End Property End Property
Public ReadOnly Property AA_TotalCycleFuelConsumptionCompressorOff As Single? Implements IAdvancedAuxiliaries.AA_TotalCycleFuelConsumptionCompressorOff
Public ReadOnly Property AA_TotalCycleFuelConsumptionCompressorOff As Single? _
Implements IAdvancedAuxiliaries.AA_TotalCycleFuelConsumptionCompressorOff
Get Get
Return M9.TotalCycleFuelConsumptionCompressorOffContinuously Return M9.TotalCycleFuelConsumptionCompressorOffContinuously
End Get End Get
End Property End Property
Public ReadOnly Property AA_TotalCycleFuelConsumptionCompressorOn As Single? Implements IAdvancedAuxiliaries.AA_TotalCycleFuelConsumptionCompressorOn
Public ReadOnly Property AA_TotalCycleFuelConsumptionCompressorOn As Single? _
Implements IAdvancedAuxiliaries.AA_TotalCycleFuelConsumptionCompressorOn
Get Get
Return M9.TotalCycleFuelConsumptionCompressorOnContinuously Return M9.TotalCycleFuelConsumptionCompressorOnContinuously
End Get End Get
...@@ -471,45 +491,52 @@ Public Class AdvancedAuxiliaries ...@@ -471,45 +491,52 @@ Public Class AdvancedAuxiliaries
Return M12.INTRP1 Return M12.INTRP1
End Get End Get
End Property End Property
Public ReadOnly Property AA_D_M10_INTERP2 As Single Implements IAdvancedAuxiliaries.AA_D_M12_INTERP2 Public ReadOnly Property AA_D_M10_INTERP2 As Single Implements IAdvancedAuxiliaries.AA_D_M12_INTERP2
Get Get
Return M12.INTRP2 Return M12.INTRP2
End Get End Get
End Property End Property
Public ReadOnly Property AA_D_M12_P1X As Single Implements IAdvancedAuxiliaries.AA_D_M12_P1X Public ReadOnly Property AA_D_M12_P1X As Single Implements IAdvancedAuxiliaries.AA_D_M12_P1X
Get Get
Return M12.P1X Return M12.P1X
End Get End Get
End Property End Property
Public ReadOnly Property AA_D_M12_P1Y As Single Implements IAdvancedAuxiliaries.AA_D_M12_P1Y Public ReadOnly Property AA_D_M12_P1Y As Single Implements IAdvancedAuxiliaries.AA_D_M12_P1Y
Get Get
Return M12.P1Y Return M12.P1Y
End Get End Get
End Property End Property
Public ReadOnly Property AA_D_M12_P2X As Single Implements IAdvancedAuxiliaries.AA_D_M12_P2X Public ReadOnly Property AA_D_M12_P2X As Single Implements IAdvancedAuxiliaries.AA_D_M12_P2X
Get Get
Return M12.P2X Return M12.P2X
End Get End Get
End Property End Property
Public ReadOnly Property AA_D_M12_P2Y As Single Implements IAdvancedAuxiliaries.AA_D_M12_P2Y Public ReadOnly Property AA_D_M12_P2Y As Single Implements IAdvancedAuxiliaries.AA_D_M12_P2Y
Get Get
Return M12.P2Y Return M12.P2Y
End Get End Get
End Property End Property
Public ReadOnly Property AA_D_M12_P3X As Single Implements IAdvancedAuxiliaries.AA_D_M12_P3X Public ReadOnly Property AA_D_M12_P3X As Single Implements IAdvancedAuxiliaries.AA_D_M12_P3X
Get Get
Return M12.P3X Return M12.P3X
End Get End Get
End Property End Property
Public ReadOnly Property AA_D_M12_P3Y As Single Implements IAdvancedAuxiliaries.AA_D_M12_P3Y Public ReadOnly Property AA_D_M12_P3Y As Single Implements IAdvancedAuxiliaries.AA_D_M12_P3Y
Get Get
Return M12.P3Y Return M12.P3Y
End Get End Get
End Property End Property
Public ReadOnly Property AA_D_M12_XTAIN As Single Implements IAdvancedAuxiliaries.AA_D_M12_XTAIN Public ReadOnly Property AA_D_M12_XTAIN As Single Implements IAdvancedAuxiliaries.AA_D_M12_XTAIN
Get Get
Return M12.XTAIN Return M12.XTAIN
End Get End Get
End Property End Property
End Class End Class
...@@ -14,7 +14,6 @@ Imports VectoAuxiliaries.Pneumatics ...@@ -14,7 +14,6 @@ Imports VectoAuxiliaries.Pneumatics
Imports VectoAuxiliaries.Hvac Imports VectoAuxiliaries.Hvac
Namespace DownstreamModules Namespace DownstreamModules
Public Class M11 Public Class M11
Implements IM11 Implements IM11
...@@ -29,6 +28,7 @@ Namespace DownstreamModules ...@@ -29,6 +28,7 @@ Namespace DownstreamModules
Private AG5 As Single Private AG5 As Single
Private AG6 As Single Private AG6 As Single
Private AG7 As Single Private AG7 As Single
#End Region #End Region
#Region "Private Fields Assigned by Constructor." #Region "Private Fields Assigned by Constructor."
...@@ -37,7 +37,7 @@ Namespace DownstreamModules ...@@ -37,7 +37,7 @@ Namespace DownstreamModules
Private M3 As IM3_AveragePneumaticLoadDemand Private M3 As IM3_AveragePneumaticLoadDemand
Private M6 As IM6 Private M6 As IM6
Private M8 As IM8 Private M8 As IM8
Private fmap As IFUELMAP Private fmap As IFuelConsumptionMap
Private signals As ISignals Private signals As ISignals
#End Region #End Region
...@@ -48,99 +48,105 @@ Namespace DownstreamModules ...@@ -48,99 +48,105 @@ Namespace DownstreamModules
If rpm < 1 Then rpm = 1 If rpm < 1 Then rpm = 1
Return rpm / RPM_to_RadiansPerSecond Return rpm / RPM_to_RadiansPerSecond
End Function End Function
Private ReadOnly Property Sum1 As Single Private ReadOnly Property Sum1 As Single
Get Get
Return m6.OverrunFlag * m8.SmartElectricalAlternatorPowerGenAtCrank Return m6.OverrunFlag * m8.SmartElectricalAlternatorPowerGenAtCrank
End Get End Get
End Property End Property
Private ReadOnly Property Sum2 As Single Private ReadOnly Property Sum2 As Single
Get Get
Return m3.GetAveragePowerDemandAtCrankFromPneumatics + m1.AveragePowerDemandAtCrankFromHVACMechanicalsWatts Return m3.GetAveragePowerDemandAtCrankFromPneumatics + m1.AveragePowerDemandAtCrankFromHVACMechanicalsWatts
End Get End Get
End Property End Property
Private ReadOnly Property Sum3 As Single Private ReadOnly Property Sum3 As Single
Get Get
Return m8.SmartElectricalAlternatorPowerGenAtCrank / Sum0(signals.EngineSpeed) Return m8.SmartElectricalAlternatorPowerGenAtCrank / Sum0(signals.EngineSpeed)
End Get End Get
End Property End Property
Private ReadOnly Property Sum4 As Single Private ReadOnly Property Sum4 As Single
Get Get
Return Sum2 / Sum0(signals.EngineSpeed) Return Sum2 / Sum0(signals.EngineSpeed)
End Get End Get
End Property End Property
Private ReadOnly Property Sum5 As Single Private ReadOnly Property Sum5 As Single
Get Get
Return Sum4 + Sum9 Return Sum4 + Sum9
End Get End Get
End Property End Property
Private ReadOnly Property Sum6 As Single Private ReadOnly Property Sum6 As Single
Get Get
Return Sum3 + Sum5 Return Sum3 + Sum5
End Get End Get
End Property End Property
Private ReadOnly Property Sum7 As Single Private ReadOnly Property Sum7 As Single
Get Get
'SCM 3_02 'SCM 3_02
Dim intrp1 As Single = fmap.fFCdelaunay_Intp(signals.EngineSpeed, sum6) Dim intrp1 As Single = fmap.GetFuelConsumption(sum6, signals.EngineSpeed)
intrp1 = If(Not Single.IsNaN(intrp1) AndAlso intrp1 > 0, intrp1, 0) intrp1 = If(Not Single.IsNaN(intrp1) AndAlso intrp1 > 0, intrp1, 0)
Return intrp1 Return intrp1
End Get End Get
End Property End Property
Private ReadOnly Property Sum8 As Single Private ReadOnly Property Sum8 As Single
Get Get
'SCHM 3_2 'SCHM 3_2
Dim intrp2 As Single = fmap.fFCdelaunay_Intp(signals.EngineSpeed, sum5) Dim intrp2 As Single = fmap.GetFuelConsumption(Sum5, signals.EngineSpeed)
intrp2 = If(Not Single.IsNaN(intrp2) AndAlso intrp2 > 0, intrp2, 0) intrp2 = If(Not Single.IsNaN(intrp2) AndAlso intrp2 > 0, intrp2, 0)
Return intrp2 Return intrp2
End Get End Get
End Property End Property
Private ReadOnly Property Sum9 As Single Private ReadOnly Property Sum9 As Single
Get Get
Return signals.EngineDrivelineTorque + ((signals.PreExistingAuxPower * 1000) / Sum0(signals.EngineSpeed)) Return signals.EngineDrivelineTorque + ((signals.PreExistingAuxPower * 1000) / Sum0(signals.EngineSpeed))
End Get End Get
End Property End Property
Private ReadOnly Property Sum10 As Single Private ReadOnly Property Sum10 As Single
Get Get
Return M6.AvgPowerDemandAtCrankFromElectricsIncHVAC \ Sum0(signals.EngineSpeed) Return M6.AvgPowerDemandAtCrankFromElectricsIncHVAC \ Sum0(signals.EngineSpeed)
End Get End Get
End Property End Property
Private ReadOnly Property Sum11 As Single Private ReadOnly Property Sum11 As Single
Get Get
Return Sum5 + Sum10 Return Sum5 + Sum10
End Get End Get
End Property End Property
Private ReadOnly Property Sum12 As Single Private ReadOnly Property Sum12 As Single
Get Get
'SCHM 3_2 'SCHM 3_2
Dim intrp3 As Single = fmap.fFCdelaunay_Intp(signals.EngineSpeed, Sum11) Dim intrp3 As Single = fmap.GetFuelConsumption(Sum11, signals.EngineSpeed)
intrp3 = If(Not Single.IsNaN(intrp3) AndAlso intrp3 > 0, intrp3, 0) intrp3 = If(Not Single.IsNaN(intrp3) AndAlso intrp3 > 0, intrp3, 0)
Return intrp3 Return intrp3
End Get End Get
End Property End Property
'OUT1 'OUT1
Public ReadOnly Property SmartElectricalTotalCycleElectricalEnergyGeneratedDuringOverrunOnly As Single Implements IM11.SmartElectricalTotalCycleElectricalEnergyGeneratedDuringOverrunOnly Public ReadOnly Property SmartElectricalTotalCycleElectricalEnergyGeneratedDuringOverrunOnly As Single _
Implements IM11.SmartElectricalTotalCycleElectricalEnergyGeneratedDuringOverrunOnly
Get Get
Return AG1 Return AG1
End Get End Get
End Property End Property
'OUT2 'OUT2
Public ReadOnly Property SmartElectricalTotalCycleEletricalEnergyGenerated As Single Implements IM11.SmartElectricalTotalCycleEletricalEnergyGenerated Public ReadOnly Property SmartElectricalTotalCycleEletricalEnergyGenerated As Single _
Implements IM11.SmartElectricalTotalCycleEletricalEnergyGenerated
Get Get
Return AG2 Return AG2
End Get End Get
...@@ -152,25 +158,29 @@ Namespace DownstreamModules ...@@ -152,25 +158,29 @@ Namespace DownstreamModules
End Get End Get
End Property End Property
'OUT4 'OUT4
Public ReadOnly Property TotalCycleFuelConsumptionSmartElectricalLoad As Single Implements IM11.TotalCycleFuelConsumptionSmartElectricalLoad Public ReadOnly Property TotalCycleFuelConsumptionSmartElectricalLoad As Single _
Implements IM11.TotalCycleFuelConsumptionSmartElectricalLoad
Get Get
Return AG4 Return AG4
End Get End Get
End Property End Property
'OUT5 'OUT5
Public ReadOnly Property TotalCycleFuelConsumptionZeroElectricalLoad As Single Implements IM11.TotalCycleFuelConsumptionZeroElectricalLoad Public ReadOnly Property TotalCycleFuelConsumptionZeroElectricalLoad As Single _
Implements IM11.TotalCycleFuelConsumptionZeroElectricalLoad
Get Get
Return AG5 Return AG5
End Get End Get
End Property End Property
'OUT6 'OUT6
Public ReadOnly Property StopStartSensitiveTotalCycleElectricalDemand As Single Implements IM11.StopStartSensitiveTotalCycleElectricalDemand Public ReadOnly Property StopStartSensitiveTotalCycleElectricalDemand As Single _
Implements IM11.StopStartSensitiveTotalCycleElectricalDemand
Get Get
Return AG6 Return AG6
End Get End Get
End Property End Property
'OUT7 'OUT7
Public ReadOnly Property TotalCycleFuelConsuptionAverageLoads As Single Implements IM11.TotalCycleFuelConsuptionAverageLoads Public ReadOnly Property TotalCycleFuelConsuptionAverageLoads As Single _
Implements IM11.TotalCycleFuelConsuptionAverageLoads
Get Get
Return AG7 Return AG7
End Get End Get
...@@ -192,7 +202,6 @@ Namespace DownstreamModules ...@@ -192,7 +202,6 @@ Namespace DownstreamModules
AG5 = 0 AG5 = 0
AG6 = 0 AG6 = 0
AG7 = 0 AG7 = 0
End Sub End Sub
'Add to Aggregates dependent on cycle step time. 'Add to Aggregates dependent on cycle step time.
...@@ -214,11 +223,11 @@ Namespace DownstreamModules ...@@ -214,11 +223,11 @@ Namespace DownstreamModules
AG4 += (stepTimeInSeconds * sum7 / 3600 * SW1) AG4 += (stepTimeInSeconds * sum7 / 3600 * SW1)
AG5 += (stepTimeInSeconds * Sum8 / 3600 * SW1) AG5 += (stepTimeInSeconds * Sum8 / 3600 * SW1)
AG7 += (stepTimeInSeconds * Sum12 / 3600 * SW1) AG7 += (stepTimeInSeconds * Sum12 / 3600 * SW1)
End Sub End Sub
'Constructor 'Constructor
Public Sub New(m1 As IM1_AverageHVACLoadDemand, m3 As IM3_AveragePneumaticLoadDemand, m6 As IM6, m8 As IM8, fmap As IFUELMAP, signals As ISignals) Public Sub New(m1 As IM1_AverageHVACLoadDemand, m3 As IM3_AveragePneumaticLoadDemand, m6 As IM6, m8 As IM8,
fmap As IFuelConsumptionMap, signals As ISignals)
Me.M1 = m1 Me.M1 = m1
Me.M3 = m3 Me.M3 = m3
...@@ -226,13 +235,8 @@ Namespace DownstreamModules ...@@ -226,13 +235,8 @@ Namespace DownstreamModules
Me.M8 = m8 Me.M8 = m8
Me.fmap = fmap Me.fmap = fmap
Me.signals = signals Me.signals = signals
End Sub End Sub
End Class End Class
End Namespace End Namespace
...@@ -14,7 +14,6 @@ Imports VectoAuxiliaries.Pneumatics ...@@ -14,7 +14,6 @@ Imports VectoAuxiliaries.Pneumatics
Imports VectoAuxiliaries.Hvac Imports VectoAuxiliaries.Hvac
Namespace DownstreamModules Namespace DownstreamModules
Public Class M9 Public Class M9
Implements IM9 Implements IM9
Private Const RPM_TO_RADS_PER_SECOND As Single = 9.55F Private Const RPM_TO_RADS_PER_SECOND As Single = 9.55F
...@@ -31,13 +30,14 @@ Namespace DownstreamModules ...@@ -31,13 +30,14 @@ Namespace DownstreamModules
Private _TotalCycleFuelConsumptionCompressorOnContinuouslyAggregate As Single Private _TotalCycleFuelConsumptionCompressorOnContinuouslyAggregate As Single
#End Region #End Region
#Region "Constructor Requirements" #Region "Constructor Requirements"
Private M1 As IM1_AverageHVACLoadDemand Private M1 As IM1_AverageHVACLoadDemand
Private M4 As IM4_AirCompressor Private M4 As IM4_AirCompressor
Private M6 As IM6 Private M6 As IM6
Private M8 As IM8 Private M8 As IM8
Private FMAP As IFUELMAP Private FMAP As IFuelConsumptionMap
Private PSAC As IPneumaticsAuxilliariesConfig Private PSAC As IPneumaticsAuxilliariesConfig
Private Signals As ISignals Private Signals As ISignals
...@@ -46,25 +46,29 @@ Namespace DownstreamModules ...@@ -46,25 +46,29 @@ Namespace DownstreamModules
#Region "Class Outputs" #Region "Class Outputs"
'OUT 1 'OUT 1
Public ReadOnly Property LitresOfAirCompressorOnContinually As Single Implements IM9.LitresOfAirCompressorOnContinually Public ReadOnly Property LitresOfAirCompressorOnContinually As Single _
Implements IM9.LitresOfAirCompressorOnContinually
Get Get
Return _LitresOfAirCompressorOnContinuallyAggregate Return _LitresOfAirCompressorOnContinuallyAggregate
End Get End Get
End Property End Property
'OUT 2 'OUT 2
Public ReadOnly Property LitresOfAirCompressorOnOnlyInOverrun As Single Implements IM9.LitresOfAirCompressorOnOnlyInOverrun Public ReadOnly Property LitresOfAirCompressorOnOnlyInOverrun As Single _
Implements IM9.LitresOfAirCompressorOnOnlyInOverrun
Get Get
Return _LitresOfAirCompressorOnOnlyInOverrunAggregate Return _LitresOfAirCompressorOnOnlyInOverrunAggregate
End Get End Get
End Property End Property
'OUT 3 'OUT 3
Public ReadOnly Property TotalCycleFuelConsumptionCompressorOffContinuously As Single Implements IM9.TotalCycleFuelConsumptionCompressorOffContinuously Public ReadOnly Property TotalCycleFuelConsumptionCompressorOffContinuously As Single _
Implements IM9.TotalCycleFuelConsumptionCompressorOffContinuously
Get Get
Return _TotalCycleFuelConsumptionCompressorOffContinuouslyAggregate Return _TotalCycleFuelConsumptionCompressorOffContinuouslyAggregate
End Get End Get
End Property End Property
'OUT 4 'OUT 4
Public ReadOnly Property TotalCycleFuelConsumptionCompressorOnContinuously As Single Implements IM9.TotalCycleFuelConsumptionCompressorOnContinuously Public ReadOnly Property TotalCycleFuelConsumptionCompressorOnContinuously As Single _
Implements IM9.TotalCycleFuelConsumptionCompressorOnContinuously
Get Get
Return _TotalCycleFuelConsumptionCompressorOnContinuouslyAggregate Return _TotalCycleFuelConsumptionCompressorOnContinuouslyAggregate
End Get End Get
...@@ -78,7 +82,6 @@ Namespace DownstreamModules ...@@ -78,7 +82,6 @@ Namespace DownstreamModules
If rpm < 1 Then rpm = 1 If rpm < 1 Then rpm = 1
Return rpm / RPM_TO_RADS_PER_SECOND Return rpm / RPM_TO_RADS_PER_SECOND
End Function End Function
Private ReadOnly Property S1 As Single Private ReadOnly Property S1 As Single
...@@ -86,87 +89,99 @@ Namespace DownstreamModules ...@@ -86,87 +89,99 @@ Namespace DownstreamModules
Return M6.AvgPowerDemandAtCrankFromElectricsIncHVAC + M1.AveragePowerDemandAtCrankFromHVACMechanicalsWatts Return M6.AvgPowerDemandAtCrankFromElectricsIncHVAC + M1.AveragePowerDemandAtCrankFromHVACMechanicalsWatts
End Get End Get
End Property End Property
Private ReadOnly Property S2 As Single Private ReadOnly Property S2 As Single
Get Get
If S0(Signals.EngineSpeed) = 0 Then Throw New DivideByZeroException("Engine speed is zero and cannot be used as a divisor.") If S0(Signals.EngineSpeed) = 0 Then _
Throw New DivideByZeroException("Engine speed is zero and cannot be used as a divisor.")
Return M4.GetPowerCompressorOn / S0(Signals.EngineSpeed) Return M4.GetPowerCompressorOn / S0(Signals.EngineSpeed)
End Get End Get
End Property End Property
Private ReadOnly Property S3 As Single Private ReadOnly Property S3 As Single
Get Get
If S0(Signals.EngineSpeed) = 0 Then Throw New DivideByZeroException("Engine speed is zero and cannot be used as a divisor.") If S0(Signals.EngineSpeed) = 0 Then _
Throw New DivideByZeroException("Engine speed is zero and cannot be used as a divisor.")
Return M4.GetPowerCompressorOff / S0(Signals.EngineSpeed) Return M4.GetPowerCompressorOff / S0(Signals.EngineSpeed)
End Get End Get
End Property End Property
Private ReadOnly Property S4 As Single Private ReadOnly Property S4 As Single
Get Get
If S0(Signals.EngineSpeed) = 0 Then Throw New DivideByZeroException("Engine speed is zero and cannot be used as a divisor.") If S0(Signals.EngineSpeed) = 0 Then _
Throw New DivideByZeroException("Engine speed is zero and cannot be used as a divisor.")
Return S1 / S0(Signals.EngineSpeed) Return S1 / S0(Signals.EngineSpeed)
End Get End Get
End Property End Property
Private ReadOnly Property S5 As Single Private ReadOnly Property S5 As Single
Get Get
Return S2 + S14 Return S2 + S14
End Get End Get
End Property End Property
Private ReadOnly Property S6 As Single Private ReadOnly Property S6 As Single
Get Get
Return S14 + S3 Return S14 + S3
End Get End Get
End Property End Property
Private ReadOnly Property S7 As Single Private ReadOnly Property S7 As Single
Get Get
Return S4 + S5 Return S4 + S5
End Get End Get
End Property End Property
Private ReadOnly Property S8 As Single Private ReadOnly Property S8 As Single
Get Get
Return S4 + S6 Return S4 + S6
End Get End Get
End Property End Property
Private ReadOnly Property S9 As Single Private ReadOnly Property S9 As Single
Get Get
Return M4.GetFlowRate * M6.OverrunFlag * M8.CompressorFlag Return M4.GetFlowRate * M6.OverrunFlag * M8.CompressorFlag
End Get End Get
End Property End Property
Private ReadOnly Property S10 As Single Private ReadOnly Property S10 As Single
Get Get
Return S13 * PSAC.OverrunUtilisationForCompressionFraction Return S13 * PSAC.OverrunUtilisationForCompressionFraction
End Get End Get
End Property End Property
Private ReadOnly Property S11 As Single Private ReadOnly Property S11 As Single
Get Get
'SCHM 3_02 'SCHM 3_02
Dim int1 As Single = FMAP.fFCdelaunay_Intp(Signals.EngineSpeed, s7) Dim int1 As Single = FMAP.GetFuelConsumption(S7, Signals.EngineSpeed)
int1 = If(int1 > 0 AndAlso Not Single.IsNaN(int1), int1, 0) int1 = If(int1 > 0 AndAlso Not Single.IsNaN(int1), int1, 0)
Return int1 / 3600 Return int1 / 3600
End Get End Get
End Property End Property
Private ReadOnly Property S12 As Single Private ReadOnly Property S12 As Single
Get Get
'SCHM 3_02 'SCHM 3_02
Dim int2 As Single = FMAP.fFCdelaunay_Intp(Signals.EngineSpeed, s8) Dim int2 As Single = FMAP.GetFuelConsumption(S8, Signals.EngineSpeed)
int2 = If(int2 > 0 AndAlso Not Single.IsNaN(int2), int2, 0) int2 = If(int2 > 0 AndAlso Not Single.IsNaN(int2), int2, 0)
Return int2 / 3600 Return int2 / 3600
End Get End Get
End Property End Property
Private ReadOnly Property S13 As Single Private ReadOnly Property S13 As Single
Get Get
Return (Signals.ClutchEngaged *
Return (Signals.ClutchEngaged * Not (Signals.InNeutral)) * S9 Not (Signals.InNeutral)) * S9
End Get End Get
End Property End Property
Private ReadOnly Property S14 As Single Private ReadOnly Property S14 As Single
Get Get
Return Signals.EngineDrivelineTorque + ((Signals.PreExistingAuxPower * 1000) / S0(Signals.EngineSpeed)) Return Signals.EngineDrivelineTorque + ((Signals.PreExistingAuxPower * 1000) / S0(Signals.EngineSpeed))
End Get End Get
End Property End Property
...@@ -183,20 +198,21 @@ Namespace DownstreamModules ...@@ -183,20 +198,21 @@ Namespace DownstreamModules
_LitresOfAirCompressorOnOnlyInOverrunAggregate = 0 _LitresOfAirCompressorOnOnlyInOverrunAggregate = 0
_TotalCycleFuelConsumptionCompressorOffContinuouslyAggregate = 0 _TotalCycleFuelConsumptionCompressorOffContinuouslyAggregate = 0
_TotalCycleFuelConsumptionCompressorOnContinuouslyAggregate = 0 _TotalCycleFuelConsumptionCompressorOnContinuouslyAggregate = 0
End Sub End Sub
Public Sub CycleStep(Optional stepTimeInSeconds As Single = 0.0) Implements IM9.CycleStep Public Sub CycleStep(Optional stepTimeInSeconds As Single = 0.0) Implements IM9.CycleStep
If Signals.EngineStopped Then Return If Signals.EngineStopped Then Return
_LitresOfAirCompressorOnContinuallyAggregate += stepTimeInSeconds * M4.GetFlowRate * sw1 _LitresOfAirCompressorOnContinuallyAggregate += stepTimeInSeconds * M4.GetFlowRate * SW1
_LitresOfAirCompressorOnOnlyInOverrunAggregate += stepTimeInSeconds * s10 * sw1 _LitresOfAirCompressorOnOnlyInOverrunAggregate += stepTimeInSeconds * S10 * SW1
_TotalCycleFuelConsumptionCompressorOnContinuouslyAggregate += stepTimeInSeconds * s11 * sw1 _TotalCycleFuelConsumptionCompressorOnContinuouslyAggregate += stepTimeInSeconds * S11 * SW1
_TotalCycleFuelConsumptionCompressorOffContinuouslyAggregate += stepTimeInSeconds * s12 * sw1 _TotalCycleFuelConsumptionCompressorOffContinuouslyAggregate += stepTimeInSeconds * S12 * SW1
End Sub End Sub
'Constructor 'Constructor
Public Sub New(m1 As IM1_AverageHVACLoadDemand, m4 As IM4_AirCompressor, m6 As IM6, m8 As IM8, fmap As IFUELMAP, psac As IPneumaticsAuxilliariesConfig, signals As ISignals) Public Sub New(m1 As IM1_AverageHVACLoadDemand, m4 As IM4_AirCompressor, m6 As IM6, m8 As IM8,
fmap As IFuelConsumptionMap, psac As IPneumaticsAuxilliariesConfig, signals As ISignals)
Me.M1 = m1 Me.M1 = m1
Me.M4 = m4 Me.M4 = m4
Me.M6 = m6 Me.M6 = m6
...@@ -207,12 +223,9 @@ Namespace DownstreamModules ...@@ -207,12 +223,9 @@ Namespace DownstreamModules
End Sub End Sub
'Auxiliary Event 'Auxiliary Event
Public Event AuxiliaryEvent(ByRef sender As Object, message As String, messageType As AdvancedAuxiliaryMessageType) Implements IAuxiliaryEvent.AuxiliaryEvent Public Event AuxiliaryEvent(ByRef sender As Object, message As String, messageType As AdvancedAuxiliaryMessageType) _
Implements IAuxiliaryEvent.AuxiliaryEvent
End Class End Class
End Namespace End Namespace
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
Imports System.Collections.Generic Imports System.Collections.Generic
Public Class cMAP Public Class cMAP
Implements IFUELMAP Implements IFuelConsumptionMap
Private LnU As List(Of Single) Private LnU As List(Of Single)
Private LTq As List(Of Single) Private LTq As List(Of Single)
...@@ -30,7 +30,7 @@ Implements IFUELMAP ...@@ -30,7 +30,7 @@ Implements IFUELMAP
FuelMap = New cDelaunayMap FuelMap = New cDelaunayMap
End Sub End Sub
Public Function ReadFile(Optional ByVal ShowMsg As Boolean = True) As Boolean Implements IFUELMAP.ReadFile Public Function ReadFile(Optional ByVal ShowMsg As Boolean = True) As Boolean
Dim file As cFile_V3 Dim file As cFile_V3
Dim line As String() Dim line As String()
Dim nU As Double Dim nU As Double
...@@ -114,10 +114,9 @@ lbEr: ...@@ -114,10 +114,9 @@ lbEr:
file = Nothing file = Nothing
Return False Return False
End Function End Function
Public Function Triangulate() As Boolean Implements IFUELMAP.Triangulate Public Function Triangulate() As Boolean
Dim i As Integer Dim i As Integer
Dim MsgSrc As String Dim MsgSrc As String
...@@ -130,11 +129,10 @@ lbEr: ...@@ -130,11 +129,10 @@ lbEr:
Next Next
Return FuelMap.Triangulate() Return FuelMap.Triangulate()
End Function End Function
Public Function fFCdelaunay_Intp(ByVal nU As Single, ByVal Tq As Single) As Single Implements IFUELMAP.fFCdelaunay_Intp Public Function fFCdelaunay_Intp(ByVal nU As Single, ByVal Tq As Single) As Single
Dim val As Single Dim val As Single
val = FuelMap.Intpol(nU, Tq) val = FuelMap.Intpol(nU, Tq)
...@@ -145,12 +143,11 @@ lbEr: ...@@ -145,12 +143,11 @@ lbEr:
Else Else
Return val Return val
End If End If
End Function End Function
#Region "Properties" #Region "Properties"
Public Property FilePath() As String Implements IFUELMAP.FilePath Public Property FilePath() As String
Get Get
Return sFilePath Return sFilePath
End Get End Get
...@@ -159,25 +156,25 @@ lbEr: ...@@ -159,25 +156,25 @@ lbEr:
End Set End Set
End Property End Property
Public ReadOnly Property MapDim As Integer Implements IFUELMAP.MapDim Public ReadOnly Property MapDim As Integer
Get Get
Return iMapDim Return iMapDim
End Get End Get
End Property End Property
Public ReadOnly Property Tq As List(Of Single) Implements IFUELMAP.Tq Public ReadOnly Property Tq As List(Of Single)
Get Get
Return LTq Return LTq
End Get End Get
End Property End Property
Public ReadOnly Property FC As List(Of Single) Implements IFUELMAP.FC Public ReadOnly Property FC As List(Of Single)
Get Get
Return lFC Return lFC
End Get End Get
End Property End Property
Public ReadOnly Property nU As List(Of Single) Implements IFUELMAP.nU Public ReadOnly Property nU As List(Of Single)
Get Get
Return LnU Return LnU
End Get End Get
...@@ -185,14 +182,10 @@ lbEr: ...@@ -185,14 +182,10 @@ lbEr:
#End Region #End Region
Public Function GetFuelConsumption(torque As Double, angularVelocity As Double) As Double _
Implements IFuelConsumptionMap.GetFuelConsumption
Return fFCdelaunay_Intp(angularVelocity, torque)
End Function
End Class End Class
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment