Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS will be completely phased out by mid-2025. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit 432b85ea authored by Glenn Zarb's avatar Glenn Zarb Committed by Kostis ANAGNOSTOPOULOS
Browse files
parent d931fe6b
No related branches found
No related tags found
No related merge requests found
......@@ -11,120 +11,121 @@
Public Interface ISignals
''' <summary>
''' Pre Existing Aux Power (KW)
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input</remarks>
Property PreExistingAuxPower As single
''' <summary>
''' Engine Motoring Power (KW)
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input</remarks>
Property EngineMotoringPower As single
''' <summary>
''' Engine Driveline Power (KW)
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
property EngineDrivelinePower as single
''' <summary>
''' Smart Electrics
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Should be true if fitted to the vehicle - AAUX Input</remarks>
property SmartElectrics As Boolean
''' <summary>
''' Clucth Engaged
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input</remarks>
Property ClutchEngaged As Boolean
''' <summary>
''' Engine Speed 1/NU
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>RPM in old money - Vecto Input</remarks>
Property EngineSpeed as integer
''' <summary>
''' Smart Pneumatics
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>should be true if fitted to the vehicle- AAux Config Input</remarks>
Property SmartPneumatics As Boolean
''' <summary>
''' Total Cycle Time In Seconds
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input</remarks>
Property TotalCycleTimeSeconds As Integer
''' <summary>
''' Current Cycle Time In Seconds
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>( Will Increment during Cycle )</remarks>
Property CurrentCycleTimeInSeconds As Integer
''' <summary>
''' Engine Driveline Torque
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input</remarks>
property EngineDrivelineTorque as single
''' <summary>
''' Engine Idle
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input</remarks>
Property Idle As Boolean
''' <summary>
''' In Neutral
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input</remarks>
Property InNeutral As Boolean
''' <summary>
''' Auxiliary Event Reporting Level
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Can be used by Vecto to choose the level of reporting</remarks>
Property AuxiliaryEventReportingLevel As AdvancedAuxiliaryMessageType
''' <summary>
''' Engine Stopped
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>'Vecto Input - Used to Cut Fueling in AAux model</remarks>
Property EngineStopped As Boolean
''' <summary>
''' WHTC ( Correction factor to be applied )
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>'Vecto Input</remarks>
Property WHTC As Single
''' <summary>
''' Declaration Mode
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input - Used to decide if to apply WHTC/Possiblye other things in future</remarks>
Property DeclarationMode As Boolean
'Engine Idle Speed ( Associated with the vehicle bein tested )
Property EngineIdleSpeed As Single
''' <summary>
''' Pre Existing Aux Power (KW)
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input</remarks>
Property PreExistingAuxPower As Single
''' <summary>
''' Engine Motoring Power (KW)
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input</remarks>
Property EngineMotoringPower As Single
''' <summary>
''' Engine Driveline Power (KW)
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks></remarks>
Property EngineDrivelinePower As Single
''' <summary>
''' Smart Electrics
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Should be true if fitted to the vehicle - AAUX Input</remarks>
Property SmartElectrics As Boolean
''' <summary>
''' Clucth Engaged
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input</remarks>
Property ClutchEngaged As Boolean
''' <summary>
''' Engine Speed 1/NU
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>RPM in old money - Vecto Input</remarks>
Property EngineSpeed As Integer
''' <summary>
''' Smart Pneumatics
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>should be true if fitted to the vehicle- AAux Config Input</remarks>
Property SmartPneumatics As Boolean
''' <summary>
''' Total Cycle Time In Seconds
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input</remarks>
Property TotalCycleTimeSeconds As Integer
''' <summary>
''' Current Cycle Time In Seconds
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>( Will Increment during Cycle )</remarks>
Property CurrentCycleTimeInSeconds As Integer
''' <summary>
''' Engine Driveline Torque
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input</remarks>
Property EngineDrivelineTorque As Single
''' <summary>
''' Engine Idle
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input</remarks>
Property Idle As Boolean
''' <summary>
''' In Neutral
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input</remarks>
Property InNeutral As Boolean
''' <summary>
''' Auxiliary Event Reporting Level
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Can be used by Vecto to choose the level of reporting</remarks>
Property AuxiliaryEventReportingLevel As AdvancedAuxiliaryMessageType
''' <summary>
''' Engine Stopped
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>'Vecto Input - Used to Cut Fueling in AAux model</remarks>
Property EngineStopped As Boolean
''' <summary>
''' WHTC ( Correction factor to be applied )
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>'Vecto Input</remarks>
Property WHTC As Single
''' <summary>
''' Declaration Mode
''' </summary>
''' <value></value>
''' <returns></returns>
''' <remarks>Vecto Input - Used to decide if to apply WHTC/Possiblye other things in future</remarks>
Property DeclarationMode As Boolean
'Engine Idle Speed ( Associated with the vehicle bein tested )
Property EngineIdleSpeed As Single
'Pneumatic Overrun Utilisation
Property PneumaticOverrunUtilisation As Single
End Interface
......@@ -15,7 +15,7 @@ Implements ISignals
'Backing variables
Private _WHTCCorretion As Single =1
Private _WHTCCorretion As Single = 1
Private _smartElectrics As Boolean
Public Property ClutchEngaged As Boolean Implements ISignals.ClutchEngaged
......@@ -24,19 +24,16 @@ Implements ISignals
Public Property EngineMotoringPower As Single Implements ISignals.EngineMotoringPower
Public Property EngineSpeed As Integer Implements ISignals.EngineSpeed
Public Property SmartElectrics As Boolean Implements ISignals.SmartElectrics
Get
Return _smartElectrics
End Get
Set(value As Boolean)
_smartElectrics=value
End Set
end property
Get
Return _smartElectrics
End Get
Set(value As Boolean)
_smartElectrics = value
End Set
End Property
Public Property SmartPneumatics As Boolean Implements ISignals.SmartPneumatics
Public Property TotalCycleTimeSeconds As Integer Implements ISignals.TotalCycleTimeSeconds
public Property CurrentCycleTimeInSeconds As Integer Implements ISignals.CurrentCycleTimeInSeconds
Public Property CurrentCycleTimeInSeconds As Integer Implements ISignals.CurrentCycleTimeInSeconds
Public Property PreExistingAuxPower As Single Implements ISignals.PreExistingAuxPower
Public Property Idle As Boolean Implements ISignals.Idle
Public Property InNeutral As Boolean Implements ISignals.InNeutral
......@@ -44,17 +41,15 @@ Implements ISignals
Public Property EngineStopped As Boolean Implements ISignals.EngineStopped
Public Property DeclarationMode As Boolean Implements ISignals.DeclarationMode
Public Property WHTC As Single Implements ISignals.WHTC
Set
_WHTCCorretion=value
End Set
Get
Return _WHTCCorretion
End Get
end property
Set(value As Single)
_WHTCCorretion = value
End Set
Get
Return _WHTCCorretion
End Get
End Property
Public Property EngineIdleSpeed As Single Implements ISignals.EngineIdleSpeed
Public Property PneumaticOverrunUtilisation As Single Implements ISignals.PneumaticOverrunUtilisation
End Class
......
......@@ -88,6 +88,7 @@ Public Class AdvancedAuxiliaries
'Pass some signals from config to Signals. ( These are stored in the configuration but shared in the signal distribution around modules )
Signals.SmartElectrics = auxConfig.ElectricalUserInputsConfig.SmartElectrical
Signals.SmartPneumatics = auxConfig.PneumaticUserInputsConfig.SmartAirCompression
Signals.PneumaticOverrunUtilisation = auxConfig.PneumaticAuxillariesConfig.OverrunUtilisationForCompressionFraction
alternatorMap = New CombinedAlternator(FilePathUtils.ResolveFilePath(vectoDirectory, auxConfig.ElectricalUserInputsConfig.AlternatorMap))
......
......@@ -220,8 +220,7 @@ Public Class AuxiliaryConfig
If Me.PneumaticUserInputsConfig.RetarderBrake <> other.PneumaticUserInputsConfig.RetarderBrake Then Return False
If Me.PneumaticUserInputsConfig.SmartAirCompression <> other.PneumaticUserInputsConfig.SmartAirCompression Then Return False
If Me.PneumaticUserInputsConfig.SmartRegeneration <> other.PneumaticUserInputsConfig.SmartRegeneration Then Return False
Return True
End Function
......@@ -387,8 +386,7 @@ Public Class AuxiliaryConfig
Me.PneumaticUserInputsConfig.RetarderBrake = other.PneumaticUserInputsConfig.RetarderBrake
Me.PneumaticUserInputsConfig.SmartAirCompression = other.PneumaticUserInputsConfig.SmartAirCompression
Me.PneumaticUserInputsConfig.SmartRegeneration = other.PneumaticUserInputsConfig.SmartRegeneration
End Sub
Private Sub CloneHVAC(other As AuxiliaryConfig)
......
......@@ -224,7 +224,7 @@ Namespace DownstreamModules
End Property
Public ReadOnly Property Sum15 As Single
Get
Return VC2 * (_m4.GetPowerCompressorOn * 0.97)
Return VC2 * (_m4.GetPowerCompressorOn * _signals.PneumaticOverrunUtilisation)
End Get
End Property
Public ReadOnly Property Sum16 As Single
......@@ -239,7 +239,7 @@ Namespace DownstreamModules
End Property
Public ReadOnly Property Sum18 As Single
Get
Return VC4 * (_m4.GetPowerCompressorOn * 0.97)
Return VC4 * (_m4.GetPowerCompressorOn * _signals.PneumaticOverrunUtilisation)
End Get
End Property
Public ReadOnly Property Sum19 As Single
......
......@@ -13,99 +13,99 @@ Imports System.Diagnostics.CodeAnalysis
Namespace Electrics
Public Class M0_5_SmartAlternatorSetEfficiency
Implements IM0_5_SmartAlternatorSetEfficiency
'Fields
private _m0 As IM0_NonSmart_AlternatorsSetEfficiency
Private _electricalConsumables As IElectricalConsumerList
Private _alternatorMap As IAlternatorMap
Private _resultCardIdle As IResultCard
Private _resultCardTraction As IResultCard
Private _resultCardOverrun As IResultCard
Private _signals As ISignals
'Constructor
Public Sub new ( m0 As IM0_NonSmart_AlternatorsSetEfficiency, _
electricalConsumables as IElectricalConsumerList, _
alternatorMap As IAlternatorMap, _
resultCardIdle As IResultCard, _
resultCardTraction As IResultCard, _
resultCardOverrun As IResultCard,
signals As ISignals)
'Sanity Check on supplied arguments, throw an argument exception
If m0 is Nothing then Throw New ArgumentException("Module 0 must be supplied")
If electricalConsumables is Nothing then Throw New ArgumentException("ElectricalConsumablesList must be supplied even if empty")
If alternatorMap is Nothing then throw new ArgumentException("Must supply a valid alternator map")
if resultCardIdle is nothing then throw new ArgumentException("Result Card 'IDLE' must be supplied even if it has no contents")
if resultCardTraction is nothing then throw new ArgumentException("Result Card 'TRACTION' must be supplied even if it has no contents")
if resultCardOverrun is nothing then throw new ArgumentException("Result Card 'OVERRUN' must be supplied even if it has no contents")
If signals is Nothing then Throw New ArgumentException("No Signals Reference object was provided ")
'Assignments to private variables.
_m0=m0
_electricalConsumables = electricalConsumables
_alternatorMap = alternatorMap
_resultCardIdle = resultCardIdle
_resultCardTraction = resultCardTraction
_resultCardOverrun = resultCardOverrun
_signals = signals
End Sub
'Public Class Outputs (Properties)
Public ReadOnly property SmartIdleCurrent() As single Implements IM0_5_SmartAlternatorSetEfficiency.SmartIdleCurrent
Get
Dim hvac_Plus_None_Base As Single = HvacPlusNonBaseCurrents()
Dim smart_idle_current As Single = _resultCardIdle.GetSmartCurrentResult(hvac_Plus_None_Base)
Return smart_idle_current
End Get
End Property
Public ReadOnly property AlternatorsEfficiencyIdleResultCard( ) As single Implements IM0_5_SmartAlternatorSetEfficiency.AlternatorsEfficiencyIdleResultCard
Get
Return _alternatorMap.GetEfficiency(_signals.EngineSpeed, SmartIdleCurrent()).Efficiency
End Get
End Property
Public ReadOnly property SmartTractionCurrent As Single Implements IM0_5_SmartAlternatorSetEfficiency.SmartTractionCurrent
Get
Return _resultCardTraction.GetSmartCurrentResult(HvacPlusNonBaseCurrents())
End Get
End Property
Public ReadOnly Property AlternatorsEfficiencyTractionOnResultCard() As Single Implements IM0_5_SmartAlternatorSetEfficiency.AlternatorsEfficiencyTractionOnResultCard
Get
Return _alternatorMap.GetEfficiency(_signals.EngineSpeed, SmartTractionCurrent()).Efficiency
End Get
End Property
Public ReadOnly property SmartOverrunCurrent As Single Implements IM0_5_SmartAlternatorSetEfficiency.SmartOverrunCurrent
Get
Return _resultCardOverrun.GetSmartCurrentResult(HvacPlusNonBaseCurrents())
End Get
End Property
Public readonly property AlternatorsEfficiencyOverrunResultCard() As single Implements IM0_5_SmartAlternatorSetEfficiency.AlternatorsEfficiencyOverrunResultCard
Get
Return _alternatorMap.GetEfficiency(_signals.EngineSpeed, SmartOverrunCurrent()).Efficiency
End Get
End Property
'Helpers
''' <summary>
''' Returns Non Base Currents (A)
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
<ExcludeFromCodeCoverage>
Private function HvacPlusNonBaseCurrents() As Single
'Stored Energy Efficience removed from V8.0 21/4/15 by Mike Preston //tb
Return _m0.GetHVACElectricalPowerDemandAmps() + _electricalConsumables.GetTotalAverageDemandAmps(true) '/ElectricConstants.StoredEnergyEfficiency)
End Function
End Class
Public Class M0_5_SmartAlternatorSetEfficiency
Implements IM0_5_SmartAlternatorSetEfficiency
'Fields
Private _m0 As IM0_NonSmart_AlternatorsSetEfficiency
Private _electricalConsumables As IElectricalConsumerList
Private _alternatorMap As IAlternatorMap
Private _resultCardIdle As IResultCard
Private _resultCardTraction As IResultCard
Private _resultCardOverrun As IResultCard
Private _signals As ISignals
'Constructor
Public Sub New(m0 As IM0_NonSmart_AlternatorsSetEfficiency, _
electricalConsumables As IElectricalConsumerList, _
alternatorMap As IAlternatorMap, _
resultCardIdle As IResultCard, _
resultCardTraction As IResultCard, _
resultCardOverrun As IResultCard,
signals As ISignals)
'Sanity Check on supplied arguments, throw an argument exception
If m0 Is Nothing Then Throw New ArgumentException("Module 0 must be supplied")
If electricalConsumables Is Nothing Then Throw New ArgumentException("ElectricalConsumablesList must be supplied even if empty")
If alternatorMap Is Nothing Then Throw New ArgumentException("Must supply a valid alternator map")
If resultCardIdle Is Nothing Then Throw New ArgumentException("Result Card 'IDLE' must be supplied even if it has no contents")
If resultCardTraction Is Nothing Then Throw New ArgumentException("Result Card 'TRACTION' must be supplied even if it has no contents")
If resultCardOverrun Is Nothing Then Throw New ArgumentException("Result Card 'OVERRUN' must be supplied even if it has no contents")
If signals Is Nothing Then Throw New ArgumentException("No Signals Reference object was provided ")
'Assignments to private variables.
_m0 = m0
_electricalConsumables = electricalConsumables
_alternatorMap = alternatorMap
_resultCardIdle = resultCardIdle
_resultCardTraction = resultCardTraction
_resultCardOverrun = resultCardOverrun
_signals = signals
End Sub
'Public Class Outputs (Properties)
Public ReadOnly Property SmartIdleCurrent() As Single Implements IM0_5_SmartAlternatorSetEfficiency.SmartIdleCurrent
Get
Dim hvac_Plus_None_Base As Single = HvacPlusNonBaseCurrents()
Dim smart_idle_current As Single = _resultCardIdle.GetSmartCurrentResult(hvac_Plus_None_Base)
Return smart_idle_current
End Get
End Property
Public ReadOnly Property AlternatorsEfficiencyIdleResultCard() As Single Implements IM0_5_SmartAlternatorSetEfficiency.AlternatorsEfficiencyIdleResultCard
Get
Return _alternatorMap.GetEfficiency(_signals.EngineSpeed, SmartIdleCurrent()).Efficiency
End Get
End Property
Public ReadOnly Property SmartTractionCurrent As Single Implements IM0_5_SmartAlternatorSetEfficiency.SmartTractionCurrent
Get
Return _resultCardTraction.GetSmartCurrentResult(HvacPlusNonBaseCurrents())
End Get
End Property
Public ReadOnly Property AlternatorsEfficiencyTractionOnResultCard() As Single Implements IM0_5_SmartAlternatorSetEfficiency.AlternatorsEfficiencyTractionOnResultCard
Get
Return _alternatorMap.GetEfficiency(_signals.EngineSpeed, SmartTractionCurrent()).Efficiency
End Get
End Property
Public ReadOnly Property SmartOverrunCurrent As Single Implements IM0_5_SmartAlternatorSetEfficiency.SmartOverrunCurrent
Get
Return _resultCardOverrun.GetSmartCurrentResult(HvacPlusNonBaseCurrents())
End Get
End Property
Public ReadOnly Property AlternatorsEfficiencyOverrunResultCard() As Single Implements IM0_5_SmartAlternatorSetEfficiency.AlternatorsEfficiencyOverrunResultCard
Get
Return _alternatorMap.GetEfficiency(_signals.EngineSpeed, SmartOverrunCurrent()).Efficiency
End Get
End Property
'Helpers
''' <summary>
''' Returns Non Base Currents (A)
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
<ExcludeFromCodeCoverage>
Private Function HvacPlusNonBaseCurrents() As Single
'Stored Energy Efficience removed from V8.0 21/4/15 by Mike Preston //tb
Return _m0.GetHVACElectricalPowerDemandAmps() + _electricalConsumables.GetTotalAverageDemandAmps(True) '/ElectricConstants.StoredEnergyEfficiency)
End Function
End Class
End Namespace
......
......@@ -12,25 +12,21 @@
Namespace Pneumatics
Public Interface IPneumaticUserInputsConfig
Property CompressorMap As String
Property CompressorGearEfficiency As Single
Property CompressorGearRatio As Single
Property ActuationsMap As String
Property SmartAirCompression As Boolean
Property SmartRegeneration As Boolean
Property RetarderBrake As Boolean
Property KneelingHeightMillimeters As Single
Property AirSuspensionControl As String 'mechanical or electrical
Property AdBlueDosing As String 'pnmeumatic or electric
Property Doors As String 'pneumatic or electric
End Interface
Public Interface IPneumaticUserInputsConfig
Property CompressorMap As String
Property CompressorGearEfficiency As Single
Property CompressorGearRatio As Single
Property ActuationsMap As String
Property SmartAirCompression As Boolean
Property SmartRegeneration As Boolean
Property RetarderBrake As Boolean
Property KneelingHeightMillimeters As Single
Property AirSuspensionControl As String 'mechanical or electrical
Property AdBlueDosing As String 'pnmeumatic or electric
Property Doors As String 'pneumatic or electric
End Interface
End Namespace
......
......@@ -35,7 +35,6 @@ Namespace Pneumatics
Public Property SmartAirCompression As Boolean Implements IPneumaticUserInputsConfig.SmartAirCompression
Public Property SmartRegeneration As Boolean Implements IPneumaticUserInputsConfig.SmartRegeneration
Public Sub New(Optional setToDefaults As Boolean = False)
If setToDefaults Then SetPropertiesToDefaults()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment