diff --git a/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb b/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb index 2c6753bf1f2bc115e1e90ccb6f5474538b950880..4759cb96f9930517e3c5e8f741dd29da9e318982 100644 --- a/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb +++ b/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb @@ -162,7 +162,6 @@ Public Class AdvancedAuxiliaries VectoInputs.Cycle, Signals) - M4 = New M4_AirCompressor(compressorMap, auxConfig.PneumaticUserInputsConfig.CompressorGearRatio, auxConfig.PneumaticUserInputsConfig.CompressorGearEfficiency, Signals) M5 = New M5__SmartAlternatorSetGeneration(M05, auxConfig.ElectricalUserInputsConfig.PowerNetVoltage, auxConfig.ElectricalUserInputsConfig.AlternatorGearEfficiency) M6 = New M6(M1, M2, M3, M4, M5, Signals) diff --git a/VECTOAux/VectoAuxiliaries/DownstreamModules/M6.vb b/VECTOAux/VectoAuxiliaries/DownstreamModules/M6.vb index c620a9db7fa1f5952202c0fdaadc55864af089ae..c917cdd5d9093fff7ec74f6934110204d44bc1dd 100644 --- a/VECTOAux/VectoAuxiliaries/DownstreamModules/M6.vb +++ b/VECTOAux/VectoAuxiliaries/DownstreamModules/M6.vb @@ -15,259 +15,259 @@ Imports VectoAuxiliaries.Hvac Namespace DownstreamModules - Public Class M6 -Implements IM6 - - #Region "Private Field - Constructor requirements" - private _m1 As IM1_AverageHVACLoadDemand - private _m2 As IM2_AverageElectricalLoadDemand - private _m3 As IM3_AveragePneumaticLoadDemand - Private _m4 As IM4_AirCompressor - Private _m5 As IM5_SmartAlternatorSetGeneration - Private _signals As ISignals - #End Region - - 'OUT1 - Public ReadOnly Property OverrunFlag As Integer Implements IM6.OverrunFlag - - Get - Return VC0 - End Get - End Property - 'OUT2 - Public ReadOnly Property SmartElecAndPneumaticsCompressorFlag As integer Implements IM6.SmartElecAndPneumaticsCompressorFlag - Get - Return VC2 - End Get - End Property - 'OUT3 - Public ReadOnly Property SmartElecAndPneumaticAltPowerGenAtCrank As Single Implements IM6.SmartElecAndPneumaticAltPowerGenAtCrank - Get - 'Multiply * 1 @ Engineering Request - Return Max1 * -1 - End Get - End Property - 'OUT4 - Public ReadOnly Property SmartElecAndPneumaticAirCompPowerGenAtCrank As Single Implements IM6.SmartElecAndPneumaticAirCompPowerGenAtCrank - Get - Return Sum16 - End Get -End Property - 'OUT5 - Public ReadOnly Property SmartElecOnlyAltPowerGenAtCrank As Single Implements IM6.SmartElecOnlyAltPowerGenAtCrank - Get - 'Multiply * -1 @ Engineering request. - Return Max2 * -1 - End Get - End Property - 'OUT6 - Public ReadOnly Property AveragePowerDemandAtCrankFromPneumatics As Single Implements IM6.AveragePowerDemandAtCrankFromPneumatics - Get - Return _m3.GetAveragePowerDemandAtCrankFromPneumatics - End Get - End Property - 'OUT7 - Public ReadOnly Property SmartPneumaticOnlyAirCompPowerGenAtCrank As Single Implements IM6.SmartPneumaticOnlyAirCompPowerGenAtCrank - Get - Return Sum19 - End Get - End Property - 'OUT8 - Public ReadOnly Property AvgPowerDemandAtCrankFromElectricsIncHVAC As Single Implements IM6.AvgPowerDemandAtCrankFromElectricsIncHVAC - Get - - Return Sum1 - - End Get - - End Property - 'OUT9 - Public ReadOnly Property SmartPneumaticsOnlyCompressorFlag As Integer Implements IM6.SmartPneumaticsOnlyCompressorFlag - Get - Return VC4 - End Get - End Property - - 'Internal Staging Calculations - 'switches - Private ReadOnly Property SW1 As Single - Get - - Return If( _signals.SmartElectrics, _m5.AlternatorsGenerationPowerAtCrankTractionOnWatts,Sum1) - - End Get -End Property - - 'Max of Sum5 vs Sum10 - Public ReadOnly Property Max1 As Single - Get - Return If( Sum5 > Sum10, Sum5, Sum10) - End Get -End Property - 'Max of Sum10 vs Sum7 - Public ReadOnly Property Max2 As Single - Get - Return If( Sum7 > Sum10, Sum7, Sum10) - End Get -End Property - - 'Value Choices - Public ReadOnly Property VC0 As Single - Get - Return If( Sum3<=0,1,0) - End Get -End Property - Public ReadOnly Property VC1 As Single - Get - Return If( Sum12>0,1,0) - End Get -End Property - Public ReadOnly Property VC2 As Single - Get - Return If( Sum12<0 orelse Sum12=0,1,0) - End Get -End Property - Public ReadOnly Property VC3 As Single - Get - Return If( Sum13>0,1,0) - End Get -End Property - Public ReadOnly Property VC4 As Single - Get - Return If( Sum13<0 orelse Sum13=0, 1,0) - End Get -End Property - - 'Sums - Public ReadOnly Property Sum1 As Single - Get - Return _m1.AveragePowerDemandAtCrankFromHVACElectricsWatts() + _m2.GetAveragePowerAtCrankFromElectrics() - End Get -End Property - Public ReadOnly Property Sum2 As Single - Get - - - Dim returnValue As Single = _signals.PreExistingAuxPower +_m1.AveragePowerDemandAtCrankFromHVACMechanicalsWatts + SW1 + _m3.GetAveragePowerDemandAtCrankFromPneumatics - - Return returnValue - - - - End Get -End Property - Public ReadOnly Property Sum3 As Single - Get - - Return (_signals.EngineMotoringPower * 1000) + _ - (_signals.EngineDrivelinePower * 1000) + _ - Sum2 - - End Get -End Property - Public ReadOnly Property Sum4 As Single - Get - - Return Sum3 - SW1 - _m3.GetAveragePowerDemandAtCrankFromPneumatics + _m4.GetPowerCompressorOff - - End Get -End Property - Public ReadOnly Property Sum5 As Single - Get - Return OverrunFlag * Sum4 - End Get -End Property - Public ReadOnly Property Sum6 As Single - Get - Return Sum4 - _m4.GetPowerCompressorOff + _m3.GetAveragePowerDemandAtCrankFromPneumatics - End Get -End Property - Public ReadOnly Property Sum7 As Single - Get - Return VC0 * Sum6 - End Get -End Property - Public ReadOnly Property Sum8 As Single - Get - Return Sum4 + SW1 - End Get -End Property - Public ReadOnly Property Sum9 As Single - Get - Return VC0 * Sum8 - End Get -End Property - Public ReadOnly Property Sum10 As Single - Get - Return -1 * _m5.AlternatorsGenerationPowerAtCrankOverrunWatts - End Get -End Property - Public ReadOnly Property Sum11 As Single - Get - Return Sum5 - Max1 - End Get -End Property - Public ReadOnly Property Sum12 As Single - Get - Return _m4.GetPowerDifference + Sum11 - End Get -End Property - Public ReadOnly Property Sum13 As Single - Get - Return Sum9 + _m4.GetPowerDifference - End Get -End Property - Public ReadOnly Property Sum14 As Single - Get - Return VC1 * _m4.GetPowerCompressorOff - End Get -End Property - Public ReadOnly Property Sum15 As Single - Get - Return VC2 * ( _m4.GetPowerCompressorOn * 0.97 ) - End Get -End Property - Public ReadOnly property Sum16 as single - Get - Return Sum14 + Sum15 - End Get -End Property - Public ReadOnly Property Sum17 As Single - Get - Return _m4.GetPowerCompressorOff * VC3 - End Get -End Property - Public ReadOnly Property Sum18 As Single - Get - Return VC4 * ( _m4.GetPowerCompressorOn * 0.97 ) - End Get -End Property - Public ReadOnly Property Sum19 As Single - Get - Return Sum17 + Sum18 - end get -End Property - - - 'Constructor - Public Sub new ( m1 As IM1_AverageHVACLoadDemand, - m2 As IM2_AverageElectricalLoadDemand, - m3 As IM3_AveragePneumaticLoadDemand, - m4 As IM4_AirCompressor, - m5 As IM5_SmartAlternatorSetGeneration , - signals As ISignals ) - - _m1=m1 - _m2=m2 - _m3=m3 - _m4=m4 - _m5=m5 - _signals= signals - - End Sub - - -End Class + Public Class M6 + Implements IM6 + +#Region "Private Field - Constructor requirements" + Private _m1 As IM1_AverageHVACLoadDemand + Private _m2 As IM2_AverageElectricalLoadDemand + Private _m3 As IM3_AveragePneumaticLoadDemand + Private _m4 As IM4_AirCompressor + Private _m5 As IM5_SmartAlternatorSetGeneration + Private _signals As ISignals +#End Region + + 'OUT1 + Public ReadOnly Property OverrunFlag As Integer Implements IM6.OverrunFlag + + Get + Return VC0 + End Get + End Property + 'OUT2 + Public ReadOnly Property SmartElecAndPneumaticsCompressorFlag As Integer Implements IM6.SmartElecAndPneumaticsCompressorFlag + Get + Return VC2 + End Get + End Property + 'OUT3 + Public ReadOnly Property SmartElecAndPneumaticAltPowerGenAtCrank As Single Implements IM6.SmartElecAndPneumaticAltPowerGenAtCrank + Get + 'Multiply * 1 @ Engineering Request + Return Max1 * -1 + End Get + End Property + 'OUT4 + Public ReadOnly Property SmartElecAndPneumaticAirCompPowerGenAtCrank As Single Implements IM6.SmartElecAndPneumaticAirCompPowerGenAtCrank + Get + Return Sum16 + End Get + End Property + 'OUT5 + Public ReadOnly Property SmartElecOnlyAltPowerGenAtCrank As Single Implements IM6.SmartElecOnlyAltPowerGenAtCrank + Get + 'Multiply * -1 @ Engineering request. + Return Max2 * -1 + End Get + End Property + 'OUT6 + Public ReadOnly Property AveragePowerDemandAtCrankFromPneumatics As Single Implements IM6.AveragePowerDemandAtCrankFromPneumatics + Get + Return _m3.GetAveragePowerDemandAtCrankFromPneumatics + End Get + End Property + 'OUT7 + Public ReadOnly Property SmartPneumaticOnlyAirCompPowerGenAtCrank As Single Implements IM6.SmartPneumaticOnlyAirCompPowerGenAtCrank + Get + Return Sum19 + End Get + End Property + 'OUT8 + Public ReadOnly Property AvgPowerDemandAtCrankFromElectricsIncHVAC As Single Implements IM6.AvgPowerDemandAtCrankFromElectricsIncHVAC + Get + + Return Sum1 + + End Get + + End Property + 'OUT9 + Public ReadOnly Property SmartPneumaticsOnlyCompressorFlag As Integer Implements IM6.SmartPneumaticsOnlyCompressorFlag + Get + Return VC4 + End Get + End Property + + 'Internal Staging Calculations + 'switches + Private ReadOnly Property SW1 As Single + Get + + Return If(_signals.SmartElectrics, _m5.AlternatorsGenerationPowerAtCrankTractionOnWatts, Sum1) + + End Get + End Property + + 'Max of Sum5 vs Sum10 + Public ReadOnly Property Max1 As Single + Get + Return If(Sum5 > Sum10, Sum5, Sum10) + End Get + End Property + 'Max of Sum10 vs Sum7 + Public ReadOnly Property Max2 As Single + Get + Return If(Sum7 > Sum10, Sum7, Sum10) + End Get + End Property + + 'Value Choices + Public ReadOnly Property VC0 As Single + Get + Return If(Sum3 <= 0, 1, 0) + End Get + End Property + Public ReadOnly Property VC1 As Single + Get + Return If(Sum12 > 0, 1, 0) + End Get + End Property + Public ReadOnly Property VC2 As Single + Get + Return If(Sum12 < 0 OrElse Sum12 = 0, 1, 0) + End Get + End Property + Public ReadOnly Property VC3 As Single + Get + Return If(Sum13 > 0, 1, 0) + End Get + End Property + Public ReadOnly Property VC4 As Single + Get + Return If(Sum13 < 0 OrElse Sum13 = 0, 1, 0) + End Get + End Property + + 'Sums + Public ReadOnly Property Sum1 As Single + Get + Return _m1.AveragePowerDemandAtCrankFromHVACElectricsWatts() + _m2.GetAveragePowerAtCrankFromElectrics() + End Get + End Property + Public ReadOnly Property Sum2 As Single + Get + + + Dim returnValue As Single = _signals.PreExistingAuxPower + _m1.AveragePowerDemandAtCrankFromHVACMechanicalsWatts + SW1 + _m3.GetAveragePowerDemandAtCrankFromPneumatics + + Return returnValue + + + + End Get + End Property + Public ReadOnly Property Sum3 As Single + Get + + Return (_signals.EngineMotoringPower * 1000) + _ + (_signals.EngineDrivelinePower * 1000) + _ + Sum2 + + End Get + End Property + Public ReadOnly Property Sum4 As Single + Get + + Return Sum3 - SW1 - _m3.GetAveragePowerDemandAtCrankFromPneumatics + _m4.GetPowerCompressorOff + + End Get + End Property + Public ReadOnly Property Sum5 As Single + Get + Return OverrunFlag * Sum4 + End Get + End Property + Public ReadOnly Property Sum6 As Single + Get + Return Sum4 - _m4.GetPowerCompressorOff + _m3.GetAveragePowerDemandAtCrankFromPneumatics + End Get + End Property + Public ReadOnly Property Sum7 As Single + Get + Return VC0 * Sum6 + End Get + End Property + Public ReadOnly Property Sum8 As Single + Get + Return Sum4 + SW1 + End Get + End Property + Public ReadOnly Property Sum9 As Single + Get + Return VC0 * Sum8 + End Get + End Property + Public ReadOnly Property Sum10 As Single + Get + Return -1 * _m5.AlternatorsGenerationPowerAtCrankOverrunWatts + End Get + End Property + Public ReadOnly Property Sum11 As Single + Get + Return Sum5 - Max1 + End Get + End Property + Public ReadOnly Property Sum12 As Single + Get + Return _m4.GetPowerDifference + Sum11 + End Get + End Property + Public ReadOnly Property Sum13 As Single + Get + Return Sum9 + _m4.GetPowerDifference + End Get + End Property + Public ReadOnly Property Sum14 As Single + Get + Return VC1 * _m4.GetPowerCompressorOff + End Get + End Property + Public ReadOnly Property Sum15 As Single + Get + Return VC2 * (_m4.GetPowerCompressorOn * 0.97) + End Get + End Property + Public ReadOnly Property Sum16 As Single + Get + Return Sum14 + Sum15 + End Get + End Property + Public ReadOnly Property Sum17 As Single + Get + Return _m4.GetPowerCompressorOff * VC3 + End Get + End Property + Public ReadOnly Property Sum18 As Single + Get + Return VC4 * (_m4.GetPowerCompressorOn * 0.97) + End Get + End Property + Public ReadOnly Property Sum19 As Single + Get + Return Sum17 + Sum18 + End Get + End Property + + + 'Constructor + Public Sub New(m1 As IM1_AverageHVACLoadDemand, + m2 As IM2_AverageElectricalLoadDemand, + m3 As IM3_AveragePneumaticLoadDemand, + m4 As IM4_AirCompressor, + m5 As IM5_SmartAlternatorSetGeneration, + signals As ISignals) + + _m1 = m1 + _m2 = m2 + _m3 = m3 + _m4 = m4 + _m5 = m5 + _signals = signals + + End Sub + + + End Class End Namespace diff --git a/VECTOAux/VectoAuxiliaries/Electrics/Alternator.vb b/VECTOAux/VectoAuxiliaries/Electrics/Alternator.vb index acd6702cfbe07a5e1f653b6fa13a587027412a00..9ba282733cfb77ae93da9ee042e0c99db0c4bd58 100644 --- a/VECTOAux/VectoAuxiliaries/Electrics/Alternator.vb +++ b/VECTOAux/VectoAuxiliaries/Electrics/Alternator.vb @@ -70,11 +70,11 @@ Namespace Electrics End Get End Property - 'Constructors Sub New() End Sub + Sub New(isignals As ICombinedAlternatorSignals, inputs As List(Of ICombinedAlternatorMapRow)) diff --git a/VECTOAux/VectoAuxiliaries/Hvac/EnvironmentalConditionsMap.vb b/VECTOAux/VectoAuxiliaries/Hvac/EnvironmentalConditionsMap.vb index 488226447df1139fa9b84a39f77ef62f974daa3f..9e79090a8e185df23c2b17a7132dea4e55a1e7d2 100644 --- a/VECTOAux/VectoAuxiliaries/Hvac/EnvironmentalConditionsMap.vb +++ b/VECTOAux/VectoAuxiliaries/Hvac/EnvironmentalConditionsMap.vb @@ -5,21 +5,26 @@ Namespace Hvac Public Class EnvironmentalConditionsMap Implements IEnvironmentalConditionsMap - Private ReadOnly filePath As String + Private filePath As String + Private vectoDirectory As String Private _map As New List(Of IEnvironmentalCondition) - Public Sub New(filepath As String) + Public Sub New(filepath As String, vectoDirectory As String) Me.filePath = filepath + Me.vectoDirectory = vectoDirectory Initialise() End Sub - Public Sub Initialise() Implements IEnvironmentalConditionsMap.Initialise + Public Function Initialise() As Boolean Implements IEnvironmentalConditionsMap.Initialise If (Not String.IsNullOrWhiteSpace(filePath)) Then + + filePath = FilePathUtils.ResolveFilePath(vectoDirectory, filePath) + If File.Exists(filePath) Then Using sr As StreamReader = New StreamReader(filePath) @@ -28,7 +33,7 @@ Namespace Hvac 'Must have at least 1 entries to make it usable [dont forget the header row] If (lines.Count() < 2) Then - Throw New ArgumentException("Insufficient rows to build conditions") + Return False End If Dim firstline As Boolean = True @@ -41,7 +46,7 @@ Namespace Hvac '3 entries per line required If (elements.Length <> 4) Then - Throw New ArgumentException("Incorrect number of values in file") + Return False End If 'Add environment condition @@ -56,11 +61,13 @@ Namespace Hvac End Using Else - Throw New ArgumentException("File not found") + Return False End If End If - End Sub + Return True + + End Function Public Function GetEnvironmentalConditions() As List(Of IEnvironmentalCondition) Implements IEnvironmentalConditionsMap.GetEnvironmentalConditions diff --git a/VECTOAux/VectoAuxiliaries/Hvac/IEnvironmentalConditionsMap.vb b/VECTOAux/VectoAuxiliaries/Hvac/IEnvironmentalConditionsMap.vb index 705a27077b2ea312f84a490a6760cf2e8038d97c..2b873ff82f0436eb4a683f85427c0f671ca2732d 100644 --- a/VECTOAux/VectoAuxiliaries/Hvac/IEnvironmentalConditionsMap.vb +++ b/VECTOAux/VectoAuxiliaries/Hvac/IEnvironmentalConditionsMap.vb @@ -2,7 +2,7 @@ Public Interface IEnvironmentalConditionsMap - Sub Initialise() + Function Initialise() As Boolean Function GetEnvironmentalConditions() As List(Of IEnvironmentalCondition) diff --git a/VECTOAux/VectoAuxiliaries/Hvac/SSMCalculate.vb b/VECTOAux/VectoAuxiliaries/Hvac/SSMCalculate.vb index 904add607f7b1be1e8faded6f11b6fccf36901f7..42d0d56202c3ad25221f2ffe2b878d0d4f9ed05f 100644 --- a/VECTOAux/VectoAuxiliaries/Hvac/SSMCalculate.vb +++ b/VECTOAux/VectoAuxiliaries/Hvac/SSMCalculate.vb @@ -607,14 +607,11 @@ Namespace Hvac Private Function CalculateElectricalWAdjusted(genInputs As ISSMGenInputs, tecList As ISSMTechList, EnviromentalTemperature As Double, Solar As Double, Weight As Single) As Single - '=(MIN((H94*(1-H100)),C54*1000)/C59)+(I93*(1-I99))+(I94*(1-I100))+(I95*(1-I101)) + IF('TECH LIST INPUT'!D36="electrical",-'TECH LIST INPUT'!R93*1000,0) + '=(MIN((H94*(1-H100)),C54*1000)/C59)+(I93*(1-I99))+(I94*(1-I100))+(I95*(1-I101)) genInputs.EC_EnviromentalTemperature = EnviromentalTemperature genInputs.EC_Solar = Solar - Dim DACElectrical As Boolean = tecList.TechLines.Where(Function(f) f.LineType = TechLineType.DriverACElectrical AndAlso f.OnVehicle).Count() = 1 - Dim AdjustedAddition As Double = If(Not DACElectrical, 0, -tecList.CValueVariationKW * 1000) - Dim H94 As Double = BaseCoolingW_ElectricalCoolingHeating Dim H100 As Double = TechListAdjustedCoolingW_ElectricalCoolingHeating Dim C54 As Double = genInputs.AC_CompressorCapacitykW @@ -627,7 +624,7 @@ Namespace Hvac Dim I100 As Double = TechListAdjustedCoolingW_ElectricalVentilation Dim I101 As Double = TechListAdjustedVentilationW_ElectricalVentilation - Dim ElectricalWAdjusted As Single = (Math.Min((H94 * (1 - H100)), C54 * 1000) / C59) + (I93 * (1 - I99)) + (I94 * (1 - I100)) + (I95 * (1 - I101)) + AdjustedAddition + Dim ElectricalWAdjusted As Single = (Math.Min((H94 * (1 - H100)), C54 * 1000) / C59) + (I93 * (1 - I99)) + (I94 * (1 - I100)) + (I95 * (1 - I101)) Return ElectricalWAdjusted * Weight @@ -635,20 +632,17 @@ Namespace Hvac Private Function CalculateMechanicalWBaseAdjusted(genInputs As ISSMGenInputs, tecList As ISSMTechList, EnviromentalTemperature As Double, Solar As Double, Weight As Single) As Single - '=(MIN((F94*(1-F100)),C54*1000)/C59) + IF('TECH LIST INPUT'!D36="mechanical",-'TECH LIST INPUT'!R93*1000,0) + '=(MIN((F94*(1-F100)),C54*1000)/C59) genInputs.EC_EnviromentalTemperature = EnviromentalTemperature genInputs.EC_Solar = Solar - Dim DACMechanical As Boolean = tecList.TechLines.Where(Function(f) f.LineType = TechLineType.DriverACMechanical AndAlso f.OnVehicle).Count() = 1 - Dim AdjustedAddition As Double = If(Not DACMechanical, 0, tecList.CValueVariationKW * 1000) - Dim F94 As Double = BaseCoolingW_Mechanical Dim F100 As Double = TechListAdjustedCoolingW_Mechanical Dim C54 As Double = genInputs.AC_CompressorCapacitykW Dim C59 As Double = genInputs.AC_COP - Dim MechanicalWBaseAdjusted As Single = (Math.Min((F94 * (1 - F100)), C54 * 1000) / C59) + AdjustedAddition + Dim MechanicalWBaseAdjusted As Single = (Math.Min((F94 * (1 - F100)), C54 * 1000) / C59) Return MechanicalWBaseAdjusted * Weight diff --git a/VECTOAux/VectoAuxiliaries/Hvac/SSMGenInputs.vb b/VECTOAux/VectoAuxiliaries/Hvac/SSMGenInputs.vb index 14b3b231dbd69b1ed54b27a8349365ab7df26eb9..71fe1de89eb02b84519703abed9f6583f4a42c75 100644 --- a/VECTOAux/VectoAuxiliaries/Hvac/SSMGenInputs.vb +++ b/VECTOAux/VectoAuxiliaries/Hvac/SSMGenInputs.vb @@ -8,11 +8,13 @@ Namespace Hvac Private _EC_EnviromentalConditions_BatchFile As String Private _EC_EnvironmentalConditionsMap As IEnvironmentalConditionsMap + Private _vectoDir As String #Region "Constructors" - Sub New(Optional initialiseDefaults As Boolean = False) + Sub New(Optional initialiseDefaults As Boolean = False, Optional vectoDir As String = "") + _vectoDir = vectoDir If initialiseDefaults Then SetDefaults() End Sub @@ -251,7 +253,7 @@ Namespace Hvac Return _EC_EnviromentalConditions_BatchFile End Get Set(value As String) - _EC_EnvironmentalConditionsMap = New EnvironmentalConditionsMap(value) + _EC_EnvironmentalConditionsMap = New EnvironmentalConditionsMap(value, _vectoDir) _EC_EnviromentalConditions_BatchFile = value End Set End Property @@ -376,7 +378,8 @@ Namespace Hvac '************************ EC_EnviromentalTemperature = 25.0R EC_Solar = 400.0R - EC_EnviromentalConditions_BatchEnabled = False + EC_EnviromentalConditions_BatchEnabled = True + EC_EnviromentalConditions_BatchFile = "DefaultClimatic.aenv" 'AC SYSTEM '********* diff --git a/VECTOAux/VectoAuxiliaries/Hvac/SSMTOOL.vb b/VECTOAux/VectoAuxiliaries/Hvac/SSMTOOL.vb index 034d498c72ed3222c8f6639388b7565abc8a9a4a..198b313acb616bdc6114ad25a64c1f4748b08129 100644 --- a/VECTOAux/VectoAuxiliaries/Hvac/SSMTOOL.vb +++ b/VECTOAux/VectoAuxiliaries/Hvac/SSMTOOL.vb @@ -76,7 +76,7 @@ Namespace Hvac Me.SSMDisabled = isDisabled Me.HVACConstants = hvacConstants - GenInputs = New SSMGenInputs(useTestValues) + GenInputs = New SSMGenInputs(useTestValues, fPATH(filePath)) TechList = New SSMTechList(filePath, GenInputs, useTestValues) Calculate = New SSMCalculate(Me) diff --git a/VECTOAux/VectoAuxiliaries/Hvac/SSMTechList.vb b/VECTOAux/VectoAuxiliaries/Hvac/SSMTechList.vb index fc1d712ad1544f733c8e6d39b8103f98e0646f6f..191c7b61468dd73614b28981d27a150e86df6df3 100644 --- a/VECTOAux/VectoAuxiliaries/Hvac/SSMTechList.vb +++ b/VECTOAux/VectoAuxiliaries/Hvac/SSMTechList.vb @@ -498,18 +498,19 @@ Public Class SSMTechList .BenefitName = "Fan control strategy (serial/parallel)" .LowFloorH = 0 .LowFloorC = 0 - .LowFloorV = 0 + .LowFloorV = 0.02 .SemiLowFloorH = 0 .SemiLowFloorC = 0 - .SemiLowFloorV = 0 + .SemiLowFloorV = 0.02 .RaisedFloorH = 0 .RaisedFloorC = 0 - .RaisedFloorV = 0 + .RaisedFloorV = 0.02 .ActiveVH = 0.02 .ActiveVV = 0.02 .ActiveVC = 0.02 .OnVehicle = False .Units = "fraction" + .LineType = TechLineType.HVCActiveSelection End With Dim feedback As String = String.Empty diff --git a/VECTOAux/VectoAuxiliaries/Hvac/TechListBenefitLine.vb b/VECTOAux/VectoAuxiliaries/Hvac/TechListBenefitLine.vb index 71ad863a17d2e12d94b42798f7f9a703b1c2c9f4..57456a937853bd468cacb2c4dd6f165c014579da 100644 --- a/VECTOAux/VectoAuxiliaries/Hvac/TechListBenefitLine.vb +++ b/VECTOAux/VectoAuxiliaries/Hvac/TechListBenefitLine.vb @@ -4,8 +4,6 @@ Namespace Hvac Public Enum TechLineType Normal - DriverACMechanical - DriverACElectrical HVCActiveSelection End Enum diff --git a/VECTOAux/VectoAuxiliaries/Pneumatics/PneumaticUserInputsConfig.vb b/VECTOAux/VectoAuxiliaries/Pneumatics/PneumaticUserInputsConfig.vb index 7410b197b12a0b88fb46e5ab92206c7f6c81bea6..a8682572d9338cf56b67ba72c7601db1bee0a5c9 100644 --- a/VECTOAux/VectoAuxiliaries/Pneumatics/PneumaticUserInputsConfig.vb +++ b/VECTOAux/VectoAuxiliaries/Pneumatics/PneumaticUserInputsConfig.vb @@ -11,64 +11,54 @@ Namespace Pneumatics -Public Class PneumaticUserInputsConfig -Implements IPneumaticUserInputsConfig + Public Class PneumaticUserInputsConfig + Implements IPneumaticUserInputsConfig + Public Property CompressorMap As String Implements IPneumaticUserInputsConfig.CompressorMap + Public Property CompressorGearRatio As Single Implements IPneumaticUserInputsConfig.CompressorGearRatio + Public Property CompressorGearEfficiency As Single Implements IPneumaticUserInputsConfig.CompressorGearEfficiency + 'pnmeumatic or electric + Public Property AdBlueDosing As String Implements IPneumaticUserInputsConfig.AdBlueDosing + 'mechanical or electrical + Public Property AirSuspensionControl As String Implements IPneumaticUserInputsConfig.AirSuspensionControl + 'pneumatic or electric + Public Property Doors As String Implements IPneumaticUserInputsConfig.Doors + Public Property KneelingHeightMillimeters As Single Implements IPneumaticUserInputsConfig.KneelingHeightMillimeters -'pnmeumatic or electric -Public Property AdBlueDosing As String Implements IPneumaticUserInputsConfig.AdBlueDosing -'mechanical or electrical -Public Property AirSuspensionControl As String Implements IPneumaticUserInputsConfig.AirSuspensionControl + 'PneumaticActuationsMap + Public Property ActuationsMap As String Implements IPneumaticUserInputsConfig.ActuationsMap -Public Property CompressorMap As String Implements IPneumaticUserInputsConfig.CompressorMap -Public Property CompressorGearEfficiency As Single Implements IPneumaticUserInputsConfig.CompressorGearEfficiency -Public Property CompressorGearRatio As Single Implements IPneumaticUserInputsConfig.CompressorGearRatio + Public Property RetarderBrake As Boolean Implements IPneumaticUserInputsConfig.RetarderBrake + Public Property SmartAirCompression As Boolean Implements IPneumaticUserInputsConfig.SmartAirCompression + Public Property SmartRegeneration As Boolean Implements IPneumaticUserInputsConfig.SmartRegeneration -'PneumaticActuationsMap -Public Property ActuationsMap As String Implements IPneumaticUserInputsConfig.ActuationsMap -'pneumatic or electric -Public Property Doors As String Implements IPneumaticUserInputsConfig.Doors -Public Property KneelingHeightMillimeters As Single Implements IPneumaticUserInputsConfig.KneelingHeightMillimeters -Public Property RetarderBrake As Boolean Implements IPneumaticUserInputsConfig.RetarderBrake -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() -Public Sub New( optional setToDefaults As Boolean = False) - - -If setToDefaults then SetPropertiesToDefaults() - -End Sub - -Public sub SetPropertiesToDefaults() - - - ActuationsMap="testPneumaticActuationsMap_GOODMAP.apac" - AdBlueDosing="Pneumatic" - AirSuspensionControl="Electrically" - CompressorGearEfficiency=0.8 - CompressorGearRatio=1.0 - CompressorMap="testCompressorMap.acmp" - Doors="Pneumatic" - KneelingHeightMillimeters=80 - RetarderBrake=True - SmartAirCompression=True - SmartRegeneration=True - -End Sub - - - -End Class + End Sub + Public Sub SetPropertiesToDefaults() + CompressorMap = String.Empty + CompressorGearRatio = 1.0 + CompressorGearEfficiency = 0.97 + AdBlueDosing = "Pneumatic" + AirSuspensionControl = "Mechanically" + Doors = "Pneumatic" + KneelingHeightMillimeters = 70 + ActuationsMap = "testPneumaticActuationsMap.apac" + RetarderBrake = True + SmartAirCompression = False + SmartRegeneration = False + End Sub + End Class End Namespace diff --git a/VECTOAux/VectoAuxiliaries/Pneumatics/PneumaticsAuxilliariesConfig.vb b/VECTOAux/VectoAuxiliaries/Pneumatics/PneumaticsAuxilliariesConfig.vb index 83907b11ae189e583f2b48a0da63fddcbe34dc5d..217356c9545ad4cd4a150ae44129b418a30a1b5c 100644 --- a/VECTOAux/VectoAuxiliaries/Pneumatics/PneumaticsAuxilliariesConfig.vb +++ b/VECTOAux/VectoAuxiliaries/Pneumatics/PneumaticsAuxilliariesConfig.vb @@ -15,43 +15,40 @@ Public Class PneumaticsAuxilliariesConfig Implements IPneumaticsAuxilliariesConfig -Public Property AdBlueNIperMinute As Single Implements IPneumaticsAuxilliariesConfig.AdBlueNIperMinute -Public Property AirControlledSuspensionNIperMinute As Single Implements IPneumaticsAuxilliariesConfig.AirControlledSuspensionNIperMinute -Public Property BrakingNoRetarderNIperKG As Single Implements IPneumaticsAuxilliariesConfig.BrakingNoRetarderNIperKG -Public Property BrakingWithRetarderNIperKG As Single Implements IPneumaticsAuxilliariesConfig.BrakingWithRetarderNIperKG -Public Property BreakingPerKneelingNIperKGinMM As Single Implements IPneumaticsAuxilliariesConfig.BreakingPerKneelingNIperKGinMM -Public Property DeadVolBlowOutsPerLitresperHour As Single Implements IPneumaticsAuxilliariesConfig.DeadVolBlowOutsPerLitresperHour -Public Property DeadVolumeLitres As Single Implements IPneumaticsAuxilliariesConfig.DeadVolumeLitres -Public Property NonSmartRegenFractionTotalAirDemand As Single Implements IPneumaticsAuxilliariesConfig.NonSmartRegenFractionTotalAirDemand -Public Property OverrunUtilisationForCompressionFraction As Single Implements IPneumaticsAuxilliariesConfig.OverrunUtilisationForCompressionFraction -Public Property PerDoorOpeningNI As Single Implements IPneumaticsAuxilliariesConfig.PerDoorOpeningNI -Public Property PerStopBrakeActuationNIperKG As Single Implements IPneumaticsAuxilliariesConfig.PerStopBrakeActuationNIperKG -Public Property SmartRegenFractionTotalAirDemand As Single Implements IPneumaticsAuxilliariesConfig.SmartRegenFractionTotalAirDemand - - -Public Sub New(Optional setToDefaults As Boolean = False) - -If setToDefaults Then SetDefaults() - - -End Sub - -Public Sub SetDefaults() - - OverrunUtilisationForCompressionFraction = 0.97 - BrakingWithRetarderNIperKG = 0.0005 - BrakingNoRetarderNIperKG = 0.00081 - BreakingPerKneelingNIperKGinMM = 0.000066 - PerDoorOpeningNI = 12.7 - PerStopBrakeActuationNIperKG = 0.00064 - AirControlledSuspensionNIperMinute = 15 - AdBlueNIperMinute = 21.25 - NonSmartRegenFractionTotalAirDemand = 0.26 - SmartRegenFractionTotalAirDemand = 0.12 - DeadVolumeLitres = 30 - DeadVolBlowOutsPerLitresperHour = 24 - -End Sub + Public Property AdBlueNIperMinute As Single Implements IPneumaticsAuxilliariesConfig.AdBlueNIperMinute + Public Property AirControlledSuspensionNIperMinute As Single Implements IPneumaticsAuxilliariesConfig.AirControlledSuspensionNIperMinute + Public Property BrakingNoRetarderNIperKG As Single Implements IPneumaticsAuxilliariesConfig.BrakingNoRetarderNIperKG + Public Property BrakingWithRetarderNIperKG As Single Implements IPneumaticsAuxilliariesConfig.BrakingWithRetarderNIperKG + Public Property BreakingPerKneelingNIperKGinMM As Single Implements IPneumaticsAuxilliariesConfig.BreakingPerKneelingNIperKGinMM + Public Property DeadVolBlowOutsPerLitresperHour As Single Implements IPneumaticsAuxilliariesConfig.DeadVolBlowOutsPerLitresperHour + Public Property DeadVolumeLitres As Single Implements IPneumaticsAuxilliariesConfig.DeadVolumeLitres + Public Property NonSmartRegenFractionTotalAirDemand As Single Implements IPneumaticsAuxilliariesConfig.NonSmartRegenFractionTotalAirDemand + Public Property OverrunUtilisationForCompressionFraction As Single Implements IPneumaticsAuxilliariesConfig.OverrunUtilisationForCompressionFraction + Public Property PerDoorOpeningNI As Single Implements IPneumaticsAuxilliariesConfig.PerDoorOpeningNI + Public Property PerStopBrakeActuationNIperKG As Single Implements IPneumaticsAuxilliariesConfig.PerStopBrakeActuationNIperKG + Public Property SmartRegenFractionTotalAirDemand As Single Implements IPneumaticsAuxilliariesConfig.SmartRegenFractionTotalAirDemand + + + Public Sub New(Optional setToDefaults As Boolean = False) + + If setToDefaults Then SetDefaults() + + End Sub + + Public Sub SetDefaults() + AdBlueNIperMinute = 21.25 + AirControlledSuspensionNIperMinute = 15 + BrakingNoRetarderNIperKG = 0.00081 + BrakingWithRetarderNIperKG = 0.0006 + BreakingPerKneelingNIperKGinMM = 0.000066 + DeadVolBlowOutsPerLitresperHour = 24 + DeadVolumeLitres = 30 + NonSmartRegenFractionTotalAirDemand = 0.26 + OverrunUtilisationForCompressionFraction = 0.97 + PerDoorOpeningNI = 12.7 + PerStopBrakeActuationNIperKG = 0.00064 + SmartRegenFractionTotalAirDemand = 0.12 + End Sub End Class diff --git a/VECTOAux/VectoAuxiliaries/UI/frmHVACTool.vb b/VECTOAux/VectoAuxiliaries/UI/frmHVACTool.vb index ca25c9f8172641fa19b5abc8ed9b7e1836716264..4d1d2d4557c8e584585ddf0aad050e7f775ac150 100644 --- a/VECTOAux/VectoAuxiliaries/UI/frmHVACTool.vb +++ b/VECTOAux/VectoAuxiliaries/UI/frmHVACTool.vb @@ -557,7 +557,7 @@ Public Class frmHVACTool IsTextBoxNumber(txtAH_FuelFiredHeaterkW, "Please enter a number ( Fuel fired heater )", result) Try - Dim environmentalConditionsMap As IEnvironmentalConditionsMap = New EnvironmentalConditionsMap(txtEC_EnvironmentConditionsFilePath.Tag) + Dim environmentalConditionsMap As IEnvironmentalConditionsMap = New EnvironmentalConditionsMap(txtEC_EnvironmentConditionsFilePath.Tag, fPATH(vectoFile)) ErrorProvider1.SetError(txtEC_EnvironmentConditionsFilePath, String.Empty) ssmTOOL.GenInputs.EC_EnviromentalConditions_BatchFile = txtEC_EnvironmentConditionsFilePath.Tag Catch ex As Exception @@ -1204,7 +1204,7 @@ Public Class frmHVACTool tl.Category = StrConv(cboCategory.Text, vbProperCase) tl.BenefitName = txtBenefitName.Text tl.Units = cboUnits.Text - tl.LineType = If(cboLineType.Text = "Normal", 0, 3) + tl.LineType = If(cboLineType.Text = "Normal", 0, 1) tl.LowFloorH = txtLowFloorH.Text tl.LowFloorV = txtLowFloorV.Text tl.LowFloorC = txtLowFloorC.Text