Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 43a785f9 authored by Terry Burns's avatar Terry Burns Committed by Kostis ANAGNOSTOPOULOS
Browse files

Now beginning Validating Pnumatics Calculations. Compressor values changed from KW to Watts

git-tfs-id: [http://tfs00.element.root.com:8080/tfs/TFSCollection]$/VECTO;C1658
parent 0b97e9bf
No related branches found
No related tags found
No related merge requests found
Showing
with 378 additions and 338 deletions
This diff is collapsed.
......@@ -966,4 +966,92 @@ Private Sub btnFinish_Click( sender As Object, e As EventArgs) Handles btnFinis
End Sub
Private Sub Button2_Click( sender As Object, e As EventArgs) Handles Button2.Click
Dim altMap As IAlternatorMap = New AlternatorMap("testAlternatorMap.csv")
Dim efficiency , rpm, amp As Single
altMap.Initialise()
Dim CrankSpeed As New System.Collections.Generic.List(Of single)
CrankSpeed.AddRange(New single() {1500,2000,4000,6000,7000})
Dim amps As New List(Of single)
amps.AddRange(New single() {10,27,53,63,68,125,136})
'On Boundaries
Console.WriteLine("On BOUNDARY TESTS")
Console.WriteLine("_________________")
Console.WriteLine("")
For Each rpm in CrankSpeed
For Each amp In amps
efficiency = altMap.GetEfficiency( rpm, amp).Efficiency
Console.WriteLine(String.Format("RPM:{0} , AMP:{1}, EFF:{2})",rpm.ToString(),amp.ToString(),efficiency.ToString()))
Next
Next
Console.WriteLine("")
Console.WriteLine("Four Corner Points With Interpolated other")
Console.WriteLine("_________________")
Console.WriteLine("")
rpm=1500 : amp=55
efficiency = altMap.GetEfficiency( rpm, amp).Efficiency
Console.WriteLine(String.Format("RPM:{0} , AMP:{1}, EFF:{2})",rpm.ToString(),amp.ToString(),efficiency.ToString()))
rpm=7000 : amp=55
efficiency = altMap.GetEfficiency( rpm, amp).Efficiency
Console.WriteLine(String.Format("RPM:{0} , AMP:{1}, EFF:{2})",rpm.ToString(),amp.ToString(),efficiency.ToString()))
rpm=3000 : amp=10
efficiency = altMap.GetEfficiency( rpm, amp).Efficiency
Console.WriteLine(String.Format("RPM:{0} , AMP:{1}, EFF:{2})",rpm.ToString(),amp.ToString(),efficiency.ToString()))
rpm=3000 : amp=136
efficiency = altMap.GetEfficiency( rpm, amp).Efficiency
Console.WriteLine(String.Format("RPM:{0} , AMP:{1}, EFF:{2})",rpm.ToString(),amp.ToString(),efficiency.ToString()))
Console.WriteLine("")
Console.WriteLine("Interpolated Both - four data points")
Console.WriteLine("_________________")
Console.WriteLine("")
rpm=1750 : amp=18
efficiency = altMap.GetEfficiency( rpm, amp).Efficiency
Console.WriteLine(String.Format("RPM:{0} , AMP:{1}, EFF:{2})",rpm.ToString(),amp.ToString(),efficiency.ToString()))
rpm=6500 : amp=18
efficiency = altMap.GetEfficiency( rpm, amp).Efficiency
Console.WriteLine(String.Format("RPM:{0} , AMP:{1}, EFF:{2})",rpm.ToString(),amp.ToString(),efficiency.ToString()))
rpm=1750 : amp=130
efficiency = altMap.GetEfficiency( rpm, amp).Efficiency
Console.WriteLine(String.Format("RPM:{0} , AMP:{1}, EFF:{2})",rpm.ToString(),amp.ToString(),efficiency.ToString()))
rpm=6500 : amp=130
efficiency = altMap.GetEfficiency( rpm, amp).Efficiency
Console.WriteLine(String.Format("RPM:{0} , AMP:{1}, EFF:{2})",rpm.ToString(),amp.ToString(),efficiency.ToString()))
Console.WriteLine("")
Console.WriteLine("Range Limiting")
Console.WriteLine("_________________")
Console.WriteLine("")
rpm=0 : amp=0
efficiency = altMap.GetEfficiency( rpm, amp).Efficiency
Console.WriteLine(String.Format("RPM:{0} , AMP:{1}, EFF:{2})",rpm.ToString(),amp.ToString(),efficiency.ToString()))
rpm=0 : amp=10
efficiency = altMap.GetEfficiency( rpm, amp).Efficiency
Console.WriteLine(String.Format("RPM:{0} , AMP:{1}, EFF:{2})",rpm.ToString(),amp.ToString(),efficiency.ToString()))
rpm=0 : amp=200
efficiency = altMap.GetEfficiency( rpm, amp).Efficiency
Console.WriteLine(String.Format("RPM:{0} , AMP:{1}, EFF:{2})",rpm.ToString(),amp.ToString(),efficiency.ToString()))
rpm=1500 : amp=200
efficiency = altMap.GetEfficiency( rpm, amp).Efficiency
Console.WriteLine(String.Format("RPM:{0} , AMP:{1}, EFF:{2})",rpm.ToString(),amp.ToString(),efficiency.ToString()))
rpm=7000 : amp=200
efficiency = altMap.GetEfficiency( rpm, amp).Efficiency
Console.WriteLine(String.Format("RPM:{0} , AMP:{1}, EFF:{2})",rpm.ToString(),amp.ToString(),efficiency.ToString()))
rpm=8000 : amp=200
efficiency = altMap.GetEfficiency( rpm, amp).Efficiency
Console.WriteLine(String.Format("RPM:{0} , AMP:{1}, EFF:{2})",rpm.ToString(),amp.ToString(),efficiency.ToString()))
End Sub
End Class
\ No newline at end of file
rpm,flowRate [l/min],power [on] [kW],power [off] [kW]
1500,200,2,1
2000,400,4,2
3000,600,6,3
4000,800,8,4
5000,1000,10,5
6000,1200,12,6
7000,1400,14,7
\ No newline at end of file
rpm,flowRate [l/min],power [on] [W],power [off] [W]
1500,200,2000,1000
2000,400,4000,2000
3000,600,6000,3000
4000,800,8000,4000
5000,1000,10000,5000
6000,1200,12000,6000
7000,1400,14000,7000
\ No newline at end of file
......@@ -103,9 +103,19 @@ Namespace Electrics
Dim min As AlternatorMapKey = map.Keys.Min()
Dim max As AlternatorMapKey = map.Keys.Max()
If mapKey.amps < min.amps Or mapKey.amps > max.amps Or mapKey.rpm < min.rpm Or mapKey.rpm > max.rpm Then
Throw New ArgumentOutOfRangeException(String.Format("Extrapolation - Amp/Rpm Values should should be in the range {0} to {1}", min.ToString(), max.ToString()))
End If
'If mapKey.amps < min.amps Or mapKey.amps > max.amps Or mapKey.rpm < min.rpm Or mapKey.rpm > max.rpm Then
' Throw New ArgumentOutOfRangeException(String.Format("Extrapolation - Amp/Rpm Values should should be in the range {0} to {1}", min.ToString(), max.ToString()))
'End If
'LIMITING
If mapKey.amps < min.amps then mapKey.amps=min.amps
If mapKey.amps > max.amps then mapKey.amps = max.amps
If mapKey.rpm < min.rpm then mapKey.rpm = min.rpm
If mapKey.rpm > max.rpm then mapKey.rpm= max.rpm
'Check if the rpm is in the current memo
'If supplied present key, we can just return the values
......@@ -126,11 +136,58 @@ Namespace Electrics
Dim intAmpsPre As Integer
Dim intAmpsPost As Integer
intRpmPre = (From m In map Where m.Key.rpm <= mapKey.rpm Select m.Key.rpm).Last()
intRpmPost = (From m In map Where m.Key.rpm => mapKey.rpm Select m.Key.rpm).First()
intAmpsPre = (From m In map Where m.Key.amps <= mapKey.amps Select m.Key.amps).Last()
intAmpsPost = (From m In map Where m.Key.amps => mapKey.amps Select m.Key.amps).First()
Dim dAmps As Single
dim dAmpEfficiency as single
Dim ampsEfficiencySlope as single
Dim dRpm As Integer
Dim dRpmEfficiency as single
Dim rpmEfficiencySlope As Single
Dim interpolatedEfficiency As single
Dim ampPreEfficiency As Single
Dim ampPostEfficiency As Single
Dim rpmPreEfficiency As Single
Dim rpmPostEfficiency As Single
'*********** IF PRE AND POST RPM OR PRE AND POST AMPS are the same, the calculation is different. ***********
'SO
'Case RPM is the same
If intRpmPre = intRpmPost then
dAmps = intAmpsPost - intAmpsPre
ampPreEfficiency = map( New AlternatorMapKey( intAmpsPre, intRpmPre)).Efficiency
ampPostEfficiency = map( New AlternatorMapKey( intAmpsPost, intRpmPre)).Efficiency
interpolatedEfficiency = ampPreEfficiency + ( ( ampPostEfficiency-ampPreEfficiency ) * (( mapKey.amps - intAmpsPre ) / ( intAmpsPost-intAmpsPre )))
Return New AlternatorMapValues(interpolatedEfficiency)
End If
If intAmpsPre = intAmpsPost then
rpmPreEfficiency = map( New AlternatorMapKey( intAmpsPre, intRpmPre)).Efficiency
rpmPostEfficiency = map( New AlternatorMapKey( intAmpsPre, intRpmPost)).Efficiency
interpolatedEfficiency = rpmPreEfficiency + ( ( rpmPostEfficiency-rpmPreEfficiency ) * (( mapKey.rpm - intRpmPre ) / ( intRpmPost-intRpmPre )))
Return New AlternatorMapValues(interpolatedEfficiency)
End If
rpmPre = map(New AlternatorMapKey(intAmpsPre, intRpmPre))
rpmPost = map(New AlternatorMapKey(intAmpsPre, intRpmPost))
......@@ -150,17 +207,18 @@ Namespace Electrics
'
'*** A-B Efficiency ( Lower Using Lower Amps )
'get the delta values for rpm and the values
Dim dRpm As Integer = intRpmPost - intRpmPre
Dim dRpmEfficiency As Single = rpmPost.Efficiency - rpmPre.Efficiency
dRpm = intRpmPost - intRpmPre
dRpmEfficiency = rpmPost.Efficiency - rpmPre.Efficiency
'calculate the slopes
Dim rpmEfficiencySlope As Single = dRpmEfficiency / dRpm
rpmEfficiencySlope = dRpmEfficiency / dRpm
'calculate the new values
Dim AB_Efficiency As Single = If( drpm=0,rpmPre.Efficiency, ((mapKey.rpm - intRpmPre) * rpmEfficiencySlope) + rpmPre.Efficiency)
'Dim AB_Efficiency As Single = If( drpm=0,rpmPre.Efficiency, ((mapKey.rpm - intRpmPre) * rpmEfficiencySlope) + rpmPre.Efficiency)
Dim AB_Efficiency As Single = ((mapKey.rpm - intRpmPre) * rpmEfficiencySlope) + rpmPre.Efficiency
'*** C-D Efficiency ( Using Higher Amps )
'get the delta values for rpm and the values
'get the delta values for rpm and the values
dRpm = intRpmPost - intRpmPre
dRpmEfficiency = ampsPost.Efficiency - ampsPre.Efficiency
......@@ -168,19 +226,20 @@ Namespace Electrics
rpmEfficiencySlope = dRpmEfficiency / dRpm
'calculate the new values
Dim CD_Efficiency As Single = If( dRpm=0, rpmPre.Efficiency, ((mapKey.rpm - intRpmPre) * rpmEfficiencySlope) + ampsPre.Efficiency)
'Dim CD_Efficiency As Single = If( dRpm=0, rpmPre.Efficiency, ((mapKey.rpm - intRpmPre) * rpmEfficiencySlope) + ampsPre.Efficiency)
Dim CD_Efficiency As Single = ((mapKey.rpm - intRpmPre) * rpmEfficiencySlope) + ampsPre.Efficiency
'(C-D) - (A-B) Efficiency
'Deltas
Dim dAmps As Single = intAmpsPost - intAmpsPre
Dim dAmpEfficiency As Single = CD_Efficiency - AB_Efficiency
dAmps = intAmpsPost - intAmpsPre
dAmpEfficiency = CD_Efficiency - AB_Efficiency
'slopes
Dim ampsEfficiencySlope As Single = dAmpEfficiency / dAmps
ampsEfficiencySlope = dAmpEfficiency / dAmps
'calculate final Values
Dim ABCDEfficiency As Single = If( dAmps=0, CD_Efficiency, ((mapKey.amps - intAmpsPre) * ampsEfficiencySlope) + AB_Efficiency)
' Dim ABCDEfficiency As Single = If( dAmps=0, CD_Efficiency, ((mapKey.amps - intAmpsPre) * ampsEfficiencySlope) + AB_Efficiency)
Dim ABCDEfficiency As Single = ((mapKey.amps - intAmpsPre) * ampsEfficiencySlope) + AB_Efficiency
Return New AlternatorMapValues(ABCDEfficiency)
......
......@@ -40,7 +40,7 @@
Public Function GetAveragePowerAtCrank() As Single Implements IM2_AverageElectricalLoadDemand.GetAveragePowerAtCrank
Dim ElectricalPowerDemandsWatts As Single = GetAveragePowerDemandAtAlternator() * _powerNetVoltage
Dim ElectricalPowerDemandsWatts As Single = GetAveragePowerDemandAtAlternator()
Dim alternatorsEfficiency As Single = _module0.AlternatorsEfficiency
Dim ElectricalPowerDemandsWattsDividedByAlternatorEfficiency as Single = ElectricalPowerDemandsWatts / alternatorsEfficiency
......
......@@ -82,7 +82,7 @@ Namespace Pneumatics
'** ParkBrakesBreakplus2Doors ** Park break + 2 doors
numActuationsPerCycle = _pneumaticsActuationsMap.GetNumActuations(New ActuationsKey("Park brake + 2 doors", _cycleName))
'=SUM(IF(K14="electric",0,IF(COUNTBLANK(F36),G36,F36)),PRODUCT(K16*IF(COUNTBLANK(F37),G37,F37)))
airConsumptionPerActuationNI = If(_pneumaticUserInputsConfig.Doors = "electric", 0, _pneumaticAuxillariesConfig.PerDoorOpeningNI)
airConsumptionPerActuationNI = If(_pneumaticUserInputsConfig.Doors = "Electric", 0, _pneumaticAuxillariesConfig.PerDoorOpeningNI)
airConsumptionPerActuationNI += (_pneumaticAuxillariesConfig.PerStopBrakeActuationNIperKG * _vehicleMassKG)
ParkBrakesplus2Doors = numActuationsPerCycle * airConsumptionPerActuationNI
......@@ -94,13 +94,15 @@ Namespace Pneumatics
'** AdBlue **
'=IF(K13="electric",0,G39*F54)- Supplied Spreadsheet
AdBlue = If(_pneumaticUserInputsConfig.AdBlueDosing = "electric", 0, _pneumaticAuxillariesConfig.AdBlueNIperMinute * _cycleDurationMinutes)
AdBlue = If(_pneumaticUserInputsConfig.AdBlueDosing = "Electric", 0, _pneumaticAuxillariesConfig.AdBlueNIperMinute * _cycleDurationMinutes)
'** Regeneration **
'=SUM(R6:R9)*IF(K9="yes",IF(COUNTBLANK(F41),G41,F41),IF(COUNTBLANK(F40),G40,F40)) - Supplied SpreadSheet
Regeneration = (Breaks + ParkBrakesplus2Doors + Kneeling + AdBlue)
Regeneration *= If(_pneumaticUserInputsConfig.SmartRegeneration, _pneumaticAuxillariesConfig.SmartRegenFractionTotalAirDemand, _
Dim regenFraction As Single = If(_pneumaticUserInputsConfig.SmartRegeneration, _pneumaticAuxillariesConfig.SmartRegenFractionTotalAirDemand, _
_pneumaticAuxillariesConfig.NonSmartRegenFractionTotalAirDemand)
Regeneration = Regeneration * regenFraction
'** DeadVolBlowOuts **
'=IF(COUNTBLANK(F43),G43,F43)/(F54/60) - Supplied SpreadSheet
numActuationsPerCycle = _pneumaticAuxillariesConfig.DeadVolBlowOutsPerLitresperHour / (60 / _cycleDurationMinutes)
......@@ -109,7 +111,7 @@ Namespace Pneumatics
'** AirSuspension **
'=IF(K12="electrically",0,G38*F54) - Suplied Spreadsheet
AirSuspension = If(_pneumaticUserInputsConfig.AirSuspensionControl = "electrically", 0, _pneumaticAuxillariesConfig.AirControlledSuspensionNIperMinute * _cycleDurationMinutes)
AirSuspension = If(_pneumaticUserInputsConfig.AirSuspensionControl = "Electrically", 0, _pneumaticAuxillariesConfig.AirControlledSuspensionNIperMinute * _cycleDurationMinutes)
'** Total Air Demand **
TotalAirDemand = Breaks + ParkBrakesplus2Doors + Kneeling + AdBlue + Regeneration + DeadVolBlowOuts + AirSuspension
......
rpm,flowRate [l/min],power [on] [kW],power [off] [kW]
1500,200,2,1
2000,400,4,2
3000,600,6,3
4000,800,8,4
5000,1000,10,5
6000,1200,12,6
7000,1400,14,7
\ No newline at end of file
rpm,flowRate [l/min],power [on] [kW],power [off] [kW]
1500,200,2,1
2000,400,4,2
3000,600,6,3
4000,800,8,4
5000,1000,10,5
6000,1200,12,6
7000,1400,14,7
\ No newline at end of file
rpm,flowRate [l/min],power [on] [W],power [off] [W]
1500,200,2000,1000
2000,400,4000,2000
3000,600,6000,3000
4000,800,8000,4000
5000,1000,10000,5000
6000,1200,12000,6000
7000,1400,14000,7000
\ No newline at end of file
......@@ -13,181 +13,55 @@ Namespace UnitTests
Private Const _IVALIDEFFICIENCYMAP As String = "TestFiles\testAlternatorMapWithInvalidEfficiency.csv"
Private Const _INVALIDPOWERMAP As String = "TestFiles\testAlternatorMapWithInvalidPower.csv"
<Test()>
Public Sub CreateNewAlternatorMapInstanceTest()
Dim path As String = "test"
Dim target As AlternatorMap = New AlternatorMap(path)
Assert.IsNotNull(target)
End Sub
<Test()>
Public Sub InitialiseTest()
Dim target As AlternatorMap = GetMap()
Dim actual As Boolean = target.Initialise()
Assert.IsTrue(actual)
End Sub
<Test(), ExpectedException("System.ArgumentException")>
Public Sub InitialiseNoFileSuppliedThrowsExceptionTest()
Dim path As String = ""
Dim target As AlternatorMap = New AlternatorMap(path)
target.Initialise()
End Sub
<Test(), ExpectedException("System.ArgumentException")>
Public Sub InitialiseWrongNumberOfColumnsThrowsExceptionTest()
Dim path As String = "C:\DEV\VECTO\VectoAuxiliaries\VectoAuxiliariesTests\TestFiles\testAlternatorMapWrongNoOfColumns.csv"
Dim target As AlternatorMap = New AlternatorMap(path)
target.Initialise()
End Sub
<Test(), ExpectedException("System.ArgumentException")>
Public Sub InitialiseInsufficientRowsThrowsExceptionTest()
Dim path As String = "C:\DEV\VECTO\VectoAuxiliaries\VectoAuxiliariesTests\TestFiles\testAlternatorMapNotEnoughRows.csv"
Dim target As AlternatorMap = New AlternatorMap(path)
target.Initialise()
End Sub
<Test(), ExpectedException("System.InvalidCastException")>
Public Sub InitialiseInvalidRpmThrowsExceptionTest()
Dim path As String = _INVALIDRPMMAP
Dim target As AlternatorMap = New AlternatorMap(path)
target.Initialise()
End Sub
<Test(), ExpectedException("System.InvalidCastException")>
Public Sub InitialiseInvalidAmpsThrowsExceptionTest()
Dim path As String = _INVALIDAMPSMAP
Dim target As AlternatorMap = New AlternatorMap(path)
target.Initialise()
End Sub
<Test(), ExpectedException("System.InvalidCastException")>
Public Sub InitialiseInvalidEfficiencyThrowsExceptionTest()
Dim path As String = _IVALIDEFFICIENCYMAP
Dim target As AlternatorMap = New AlternatorMap(path)
target.Initialise()
End Sub
<TestCase(2300, 15)> _
Public Sub GetEfficiencyInterpolationTest(ByVal rpm As Integer, ByVal amps As Integer)
Dim target As AlternatorMap = GetInitialisedMap()
Dim expected As Single = 0.6444162
Dim value As Single = target.GetEfficiency(rpm, amps).Efficiency
Assert.AreEqual(expected, value)
Assert.AreEqual(expected, value)
End Sub
<TestCase(0, 0)> _
<TestCase(0, 1500)> _
<TestCase(10, 0)> _
<TestCase(136, 8000)> _
<TestCase(200, 7000)> _
<ExpectedException("System.ArgumentOutOfRangeException")> _
Public Sub GetEfficiencyRpmOutOfRangeThrowsExceptionTest(ByVal amps As Integer, ByVal rpm As Integer)
Dim target As AlternatorMap = GetInitialisedMap()
Dim value As AlternatorMapValues = target.GetEfficiency(rpm, amps)
End Sub
<TestCase(10, 3000)> _
Public Sub GetEfficiencySingleBoundary10_3000(ByVal amps As Integer, ByVal rpm As Integer)
Dim target As AlternatorMap = GetInitialisedMap()
Dim actual As Single = target.GetEfficiency(rpm, amps).Efficiency
Dim expected As Single = 0.63
Assert.AreEqual(expected, actual)
End Sub
<TestCase(10, 7000)> _
Public Sub GetEfficiencySingleBoundary10_7000(ByVal amps As Integer, ByVal rpm As Integer)
Dim target As AlternatorMap = GetInitialisedMap()
Dim actual As Single = target.GetEfficiency(rpm, amps).Efficiency
Dim expected As Single = 0.475
Assert.AreEqual(expected, actual)
End Sub
<TestCase(136, 1500)> _
Public Sub GetEfficiencySingleBoundary136_1500(ByVal amps As Integer, ByVal rpm As Integer)
Dim target As AlternatorMap = GetInitialisedMap()
Dim actual As Single = target.GetEfficiency(rpm, amps).Efficiency
Dim expected As Single = 0
Assert.AreEqual(expected, actual)
End Sub
<TestCase(136, 3000)> _
Public Sub GetEfficiencySingleBoundary136_3000(ByVal amps As Integer, ByVal rpm As Integer)
Dim target As AlternatorMap = GetInitialisedMap()
Dim actual As Single = target.GetEfficiency(rpm, amps).Efficiency
Dim expected As Single = 0.3347
Assert.AreEqual(expected, actual)
End Sub
<TestCase(136, 7000)> _
Public Sub GetEfficiencySingleBoundary136_7000(ByVal amps As Integer, ByVal rpm As Integer)
Dim target As AlternatorMap = GetInitialisedMap()
Dim actual As Single = target.GetEfficiency(rpm, amps).Efficiency
Dim expected As Single = 0.5953
Assert.AreEqual(expected, actual)
End Sub
<Test()>
<TestCase(10,1500,0.6150f)> _
<TestCase(10,4000,0.6400f)> _
<TestCase(10,7000,0.4750f)> _
<TestCase(63,1500,0.0000f)> _
<TestCase(63,4000,0.7400f)> _
<TestCase(63,7000,0.6580f)> _
<TestCase(136,1500,0.0000f)> _
<TestCase(136,4000,0.6694f)> _
<TestCase(136,7000,0.5953f)> _
Public Sub BoundryTests(ByVal amps as integer, ByVal rpm as integer, ByVal expected as single)
<TestCase(10, 1500)> _
Public Sub GetEfficiencyOnLowerBoundary(ByVal amps As Integer, ByVal rpm As Integer)
Dim map As IAlternatorMap = GetInitialisedMap()
Dim target As IAlternatorMap = GetInitialisedMap( )
Dim actual As Single = map.GetEfficiency( rpm,amps).Efficiency
Assert.AreEqual(expected, actual)
Dim target As AlternatorMap = GetInitialisedMap()
Dim actual As Single = target.GetEfficiency(rpm, amps).Efficiency
Dim expected As Single = 0.615
Assert.AreEqual(expected, actual)
End Sub
End Sub
<TestCase(27, 2000)> _
Public Sub GetEfficiencyOnInterimBoundary(ByVal amps As Integer, ByVal rpm As Integer)
Dim target As AlternatorMap = GetInitialisedMap()
Dim actual As Single = target.GetEfficiency(rpm, amps).Efficiency
Dim expected As Single = 0.7
<TestCase(55,1500,0.15576f)> _
<TestCase(55,7000,0.6304f)> _
<TestCase(10,3000,0.63f)> _
<TestCase(136,3000,0.3347f)> _
Public sub FourCornerWithInterpolatedOtherTest(ByVal amps as integer, ByVal rpm as integer, ByVal expected as single)
Assert.AreEqual(expected, actual)
Dim map As IAlternatorMap = GetInitialisedMap()
Dim target As IAlternatorMap = GetInitialisedMap( )
End Sub
<TestCase(136, 7000)> _
Public Sub GetEfficiencyTopBoundry136_7000(ByVal amps As Integer, ByVal rpm As Integer)
Dim actual As Single = map.GetEfficiency( rpm,amps).Efficiency
Dim target As AlternatorMap = GetInitialisedMap()
Dim actual As Single = target.GetEfficiency(rpm, amps).Efficiency
Dim expected As Single = 0.5953
Assert.AreEqual(expected, actual)
End Sub
Assert.AreEqual(expected, actual)
<TestCase(18,1750,0.656323552f)> _
<TestCase(18,6500,0.5280294f)> _
<TestCase(130,1750,0.0f)> _
<TestCase(130,6500,0.6150136f)> _
Public sub InterpolatedCornersBothMidPreviousTest(ByVal amps as integer, ByVal rpm as integer, ByVal expected as single)
End Sub
Dim map As IAlternatorMap = GetInitialisedMap()
Dim target As IAlternatorMap = GetInitialisedMap( )
Dim actual As Single = map.GetEfficiency( rpm,amps).Efficiency
<TestCase(15, 1500)> _
Public Sub GetEfficiency15_1500(ByVal amps As Integer, ByVal rpm As Integer)
Assert.AreEqual(expected, actual)
Dim target As AlternatorMap = GetInitialisedMap()
Dim actual As Single = target.GetEfficiency(rpm, amps).Efficiency
Dim expected As Single = 0.615
End Sub
Assert.AreEqual(expected, actual)
End Sub
#Region "Helpers"
......
......@@ -27,12 +27,6 @@ Namespace UnitTests
Private _defaultInputConfig As IPneumaticUserInputsConfig
'Constructors
Public Sub New()
......@@ -48,9 +42,9 @@ Namespace UnitTests
_defaultInputConfig.SmartRegeneration = True
_defaultInputConfig.RetarderBrake = True
_defaultInputConfig.KneelingHeightMillimeters = 80
_defaultInputConfig.AirSuspensionControl = "electrically"
_defaultInputConfig.AdBlueDosing = "pneumatic"
_defaultInputConfig.Doors = "pneumatic"
_defaultInputConfig.AirSuspensionControl = "Electrically"
_defaultInputConfig.AdBlueDosing = "Pneumatic"
_defaultInputConfig.Doors = "Pneumatic"
_defaultInputConfig.SmartAirCompression = True
......@@ -61,9 +55,9 @@ Namespace UnitTests
Public Sub CreateNewtest()
Dim psUserInputsConfig = CType(New PneumaticUserInputsConfig(), IPneumaticUserInputsConfig)
psUserInputsConfig.AirSuspensionControl = "mechanically"
psUserInputsConfig.Doors = "pneumatic"
psUserInputsConfig.AdBlueDosing = "pneumatic"
psUserInputsConfig.AirSuspensionControl = "Mechanically"
psUserInputsConfig.Doors = "Pneumatic"
psUserInputsConfig.AdBlueDosing = "Pneumatic"
Dim psAuxConfig = CType(New PneumaticsAuxilliariesConfig(True), IPneumaticsAuxilliariesConfig)
......@@ -113,7 +107,7 @@ Namespace UnitTests
Dim target As New M3_AveragePneumaticLoadDemand(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap, _vehicleMassKG, "Urban", _cycleDurationMinutes)
Dim expected As Single = 0.0319030322
Dim expected As Single = 31.9030322
Dim actual As Single = target.GetAveragePowerDemandAtCrankFromPneumatics()
Assert.AreEqual(expected, actual)
......@@ -136,7 +130,7 @@ Namespace UnitTests
Dim target As New M3_AveragePneumaticLoadDemand(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap, _vehicleMassKG, "Urban", _cycleDurationMinutes)
Dim expected As Single = 0.025780227
Dim expected As Single = 25.78023
Dim actual As Single = target.GetAveragePowerDemandAtCrankFromPneumatics()
Assert.AreEqual(expected, actual)
......@@ -270,11 +264,11 @@ Namespace UnitTests
psCompressorMap.Initialise()
_defaultInputConfig.AdBlueDosing = "electric"
_defaultInputConfig.AdBlueDosing = "Electric"
Dim target As New M3_AveragePneumaticLoadDemand(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap, _vehicleMassKG, "Urban", _cycleDurationMinutes)
Dim expected As Single = 6712.46
Dim expected As Single = 7490.96
Dim actual As Single = Math.Round(target.TotalAirConsumedPerCycle(), 2)
......@@ -282,7 +276,7 @@ Namespace UnitTests
End Sub
'Doors = "electric"
'Doors = "Electric"
<Test()>
Public Sub AverageLoadValueUsingDefaultAuxValues_TotalRequiredAirDeliveryRate_Doors_electric_Test()
......@@ -294,7 +288,7 @@ Namespace UnitTests
psCompressorMap.Initialise()
_defaultInputConfig.Doors = "electric"
_defaultInputConfig.Doors = "Electric"
Dim target As New M3_AveragePneumaticLoadDemand(_defaultInputConfig, psAuxConfig, psActuationsMap, psCompressorMap, _vehicleMassKG, "Urban", _cycleDurationMinutes)
......
......@@ -122,7 +122,7 @@ Namespace UnitTests
<Test()>
Public Sub GetPowerCompressorOnKeyPassedTest()
Dim target As CompressorMap = GetInitialiseMap()
Dim expected As Single = 4
Dim expected As Single = 4000
Dim value As Single = target.GetPowerCompressorOn(2000)
Assert.AreEqual(expected, value)
End Sub
......@@ -130,7 +130,7 @@ Namespace UnitTests
<Test()>
Public Sub GetPowerCompressorOnInterpolaitionTest()
Dim target As CompressorMap = GetInitialiseMap()
Dim expected As Single = 5
Dim expected As Single = 5000
Dim value As Single = target.GetPowerCompressorOn(2500)
Assert.AreEqual(expected, value)
End Sub
......@@ -147,7 +147,7 @@ Namespace UnitTests
<Test()>
Public Sub GetPowerCompressorOffKeyPassedTest()
Dim target As CompressorMap = GetInitialiseMap()
Dim expected As Single = 2
Dim expected As Single = 2000
Dim value As Single = target.GetPowerCompressorOff(2000)
Assert.AreEqual(expected, value)
End Sub
......@@ -155,7 +155,7 @@ Namespace UnitTests
<Test()>
Public Sub GetPowerCompressorOffInterpolaitionTest()
Dim target As CompressorMap = GetInitialiseMap()
Dim expected As Single = 2.5
Dim expected As Single = 2500
Dim value As Single = target.GetPowerCompressorOff(2500)
Assert.AreEqual(expected, value)
End Sub
......@@ -177,7 +177,7 @@ Namespace UnitTests
Dim expected As Single
Dim actual As Single
expected = 0.01
expected = 10
actual = target.AveragePowerDemandPerCompressorUnitFlowRate
......
......@@ -76,7 +76,7 @@ End Sub
Public Sub AlternatorsEfficiencyIdle2000rpmTest()
Initialise()
Dim expected As Single = 0.7
Dim expected As Single = 0.5769231
Dim actual As Single = target.AlternatorsEfficiencyIdleResultCard()
Assert.AreEqual(expected, actual)
......@@ -89,7 +89,7 @@ End Sub
Public Sub AlternatorsEfficiencyTraction2000rpmTest()
Initialise()
Dim expected As Single = 0.7
Dim expected As Single = 0.5769231
Dim actual As Single = target.AlternatorsEfficiencyTractionOnResultCard()
Assert.AreEqual(expected, actual)
......@@ -101,7 +101,7 @@ End Sub
Public Sub AlternatorsEfficiencyOverrun2000rpmTest()
Initialise()
Dim expected As Single = 0.7
Dim expected As Single = 0.5769231
Dim actual As Single = target.AlternatorsEfficiencyOverrunResultCard()
Assert.AreEqual(expected, actual)
......
......@@ -89,7 +89,7 @@ Public Sub EfficiencyValueTest()
Dim actual As Single = target.AlternatorsEfficiency
Dim expected As Single = 0.62
Dim expected As Single = 0.6388235
Assert.AreEqual(expected, actual)
......
......@@ -74,7 +74,7 @@ Public Sub AveragePowerDemandAtCrankFromHVACElectricsWattsTest()
Dim target As IM1_AverageHVACLoadDemand = GETM1Instance()
Dim expected As Single = 142.857147
Dim expected As Single = 194.029846
dim actual as Single = target.AveragePowerDemandAtCrankFromHVACElectricsWatts
Assert.AreEqual( expected , actual)
......
......@@ -54,7 +54,7 @@ Namespace UnitTests
Public Sub GetAveragePowerAtAlternatorTest()
Dim expected As Single =35.634
Dim expected As Single =937.1157
Dim target As M2_AverageElectricalLoadDemand = GetAverageElectricalDemandInstance()
Dim actual As Single = target.GetAveragePowerDemandAtAlternator()
Assert.AreEqual(expected,actual)
......@@ -64,7 +64,7 @@ Namespace UnitTests
<Test()>
Public Sub GetAveragePowerAtCrankTest()
Dim target As M2_AverageElectricalLoadDemand = GetAverageElectricalDemandInstance()
Dim expected As Single = 1673.52527
Dim expected As Single = 2272.85522
Dim actual As Single = target.GetAveragePowerAtCrank()
Assert.AreEqual(expected, actual)
End Sub
......
......@@ -65,7 +65,7 @@ Public Sub PowerAtCrankIdleWatts()
Initialise()
_target = New M5__SmartAlternatorSetGeneration(_m05,_powerNetVoltage,_altGearPullyEfficiency)
Dim expected As Single =1642.96362
Dim expected As Single =1993.34644
Dim actual As Single = _target.AlternatorsGenerationPowerAtCrankIdleWatts()
Assert.AreEqual( expected, actual)
......@@ -77,7 +77,7 @@ Public Sub PowerAtCrankTractionWatts()
Initialise()
_target = New M5__SmartAlternatorSetGeneration(_m05,_powerNetVoltage,_altGearPullyEfficiency)
Dim expected As Single =1642.96362
Dim expected As Single =1993.34644
Dim actual As Single = _target.AlternatorsGenerationPowerAtCrankTractionOnWatts()
Assert.AreEqual( expected, actual)
......@@ -89,7 +89,7 @@ Public Sub PowerAtCrankOverrunWatts()
Initialise()
_target = New M5__SmartAlternatorSetGeneration(_m05,_powerNetVoltage,_altGearPullyEfficiency)
Dim expected As Single =1642.96362
Dim expected As Single =1993.34644
Dim actual As Single = _target.AlternatorsGenerationPowerAtCrankOverrunWatts()
......
......@@ -220,6 +220,9 @@
<Content Include="TestFiles\testPneumaticActuationsMap_GOODMAP - Copy.csv">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="TestFiles\testCompressorMap - Copy.csv">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\VectoAuxiliaries\VectoAuxiliaries.vbproj">
......
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