From 488a769a016023aa217fa68f4720885665c8c8dc Mon Sep 17 00:00:00 2001 From: "Burns, Terry" <Terry.Burns@ricardo.com> Date: Wed, 5 Nov 2014 13:37:10 +0000 Subject: [PATCH] M6 and M7 Written, now looking at unit tests for them. WIP Checkpoint git-tfs-id: [http://tfs00.element.root.com:8080/tfs/TFSCollection]$/VECTO;C1661 --- .../AuxillaryTestHarness.vbproj | 5 +- AuxillaryTestHarness/Dashboard.vb | 2 +- .../testAlternatorMap - Copy.csv | 36 +++ AuxillaryTestHarness/testAlternatorMap.csv | 70 ++--- VECTO/Input Files/cVECTO.vb | 1 - .../VectoAuxiliaries/DownstreamModules/IM6.vb | 28 ++ .../VectoAuxiliaries/DownstreamModules/IM7.vb | 22 ++ .../VectoAuxiliaries/DownstreamModules/M6.vb | 254 ++++++++++++++++++ .../VectoAuxiliaries/DownstreamModules/M7.vb | 91 +++++++ .../IM2_AverageElectricalLoadDemand.vb | 2 +- .../IM5_SmartAlternatorSetGeneration.vb | 11 +- .../M2_AverageElectricalLoadDemand.vb | 2 +- .../Hvac/IM1_AverageHVACLoadDemand.vb | 10 +- .../Hvac/M1_AverageHVACLoadDemand.vb | 55 ++-- VECTOAux/VectoAuxiliaries/ISignals.vb | 8 +- VECTOAux/VectoAuxiliaries/Signals.vb | 8 + .../VectoAuxiliaries/VectoAuxiliaries.vbproj | 4 + .../VectoAuxiliariesTests/Mocks/M1_Mock.vb | 51 ++++ .../VectoAuxiliariesTests/Mocks/M2_Mock.vb | 35 +++ .../VectoAuxiliariesTests/Mocks/M3_Mock.vb | 32 +++ .../VectoAuxiliariesTests/Mocks/M4_Mock.vb | 63 +++++ .../VectoAuxiliariesTests/Mocks/M5_Mock.vb | 46 ++++ .../VectoAuxiliariesTests/Mocks/M6_Mock.vb | 102 +++++++ .../M2_AverageElectricalLoadTests.vb | 2 +- .../VectoAuxiliariesTests/UnitTests/M6.vb | 120 +++++++++ .../VectoAuxiliariesTests/UnitTests/M7.vb | 107 ++++++++ .../VectoAuxiliariesTests.vbproj | 8 + 27 files changed, 1099 insertions(+), 76 deletions(-) create mode 100644 AuxillaryTestHarness/testAlternatorMap - Copy.csv create mode 100644 VECTOAux/VectoAuxiliaries/DownstreamModules/IM6.vb create mode 100644 VECTOAux/VectoAuxiliaries/DownstreamModules/IM7.vb create mode 100644 VECTOAux/VectoAuxiliaries/DownstreamModules/M6.vb create mode 100644 VECTOAux/VectoAuxiliaries/DownstreamModules/M7.vb create mode 100644 VECTOAux/VectoAuxiliariesTests/Mocks/M1_Mock.vb create mode 100644 VECTOAux/VectoAuxiliariesTests/Mocks/M2_Mock.vb create mode 100644 VECTOAux/VectoAuxiliariesTests/Mocks/M3_Mock.vb create mode 100644 VECTOAux/VectoAuxiliariesTests/Mocks/M4_Mock.vb create mode 100644 VECTOAux/VectoAuxiliariesTests/Mocks/M5_Mock.vb create mode 100644 VECTOAux/VectoAuxiliariesTests/Mocks/M6_Mock.vb create mode 100644 VECTOAux/VectoAuxiliariesTests/UnitTests/M6.vb create mode 100644 VECTOAux/VectoAuxiliariesTests/UnitTests/M7.vb diff --git a/AuxillaryTestHarness/AuxillaryTestHarness.vbproj b/AuxillaryTestHarness/AuxillaryTestHarness.vbproj index b040a28ae4..dac2375f54 100644 --- a/AuxillaryTestHarness/AuxillaryTestHarness.vbproj +++ b/AuxillaryTestHarness/AuxillaryTestHarness.vbproj @@ -28,7 +28,7 @@ <UpdatePeriodically>false</UpdatePeriodically> <UpdateRequired>false</UpdateRequired> <MapFileExtensions>true</MapFileExtensions> - <ApplicationRevision>5</ApplicationRevision> + <ApplicationRevision>6</ApplicationRevision> <ApplicationVersion>1.0.0.%2a</ApplicationVersion> <UseApplicationTrust>false</UseApplicationTrust> <PublishWizardCompleted>true</PublishWizardCompleted> @@ -168,6 +168,9 @@ <Content Include="testPneumaticActuationsMap_GOODMAP.csv"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </Content> + <Content Include="testAlternatorMap - Copy.csv"> + <CopyToOutputDirectory>Always</CopyToOutputDirectory> + </Content> </ItemGroup> <ItemGroup> <ProjectReference Include="..\VECTOAux\VectoAuxiliaries\VectoAuxiliaries.vbproj"> diff --git a/AuxillaryTestHarness/Dashboard.vb b/AuxillaryTestHarness/Dashboard.vb index 06ba5cf505..ced42557f6 100644 --- a/AuxillaryTestHarness/Dashboard.vb +++ b/AuxillaryTestHarness/Dashboard.vb @@ -871,7 +871,7 @@ Private sub RefreshDisplays() 'M2 txtM2_out_AvgPowerAtAltFromElectrics.Text=auxEnvironment.M2.GetAveragePowerDemandAtAlternator - txtM2_out_AvgPowerAtCrankFromElectrics.Text=auxEnvironment.M2.GetAveragePowerAtCrank() + txtM2_out_AvgPowerAtCrankFromElectrics.Text=auxEnvironment.M2.GetAveragePowerAtCrankFromElectrics() 'M3 txtM3_out_AveragePowerAtCrankFromPneumatics.Text=auxEnvironment.M3.GetAveragePowerDemandAtCrankFromPneumatics diff --git a/AuxillaryTestHarness/testAlternatorMap - Copy.csv b/AuxillaryTestHarness/testAlternatorMap - Copy.csv new file mode 100644 index 0000000000..3968d6970a --- /dev/null +++ b/AuxillaryTestHarness/testAlternatorMap - Copy.csv @@ -0,0 +1,36 @@ +Amp,RPM,Efficiency +10,1500,0.615 +27,1500,0.70 +53,1500,0.1947 +63,1500,0.00 +68,1500,0.00 +125,1500,0.00 +136,1500,0.00 +10,2000,0.62 +27,2000,0.70 +53,2000,0.30 +63,2000,0.1462 +68,2000,0.692 +125,2000,0.00 +136,2000,0.00 +10,4000,0.64 +27,4000,0.6721 +53,4000,0.7211 +63,4000,0.7400 +68,4000,0.7352 +125,4000,0.6800 +136,4000,0.6694 +10,6000,0.5300 +27,6000,0.5798 +53,6000,0.6560 +63,6000,0.6853 +68,6000,0.7000 +125,6000,0.6329 +136,6000,0.6200 +10,7000,0.4750 +27,7000,0.5337 +53,7000,0.6235 +63,7000,0.6580 +68,7000,0.6824 +125,7000,0.6094 +136,7000,0.5953 diff --git a/AuxillaryTestHarness/testAlternatorMap.csv b/AuxillaryTestHarness/testAlternatorMap.csv index 3968d6970a..726d26f734 100644 --- a/AuxillaryTestHarness/testAlternatorMap.csv +++ b/AuxillaryTestHarness/testAlternatorMap.csv @@ -1,36 +1,36 @@ Amp,RPM,Efficiency -10,1500,0.615 -27,1500,0.70 -53,1500,0.1947 -63,1500,0.00 -68,1500,0.00 -125,1500,0.00 -136,1500,0.00 -10,2000,0.62 -27,2000,0.70 -53,2000,0.30 -63,2000,0.1462 -68,2000,0.692 -125,2000,0.00 -136,2000,0.00 -10,4000,0.64 -27,4000,0.6721 -53,4000,0.7211 -63,4000,0.7400 -68,4000,0.7352 -125,4000,0.6800 -136,4000,0.6694 -10,6000,0.5300 -27,6000,0.5798 -53,6000,0.6560 -63,6000,0.6853 -68,6000,0.7000 -125,6000,0.6329 -136,6000,0.6200 -10,7000,0.4750 -27,7000,0.5337 -53,7000,0.6235 -63,7000,0.6580 -68,7000,0.6824 -125,7000,0.6094 -136,7000,0.5953 +10,1500,0.5 +27,1500,0.5 +53,1500,0.5 +63,1500,0.5 +68,1500,0.5 +125,1500,0.5 +136,1500,0.5 +10,2000,0.5 +27,2000,0.5 +53,2000,0.5 +63,2000,0.5 +68,2000,0.5 +125,2000,0.5 +136,2000,0.5 +10,4000,0.5 +27,4000,0.5 +53,4000,0.5 +63,4000,0.5 +68,4000,0.5 +125,4000,0.5 +136,4000,0.5 +10,6000,0.5 +27,6000,0.5 +53,6000,0.5 +63,6000,0.5 +68,6000,0.5 +125,6000,0.5 +136,6000,0.5 +10,7000,0.5 +27,7000,0.5 +53,7000,0.5 +63,7000,0.5 +68,7000,0.5 +125,7000,0.5 +136,7000,0.5 diff --git a/VECTO/Input Files/cVECTO.vb b/VECTO/Input Files/cVECTO.vb index e360f84393..d64bcba953 100644 --- a/VECTO/Input Files/cVECTO.vb +++ b/VECTO/Input Files/cVECTO.vb @@ -9,7 +9,6 @@ ' ' See the LICENSE.txt for the specific language governing permissions and limitations. -Imports VectoAuxiliaries.ElectricalConsumers Imports System.Collections.Generic diff --git a/VECTOAux/VectoAuxiliaries/DownstreamModules/IM6.vb b/VECTOAux/VectoAuxiliaries/DownstreamModules/IM6.vb new file mode 100644 index 0000000000..9989fddbeb --- /dev/null +++ b/VECTOAux/VectoAuxiliaries/DownstreamModules/IM6.vb @@ -0,0 +1,28 @@ + +'Module 6: OVER-RUN smart and non-smart systems alternator and air compressor load calculations + +Namespace DownstreamModules + + +Public Interface IM6 + +'Watts + Readonly Property OverrunFlag As Integer + Readonly Property SmartElecAndPneumaticsCompressorFlag As integer + ReadOnly Property SmartElecAndPneumaticAltPowerGenAtCrank As Single + ReadOnly Property SmartElecAndPneumaticAirCompPowerGenAtCrank As Single + ReadOnly Property SmartElecOnlyAltPowerGenAtCrank As Single + ReadOnly Property AveragePowerDemandAtCrankFromPneumatics As Single + ReadOnly Property SmartPneumaticOnlyAirCompPowerGenAtCrank As Single + + ReadOnly Property AvgPowerDemandAtCrankFromElectricsIncHVAC As Single + ReadOnly Property SmartPneumaticsOnlyCompressorFlag As Integer + + + +End Interface + + +End Namespace + + diff --git a/VECTOAux/VectoAuxiliaries/DownstreamModules/IM7.vb b/VECTOAux/VectoAuxiliaries/DownstreamModules/IM7.vb new file mode 100644 index 0000000000..c005492aae --- /dev/null +++ b/VECTOAux/VectoAuxiliaries/DownstreamModules/IM7.vb @@ -0,0 +1,22 @@ + +Imports VectoAuxiliaries.Electrics +Imports VectoAuxiliaries.Pneumatics +Imports VectoAuxiliaries.Hvac + +Namespace DownstreamModules + + +Public Interface IM7 + + + ReadOnly Property SmartElectricalAndPneumaticAuxAltPowerGenAtCrank As Single + ReadOnly Property SmartElectricalAndPneumaticAuxAirCompPowerGenAtCrank As Single + ReadOnly property SmartElectricalOnlyAuxAltPowerGenAtCrank as single + ReadOnly Property SmartPneumaticOnlyAuxAirCompPowerGenAtCrank As Single + +End Interface + + +End Namespace + + diff --git a/VECTOAux/VectoAuxiliaries/DownstreamModules/M6.vb b/VECTOAux/VectoAuxiliaries/DownstreamModules/M6.vb new file mode 100644 index 0000000000..7eb9ab7547 --- /dev/null +++ b/VECTOAux/VectoAuxiliaries/DownstreamModules/M6.vb @@ -0,0 +1,254 @@ + +Imports VectoAuxiliaries.Electrics +Imports VectoAuxiliaries.Pneumatics +Imports VectoAuxiliaries.Hvac + +Namespace DownstreamModules + +Public Class M6 +Implements IM6 + + + 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 + + + Public ReadOnly Property AveragePowerDemandAtCrankFromPneumatics As Single Implements IM6.AveragePowerDemandAtCrankFromPneumatics + Get + Return _m3.GetAveragePowerDemandAtCrankFromPneumatics + End Get + End Property + Public ReadOnly Property AvgPowerDemandAtCrankFromElectricsIncHVAC As Single Implements IM6.AvgPowerDemandAtCrankFromElectricsIncHVAC + Get + + Return Sum1 + + End Get + + End Property + Public ReadOnly Property OverrunFlag As Integer Implements IM6.OverrunFlag + + Get + Return VC0 + End Get + End Property + Public ReadOnly Property SmartElecAndPneumaticAltPowerGenAtCrank As Single Implements IM6.SmartElecAndPneumaticAltPowerGenAtCrank + Get + Return Max1 + End Get + End Property + Public ReadOnly Property SmartElecAndPneumaticAirCompPowerGenAtCrank As Single Implements IM6.SmartElecAndPneumaticAirCompPowerGenAtCrank + Get + Return Sum16 + End Get + End Property + Public ReadOnly Property SmartElecAndPneumaticsCompressorFlag As integer Implements IM6.SmartElecAndPneumaticsCompressorFlag + Get + Return VC2 + End Get + End Property + Public ReadOnly Property SmartElecOnlyAltPowerGenAtCrank As Single Implements IM6.SmartElecOnlyAltPowerGenAtCrank + Get + Return Max2 + End Get + End Property + Public ReadOnly Property SmartPneumaticOnlyAirCompPowerGenAtCrank As Single Implements IM6.SmartPneumaticOnlyAirCompPowerGenAtCrank + Get + Return Sum19 + End Get + End Property + Public ReadOnly Property SmartPneumaticsOnlyCompressorFlag As Integer Implements IM6.SmartPneumaticsOnlyCompressorFlag + Get + Return VC4 + End Get + End Property + + +'switches +Private ReadOnly Property SW1 As Single + Get + + Return If( _signals.SmartElectrics, _m5.AlternatorsGenerationPowerAtCrankTractionOnWatts,Sum1) + + End Get +End Property + +'Max's + +'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 + + Return _signals.PreExistingAuxPower + _ + _m1.AveragePowerDemandAtCrankFromHVACMechanicalsWatts + _ + _m3.GetAveragePowerDemandAtCrankFromPneumatics + _ + SW1 + + End Get +End Property +Public ReadOnly Property Sum3 As Single + Get + + Return _signals.EngineMotoringPower + _ + _signals.EngineDrivelinePower + _ + 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 + End Get +End Property +Public ReadOnly property Sum16 as single + Get + Return Sum14 + Sum16 + 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 + End Get +End Property +Public ReadOnly Property Sum19 As Single + Get + Return Sum17 + Sum18 + end get +End Property + + + + 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/DownstreamModules/M7.vb b/VECTOAux/VectoAuxiliaries/DownstreamModules/M7.vb new file mode 100644 index 0000000000..4d1f1f8ddd --- /dev/null +++ b/VECTOAux/VectoAuxiliaries/DownstreamModules/M7.vb @@ -0,0 +1,91 @@ +Imports VectoAuxiliaries.Electrics +Imports VectoAuxiliaries.Pneumatics +Imports VectoAuxiliaries.Hvac + +Namespace DownstreamModules + +Public Class M7 + implements IM7 + + Private _m5 As IM5_SmartAlternatorSetGeneration + Private _m6 As IM6 + Private _signals As ISignals + + 'Boolan Conditions IE + Private readonly property C1 As Boolean + + Get + Return _m6.OverrunFlag=1 Andalso _signals.ClutchEngaged Andalso _signals.InNeutral=false + End Get + + End Property + + + 'Internal Switched Outputs + Private readonly Property SW1 As Single + Get + Return If ( _signals.Idle, _m5.AlternatorsGenerationPowerAtCrankIdleWatts, _m5.AlternatorsGenerationPowerAtCrankTractionOnWatts) + End Get + End Property + Private readonly Property SW2 As Single + Get + Return If( C1, _m6.SmartElecAndPneumaticAltPowerGenAtCrank, SW1) + End Get + End Property + Private readonly Property SW3 As Single + Get + Return If( C1,_m6.SmartElecAndPneumaticAirCompPowerGenAtCrank,_m6.AveragePowerDemandAtCrankFromPneumatics) + End Get + End Property + Private readonly Property SW4 As Single + Get + Return If( C1,_m6.SmartElecOnlyAltPowerGenAtCrank,SW1) + End Get + End Property + Private readonly Property SW5 As Single + Get + Return If( C1, _m6.SmartPneumaticOnlyAirCompPowerGenAtCrank,_m6.AveragePowerDemandAtCrankFromPneumatics) + End Get + End Property + + + 'Public readonly properties ( Outputs ) + Public ReadOnly Property SmartElectricalAndPneumaticAuxAltPowerGenAtCrank As Single Implements IM7.SmartElectricalAndPneumaticAuxAltPowerGenAtCrank + Get + Return SW2 + End Get + End Property + Public ReadOnly Property SmartElectricalAndPneumaticAuxAirCompPowerGenAtCrank As Single Implements IM7.SmartElectricalAndPneumaticAuxAirCompPowerGenAtCrank + Get + Return SW3 + End Get + End Property + Public ReadOnly Property SmartElectricalOnlyAuxAltPowerGenAtCrank As Single Implements IM7.SmartElectricalOnlyAuxAltPowerGenAtCrank + Get + Return SW4 + End Get + End Property + Public ReadOnly Property SmartPneumaticOnlyAuxAirCompPowerGenAtCrank As Single Implements IM7.SmartPneumaticOnlyAuxAirCompPowerGenAtCrank + Get + Return SW5 + End Get + End Property + + Public sub new ( m5 as IM5_SmartAlternatorSetGeneration, _ + m6 As IM6, _ + signals As ISignals) + + _m5 = m5 + _m6 = m6 + _signals = signals + + End Sub + + +End Class + + +End Namespace + + + diff --git a/VECTOAux/VectoAuxiliaries/Electrics/IM2_AverageElectricalLoadDemand.vb b/VECTOAux/VectoAuxiliaries/Electrics/IM2_AverageElectricalLoadDemand.vb index 269dc64829..4fd313556a 100644 --- a/VECTOAux/VectoAuxiliaries/Electrics/IM2_AverageElectricalLoadDemand.vb +++ b/VECTOAux/VectoAuxiliaries/Electrics/IM2_AverageElectricalLoadDemand.vb @@ -3,7 +3,7 @@ Public Interface IM2_AverageElectricalLoadDemand Function GetAveragePowerDemandAtAlternator() As Single - Function GetAveragePowerAtCrank() As Single + Function GetAveragePowerAtCrankFromElectrics() As Single End Interface diff --git a/VECTOAux/VectoAuxiliaries/Electrics/IM5_SmartAlternatorSetGeneration.vb b/VECTOAux/VectoAuxiliaries/Electrics/IM5_SmartAlternatorSetGeneration.vb index 8a1fa0c097..a5628d8d26 100644 --- a/VECTOAux/VectoAuxiliaries/Electrics/IM5_SmartAlternatorSetGeneration.vb +++ b/VECTOAux/VectoAuxiliaries/Electrics/IM5_SmartAlternatorSetGeneration.vb @@ -1,4 +1,8 @@ -Public Interface IM5_SmartAlternatorSetGeneration + + +Namespace Electrics + +Public Interface IM5_SmartAlternatorSetGeneration @@ -7,7 +11,10 @@ function AlternatorsGenerationPowerAtCrankTractionOnWatts() As Single function AlternatorsGenerationPowerAtCrankOverrunWatts() As Single +End Interface + +End Namespace + -End Interface diff --git a/VECTOAux/VectoAuxiliaries/Electrics/M2_AverageElectricalLoadDemand.vb b/VECTOAux/VectoAuxiliaries/Electrics/M2_AverageElectricalLoadDemand.vb index 2907be683d..f4b2731503 100644 --- a/VECTOAux/VectoAuxiliaries/Electrics/M2_AverageElectricalLoadDemand.vb +++ b/VECTOAux/VectoAuxiliaries/Electrics/M2_AverageElectricalLoadDemand.vb @@ -38,7 +38,7 @@ End Function - Public Function GetAveragePowerAtCrank() As Single Implements IM2_AverageElectricalLoadDemand.GetAveragePowerAtCrank + Public Function GetAveragePowerAtCrankFromElectrics() As Single Implements IM2_AverageElectricalLoadDemand.GetAveragePowerAtCrankFromElectrics Dim ElectricalPowerDemandsWatts As Single = GetAveragePowerDemandAtAlternator() Dim alternatorsEfficiency As Single = _module0.AlternatorsEfficiency diff --git a/VECTOAux/VectoAuxiliaries/Hvac/IM1_AverageHVACLoadDemand.vb b/VECTOAux/VectoAuxiliaries/Hvac/IM1_AverageHVACLoadDemand.vb index b78670a6d5..387b54fe9d 100644 --- a/VECTOAux/VectoAuxiliaries/Hvac/IM1_AverageHVACLoadDemand.vb +++ b/VECTOAux/VectoAuxiliaries/Hvac/IM1_AverageHVACLoadDemand.vb @@ -1,4 +1,8 @@ -Public Interface IM1_AverageHVACLoadDemand + +Namespace Pneumatics + + +Public Interface IM1_AverageHVACLoadDemand Function AveragePowerDemandAtCrankFromHVACMechanicalsWatts() As Single @@ -14,3 +18,7 @@ Function HVACFuelingLitresPerHour() As Single End Interface + +End Namespace + + diff --git a/VECTOAux/VectoAuxiliaries/Hvac/M1_AverageHVACLoadDemand.vb b/VECTOAux/VectoAuxiliaries/Hvac/M1_AverageHVACLoadDemand.vb index a333876420..3eb3446449 100644 --- a/VECTOAux/VectoAuxiliaries/Hvac/M1_AverageHVACLoadDemand.vb +++ b/VECTOAux/VectoAuxiliaries/Hvac/M1_AverageHVACLoadDemand.vb @@ -1,4 +1,5 @@ Imports VectoAuxiliaries.Electrics +Imports VectoAuxiliaries.Pneumatics Namespace Hvac @@ -7,49 +8,49 @@ Namespace Hvac Private _m0 As IM0_NonSmart_AlternatorsSetEfficiency - Private _alternatorGearEfficiency As Single - Private _compressorGearEfficiency As single + Private _alternatorGearEfficiency As Single + Private _compressorGearEfficiency As Single Private _hvacInputs As IHVACInputs Private _hvacMap As IHVACMap Private _signals As ISignals - Private _powernetVoltage As single + Private _powernetVoltage As Single Private _steadyStateModel As IHVACSteadyStateModel - Public Sub new ( m0 As IM0_NonSmart_AlternatorsSetEfficiency, hvacMap As IHVACMap, hvacInputs As IHVACInputs, altGearEfficiency As Single,compressorGearEfficiency As Single, powernetVoltage As Single, signals As ISignals, ssm As IHVACSteadyStateModel ) + Public Sub New(m0 As IM0_NonSmart_AlternatorsSetEfficiency, hvacMap As IHVACMap, hvacInputs As IHVACInputs, altGearEfficiency As Single, compressorGearEfficiency As Single, powernetVoltage As Single, signals As ISignals, ssm As IHVACSteadyStateModel) 'Sanity Check - Illegal operations without all params. - If m0 is Nothing then Throw New ArgumentException("Module0 as supplied is null") - If hvacMap is Nothing then Throw New ArgumentException("hvacMap as supplied is null") - If hvacInputs is Nothing then Throw New ArgumentException("hvacInputs as supplied is null") - If altGearEfficiency< ElectricConstants.AlternatorPulleyEfficiencyMin orelse altGearEfficiency> ElectricConstants.AlternatorPulleyEfficiencyMax then _ - Throw New ArgumentException(String.Format("Gear efficiency must be between {0} and {1}",ElectricConstants.AlternatorPulleyEfficiencyMin,ElectricConstants.AlternatorPulleyEfficiencyMax )) + If m0 Is Nothing Then Throw New ArgumentException("Module0 as supplied is null") + If hvacMap Is Nothing Then Throw New ArgumentException("hvacMap as supplied is null") + If hvacInputs Is Nothing Then Throw New ArgumentException("hvacInputs as supplied is null") + If altGearEfficiency < ElectricConstants.AlternatorPulleyEfficiencyMin OrElse altGearEfficiency > ElectricConstants.AlternatorPulleyEfficiencyMax Then _ + Throw New ArgumentException(String.Format("Gear efficiency must be between {0} and {1}", ElectricConstants.AlternatorPulleyEfficiencyMin, ElectricConstants.AlternatorPulleyEfficiencyMax)) - If signals is Nothing then Throw New Exception ("Signals object as supplied is null") - If powernetVoltage< ElectricConstants.PowenetVoltageMin orelse powernetVoltage> ElectricConstants.PowenetVoltageMax then _ - Throw New ArgumentException(String.Format("PowenetVoltage supplied must be in the range {0} to {1}",ElectricConstants.PowenetVoltageMin,ElectricConstants.PowenetVoltageMax)) - If ssm is Nothing then Throw New ArgumentException("Steady State model was not supplied") - If compressorGearEfficiency< 0 orelse altGearEfficiency> 1 then _ - Throw New ArgumentException(String.Format("Compressor Gear efficiency must be between {0} and {1}",0,1 )) + If signals Is Nothing Then Throw New Exception("Signals object as supplied is null") + If powernetVoltage < ElectricConstants.PowenetVoltageMin OrElse powernetVoltage > ElectricConstants.PowenetVoltageMax Then _ + Throw New ArgumentException(String.Format("PowenetVoltage supplied must be in the range {0} to {1}", ElectricConstants.PowenetVoltageMin, ElectricConstants.PowenetVoltageMax)) + If ssm Is Nothing Then Throw New ArgumentException("Steady State model was not supplied") + If compressorGearEfficiency < 0 OrElse altGearEfficiency > 1 Then _ + Throw New ArgumentException(String.Format("Compressor Gear efficiency must be between {0} and {1}", 0, 1)) 'Assign - _m0=m0 - _hvacMap= hvacMap + _m0 = m0 + _hvacMap = hvacMap _hvacInputs = hvacInputs - _alternatorGearEfficiency=altGearEfficiency + _alternatorGearEfficiency = altGearEfficiency _signals = signals - _steadyStateModel=ssm + _steadyStateModel = ssm _compressorGearEfficiency = compressorGearEfficiency - _powernetVoltage=powernetVoltage + _powernetVoltage = powernetVoltage + - End Sub - Public Function AveragePowerDemandAtCrankFromHVACMechanicalsWatts() As Single Implements IM1_AverageHVACLoadDemand.AveragePowerDemandAtCrankFromHVACMechanicalsWatts - + Public Function AveragePowerDemandAtCrankFromHVACMechanicalsWatts() As Single Implements IM1_AverageHVACLoadDemand.AveragePowerDemandAtCrankFromHVACMechanicalsWatts + Return _steadyStateModel.HVACMechanicalLoadPowerWatts / _compressorGearEfficiency @@ -61,15 +62,15 @@ Namespace Hvac End Function - Public Function AveragePowerDemandAtCrankFromHVACElectricsWatts() As Single Implements IM1_AverageHVACLoadDemand.AveragePowerDemandAtCrankFromHVACElectricsWatts + Public Function AveragePowerDemandAtCrankFromHVACElectricsWatts() As Single Implements IM1_AverageHVACLoadDemand.AveragePowerDemandAtCrankFromHVACElectricsWatts + - - Return _steadyStateModel.HVACElectricalLoadPowerWatts/ _m0.AlternatorsEfficiency() + Return _steadyStateModel.HVACElectricalLoadPowerWatts / _m0.AlternatorsEfficiency() End Function - Public Function HVACFuelingLitresPerHour() As Single Implements IM1_AverageHVACLoadDemand.HVACFuelingLitresPerHour + Public Function HVACFuelingLitresPerHour() As Single Implements IM1_AverageHVACLoadDemand.HVACFuelingLitresPerHour Return _steadyStateModel.HVACFuellingLitresPerHour diff --git a/VECTOAux/VectoAuxiliaries/ISignals.vb b/VECTOAux/VectoAuxiliaries/ISignals.vb index 27982bef76..de354bedbf 100644 --- a/VECTOAux/VectoAuxiliaries/ISignals.vb +++ b/VECTOAux/VectoAuxiliaries/ISignals.vb @@ -1,8 +1,6 @@ Public Interface ISignals - - - +Property PreExistingAuxPower As single Property EngineMotoringPower As single property EngineDrivelinePower as single property SmartElectrics As Boolean @@ -11,7 +9,7 @@ Property EngineSpeed as integer Property SmartPneumatics As Boolean Property TotalCycleTimeSeconds As Integer property EngineDrivelineTorque as single - - +Property Idle As Boolean +Property InNeutral As Boolean End Interface diff --git a/VECTOAux/VectoAuxiliaries/Signals.vb b/VECTOAux/VectoAuxiliaries/Signals.vb index c7fa5e1a8c..133f32a744 100644 --- a/VECTOAux/VectoAuxiliaries/Signals.vb +++ b/VECTOAux/VectoAuxiliaries/Signals.vb @@ -2,6 +2,8 @@ Public Class Signals Implements ISignals + + Public Property ClutchEngaged As Boolean Implements ISignals.ClutchEngaged Public Property EngineDrivelinePower As Single Implements ISignals.EngineDrivelinePower @@ -18,6 +20,12 @@ Implements ISignals Public Property TotalCycleTimeSeconds As Integer Implements ISignals.TotalCycleTimeSeconds + Public Property PreExistingAuxPower As Single Implements ISignals.PreExistingAuxPower + + Public Property Idle As Boolean Implements ISignals.Idle + + Public Property InNeutral As Boolean Implements ISignals.InNeutral + End Class diff --git a/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj b/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj index 542ab82cf5..caebee0376 100644 --- a/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj +++ b/VECTOAux/VectoAuxiliaries/VectoAuxiliaries.vbproj @@ -73,6 +73,9 @@ </ItemGroup> <ItemGroup> <Compile Include="AuxillaryEnvironment.vb" /> + <Compile Include="DownstreamModules\IM6.vb" /> + <Compile Include="DownstreamModules\IM7.vb" /> + <Compile Include="DownstreamModules\M7.vb" /> <Compile Include="Electrics\AlternatorMapValues.vb" /> <Compile Include="Electrics\AlternatorMap.vb" /> <Compile Include="Electrics\ElectricsUserInputsConfig.vb" /> @@ -103,6 +106,7 @@ <Compile Include="Hvac\IM1_AverageHVACLoadDemand.vb" /> <Compile Include="ISignals.vb" /> <Compile Include="IVectoInputs.vb" /> + <Compile Include="DownstreamModules\M6.vb" /> <Compile Include="Pneumatics\ActuationsKey.vb" /> <Compile Include="Pneumatics\IM3_AveragePneumaticLoadDemand.vb" /> <Compile Include="Pneumatics\M4_AirCompressor.vb" /> diff --git a/VECTOAux/VectoAuxiliariesTests/Mocks/M1_Mock.vb b/VECTOAux/VectoAuxiliariesTests/Mocks/M1_Mock.vb new file mode 100644 index 0000000000..55fe17eb92 --- /dev/null +++ b/VECTOAux/VectoAuxiliariesTests/Mocks/M1_Mock.vb @@ -0,0 +1,51 @@ + +Imports VectoAuxiliaries.Electrics +Imports VectoAuxiliaries.Pneumatics +Imports VectoAuxiliaries.Hvac +Imports VectoAuxiliaries.DownstreamModules + + +Public Class M1_Mock +Implements IM1_AverageHVACLoadDemand + +Public _AveragePowerDemandAtAlternatorFromHVACElectricsWatts As Single +public _AveragePowerDemandAtCrankFromHVACElectricsWatts As single +Public _AveragePowerDemandAtCrankFromHVACMechanicalsWatts As Single +Public _HVACFuelingLitresPerHour As single + + Public Function AveragePowerDemandAtAlternatorFromHVACElectricsWatts() As Single Implements IM1_AverageHVACLoadDemand.AveragePowerDemandAtAlternatorFromHVACElectricsWatts + Return AveragePowerDemandAtAlternatorFromHVACElectricsWatts + End Function + + Public Function AveragePowerDemandAtCrankFromHVACElectricsWatts() As Single Implements IM1_AverageHVACLoadDemand.AveragePowerDemandAtCrankFromHVACElectricsWatts + Return _AveragePowerDemandAtCrankFromHVACElectricsWatts + End Function + + Public Function AveragePowerDemandAtCrankFromHVACMechanicalsWatts() As Single Implements IM1_AverageHVACLoadDemand.AveragePowerDemandAtCrankFromHVACMechanicalsWatts + Return _AveragePowerDemandAtCrankFromHVACMechanicalsWatts + End Function + + Public Function HVACFuelingLitresPerHour() As Single Implements IM1_AverageHVACLoadDemand.HVACFuelingLitresPerHour + Return _HVACFuelingLitresPerHour + End Function + + +Public Sub new ( AveragePowerDemandAtAlternatorFromHVACElectricsWatts As Single, _ + AveragePowerDemandAtCrankFromHVACElectricsWatts As single, _ + AveragePowerDemandAtCrankFromHVACMechanicalsWatts As Single, _ + HVACFuelingLitresPerHour As single) + + 'Assign Values + _AveragePowerDemandAtAlternatorFromHVACElectricsWatts = AveragePowerDemandAtAlternatorFromHVACElectricsWatts + _AveragePowerDemandAtCrankFromHVACElectricsWatts = AveragePowerDemandAtCrankFromHVACElectricsWatts + _AveragePowerDemandAtCrankFromHVACMechanicalsWatts = AveragePowerDemandAtCrankFromHVACMechanicalsWatts + _HVACFuelingLitresPerHour = HVACFuelingLitresPerHour + + +End Sub + + + + +End Class + diff --git a/VECTOAux/VectoAuxiliariesTests/Mocks/M2_Mock.vb b/VECTOAux/VectoAuxiliariesTests/Mocks/M2_Mock.vb new file mode 100644 index 0000000000..d118d019ef --- /dev/null +++ b/VECTOAux/VectoAuxiliariesTests/Mocks/M2_Mock.vb @@ -0,0 +1,35 @@ +Imports VectoAuxiliaries.Electrics +Imports VectoAuxiliaries.Pneumatics +Imports VectoAuxiliaries.Hvac +Imports VectoAuxiliaries.DownstreamModules + +Public Class M2_Mock +Implements IM2_AverageElectricalLoadDemand + + +Public _GetAveragePowerAtCrankFromElectrics As Single +Public _GetAveragePowerDemandAtAlternator As Single + + + + Public Function GetAveragePowerAtCrankFromElectrics() As Single Implements IM2_AverageElectricalLoadDemand.GetAveragePowerAtCrankFromElectrics + Return _GetAveragePowerAtCrankFromElectrics + End Function + + Public Function GetAveragePowerDemandAtAlternator() As Single Implements IM2_AverageElectricalLoadDemand.GetAveragePowerDemandAtAlternator + Return _GetAveragePowerDemandAtAlternator + End Function + + + +Public Sub new ( GetAveragePowerAtCrankFromElectrics As Single,GetAveragePowerDemandAtAlternator As single ) + + + _GetAveragePowerAtCrankFromElectrics = GetAveragePowerAtCrankFromElectrics + _GetAveragePowerDemandAtAlternator = GetAveragePowerDemandAtAlternator + +End Sub + + +End Class + diff --git a/VECTOAux/VectoAuxiliariesTests/Mocks/M3_Mock.vb b/VECTOAux/VectoAuxiliariesTests/Mocks/M3_Mock.vb new file mode 100644 index 0000000000..292a83ed4c --- /dev/null +++ b/VECTOAux/VectoAuxiliariesTests/Mocks/M3_Mock.vb @@ -0,0 +1,32 @@ +Imports VectoAuxiliaries.Electrics +Imports VectoAuxiliaries.Pneumatics +Imports VectoAuxiliaries.Hvac +Imports VectoAuxiliaries.DownstreamModules + +Public Class M3_Mock + Implements IM3_AveragePneumaticLoadDemand + + public _GetAveragePowerDemandAtCrankFromPneumatics as single + public _TotalAirConsumedPerCycle as single + + + Public Function GetAveragePowerDemandAtCrankFromPneumatics() As Single Implements IM3_AveragePneumaticLoadDemand.GetAveragePowerDemandAtCrankFromPneumatics + Return _GetAveragePowerDemandAtCrankFromPneumatics + End Function + + Public Function TotalAirConsumedPerCycle() As Single Implements IM3_AveragePneumaticLoadDemand.TotalAirConsumedPerCycle + Return _TotalAirConsumedPerCycle + End Function + + +Public Sub new ( GetAveragePowerDemandAtCrankFromPneumatics As Single,TotalAirConsumedPerCycle As single ) + +_GetAveragePowerDemandAtCrankFromPneumatics= GetAveragePowerDemandAtCrankFromPneumatics +_TotalAirConsumedPerCycle = TotalAirConsumedPerCycle + +End Sub + + + +End Class + diff --git a/VECTOAux/VectoAuxiliariesTests/Mocks/M4_Mock.vb b/VECTOAux/VectoAuxiliariesTests/Mocks/M4_Mock.vb new file mode 100644 index 0000000000..4bade5bb19 --- /dev/null +++ b/VECTOAux/VectoAuxiliariesTests/Mocks/M4_Mock.vb @@ -0,0 +1,63 @@ +Imports VectoAuxiliaries.Electrics +Imports VectoAuxiliaries.Pneumatics +Imports VectoAuxiliaries.Hvac +Imports VectoAuxiliaries.DownstreamModules + +Public Class M4_Mock + Implements IM4_AirCompressor + + +Public Property _AveragePowerDemandPerCompressorUnitFlowRate As Single +Public Property _FlowRate As Single +Public Property _PowerCompressorOff As single +Public Property _PowerCompressorOn As Single +Public Property _PowerDifference As single + + Public Function GetAveragePowerDemandPerCompressorUnitFlowRate() As Single Implements IM4_AirCompressor.GetAveragePowerDemandPerCompressorUnitFlowRate + Return _AveragePowerDemandPerCompressorUnitFlowRate + End Function + + Public Function GetFlowRate() As Single Implements IM4_AirCompressor.GetFlowRate + Return _FlowRate + End Function + + Public Function GetPowerCompressorOff() As Single Implements IM4_AirCompressor.GetPowerCompressorOff + Return _PowerCompressorOff + End Function + + Public Function PowerCompressorOn() As Single Implements IM4_AirCompressor.GetPowerCompressorOn + Return _PowerCompressorOn + End Function + + Public Function GetPowerDifference() As Single Implements IM4_AirCompressor.GetPowerDifference + Return _PowerDifference + End Function + + + Public Sub new(AveragePowerDemandPerCompressorUnitFlowRate as single , _ + FlowRate As single, _ + PowerCompressorOff As Single, _ + PowerCompressorOn As Single, _ + PowerDifference As Single) + + _AveragePowerDemandPerCompressorUnitFlowRate = AveragePowerDemandPerCompressorUnitFlowRate + _FlowRate = FlowRate + _PowerCompressorOff = PowerCompressorOff + _PowerCompressorOn = PowerCompressorOn + _PowerDifference = PowerDifference + + End Sub + + + 'Non Essential + Public Function Initialise() As Boolean Implements IM4_AirCompressor.Initialise + Return true + End Function + + Public Property PulleyGearEfficiency As Single Implements IM4_AirCompressor.PulleyGearEfficiency + Public Property PulleyGearRatio As Single Implements IM4_AirCompressor.PulleyGearRatio + + + +End Class + diff --git a/VECTOAux/VectoAuxiliariesTests/Mocks/M5_Mock.vb b/VECTOAux/VectoAuxiliariesTests/Mocks/M5_Mock.vb new file mode 100644 index 0000000000..93b90a035b --- /dev/null +++ b/VECTOAux/VectoAuxiliariesTests/Mocks/M5_Mock.vb @@ -0,0 +1,46 @@ +Imports VectoAuxiliaries.Electrics +Imports VectoAuxiliaries.Pneumatics +Imports VectoAuxiliaries.Hvac +Imports VectoAuxiliaries.DownstreamModules + +Public Class M5_Mock + Implements IM5_SmartAlternatorSetGeneration + + + public property _AlternatorsGenerationPowerAtCrankIdleWatts as single + public property _AlternatorsGenerationPowerAtCrankOverrunWatts as single + public property _AlternatorsGenerationPowerAtCrankTractionOnWatts as single + + + Public Function AlternatorsGenerationPowerAtCrankIdleWatts() As Single Implements IM5_SmartAlternatorSetGeneration.AlternatorsGenerationPowerAtCrankIdleWatts + Return _AlternatorsGenerationPowerAtCrankIdleWatts + End Function + + Public Function AlternatorsGenerationPowerAtCrankOverrunWatts() As Single Implements IM5_SmartAlternatorSetGeneration.AlternatorsGenerationPowerAtCrankOverrunWatts + Return _AlternatorsGenerationPowerAtCrankOverrunWatts + End Function + + Public Function AlternatorsGenerationPowerAtCrankTractionOnWatts() As Single Implements IM5_SmartAlternatorSetGeneration.AlternatorsGenerationPowerAtCrankTractionOnWatts + Return _AlternatorsGenerationPowerAtCrankTractionOnWatts + End Function + + + Public Sub new () + + End Sub + + + Public Sub new ( AlternatorsGenerationPowerAtCrankIdleWatts as single, + AlternatorsGenerationPowerAtCrankOverrunWatts as single, + AlternatorsGenerationPowerAtCrankTractionOnWatts as single) + + _AlternatorsGenerationPowerAtCrankIdleWatts = AlternatorsGenerationPowerAtCrankIdleWatts + _AlternatorsGenerationPowerAtCrankOverrunWatts = AlternatorsGenerationPowerAtCrankOverrunWatts + _AlternatorsGenerationPowerAtCrankTractionOnWatts = AlternatorsGenerationPowerAtCrankTractionOnWatts + + + End Sub + + +End Class + diff --git a/VECTOAux/VectoAuxiliariesTests/Mocks/M6_Mock.vb b/VECTOAux/VectoAuxiliariesTests/Mocks/M6_Mock.vb new file mode 100644 index 0000000000..4b90846b15 --- /dev/null +++ b/VECTOAux/VectoAuxiliariesTests/Mocks/M6_Mock.vb @@ -0,0 +1,102 @@ + +Imports VectoAuxiliaries.Electrics +Imports VectoAuxiliaries.Pneumatics +Imports VectoAuxiliaries.Hvac +Imports VectoAuxiliaries.DownstreamModules + + +Public Class M6_Mock + Implements IM6 + + +Public Property _AveragePowerDemandAtCrankFromPneumatics As Single +public property _AvgPowerDemandAtCrankFromElectricsIncHVAC As single +public property _OverrunFlag As integer +public property _SmartElecAndPneumaticAirCompPowerGenAtCrank As single +public property _SmartElecAndPneumaticAltPowerGenAtCrank As single +public property _SmartElecAndPneumaticsCompressorFlag As integer +public property _SmartElecOnlyAltPowerGenAtCrank As single +public property _SmartPneumaticOnlyAirCompPowerGenAtCrank As single +public property _SmartPneumaticsOnlyCompressorFlag As integer + + + Public ReadOnly Property AveragePowerDemandAtCrankFromPneumatics As Single Implements IM6.AveragePowerDemandAtCrankFromPneumatics + Get + Return _AveragePowerDemandAtCrankFromPneumatics + End Get + + End Property + Public ReadOnly Property AvgPowerDemandAtCrankFromElectricsIncHVAC As Single Implements IM6.AvgPowerDemandAtCrankFromElectricsIncHVAC + Get + Return _AvgPowerDemandAtCrankFromElectricsIncHVAC + End Get + End Property + Public ReadOnly Property OverrunFlag As Integer Implements IM6.OverrunFlag + Get + Return OverrunFlag + End Get + End Property + Public ReadOnly Property SmartElecAndPneumaticAirCompPowerGenAtCrank As Single Implements IM6.SmartElecAndPneumaticAirCompPowerGenAtCrank + Get + Return _SmartElecAndPneumaticAirCompPowerGenAtCrank + End Get + End Property + Public ReadOnly Property SmartElecAndPneumaticAltPowerGenAtCrank As Single Implements IM6.SmartElecAndPneumaticAltPowerGenAtCrank + Get + Return _SmartElecAndPneumaticAltPowerGenAtCrank + End Get + End Property + Public ReadOnly Property SmartElecAndPneumaticsCompressorFlag As Integer Implements IM6.SmartElecAndPneumaticsCompressorFlag + Get + Return _SmartElecAndPneumaticsCompressorFlag + End Get + End Property + Public ReadOnly Property SmartElecOnlyAltPowerGenAtCrank As Single Implements IM6.SmartElecOnlyAltPowerGenAtCrank + Get + Return _SmartElecOnlyAltPowerGenAtCrank + End Get + End Property + Public ReadOnly Property SmartPneumaticOnlyAirCompPowerGenAtCrank As Single Implements IM6.SmartPneumaticOnlyAirCompPowerGenAtCrank + Get + return _SmartPneumaticOnlyAirCompPowerGenAtCrank + End Get + End Property + Public ReadOnly Property SmartPneumaticsOnlyCompressorFlag As Integer Implements IM6.SmartPneumaticsOnlyCompressorFlag + Get + Return _SmartPneumaticsOnlyCompressorFlag + End Get + End Property + + + Public Sub new() + + End Sub + + Public Sub new(_AveragePowerDemandAtCrankFromPneumatics As Single , _ + _AvgPowerDemandAtCrankFromElectricsIncHVAC As single , _ + _OverrunFlag As integer, _ + _SmartElecAndPneumaticAirCompPowerGenAtCrank As single , _ + _SmartElecAndPneumaticAltPowerGenAtCrank As single , _ + _SmartElecAndPneumaticsCompressorFlag As integer, _ + _SmartElecOnlyAltPowerGenAtCrank As single , _ + _SmartPneumaticOnlyAirCompPowerGenAtCrank As single , _ + _SmartPneumaticsOnlyCompressorFlag As integer) + + + _AveragePowerDemandAtCrankFromPneumatics = AveragePowerDemandAtCrankFromPneumatics + _AvgPowerDemandAtCrankFromElectricsIncHVAC = AvgPowerDemandAtCrankFromElectricsIncHVAC + _OverrunFlag = OverrunFlag + _SmartElecAndPneumaticAirCompPowerGenAtCrank = SmartElecAndPneumaticAirCompPowerGenAtCrank + _SmartElecAndPneumaticAltPowerGenAtCrank = SmartElecAndPneumaticAltPowerGenAtCrank + _SmartElecAndPneumaticsCompressorFlag = SmartElecAndPneumaticsCompressorFlag + _SmartElecOnlyAltPowerGenAtCrank = SmartElecOnlyAltPowerGenAtCrank + _SmartPneumaticOnlyAirCompPowerGenAtCrank = SmartPneumaticOnlyAirCompPowerGenAtCrank + _SmartPneumaticsOnlyCompressorFlag = SmartPneumaticsOnlyCompressorFlag + + + + End Sub + + +End Class + diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb index 348a2d6659..79bbe421c7 100644 --- a/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb +++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M2_AverageElectricalLoadTests.vb @@ -65,7 +65,7 @@ Namespace UnitTests Public Sub GetAveragePowerAtCrankTest() Dim target As M2_AverageElectricalLoadDemand = GetAverageElectricalDemandInstance() Dim expected As Single = 2302.69116 - Dim actual As Single = target.GetAveragePowerAtCrank() + Dim actual As Single = target.GetAveragePowerAtCrankFromElectrics() Assert.AreEqual(expected, actual) End Sub diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M6.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M6.vb new file mode 100644 index 0000000000..1b05d9d8e7 --- /dev/null +++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M6.vb @@ -0,0 +1,120 @@ +Imports VectoAuxiliaries.Electrics +Imports VectoAuxiliaries.Pneumatics +Imports VectoAuxiliaries.Hvac +Imports VectoAuxiliaries.DownstreamModules +Imports NUnit.Framework +Imports VectoAuxiliaries + +Namespace UnitTests + +<TestFixture()> +Public Class M6Test + +Private M1 As New M1_Mock(100, 200, 300, 50) +Private M2 As New M2_Mock(120, 130) +Private M3 As New M3_Mock(200, 5000) +Private M4 As New M4_Mock(100, 2, 200, 100, 100) +Private M5 As New M5_Mock(200, 50, 80) +Private Signals As New Signals() + +Private Function GetStandardInstanceM6() As IM6 + + M1 = New M1_Mock(100, 200, 300, 50) + M2 = New M2_Mock(120, 130) + M3 = New M3_Mock(200, 5000) + M4 = New M4_Mock(100, 2, 200, 100, 100) + M5 = New M5_Mock(200, 50, 80) + + Return New M6(M1,M2,M3,M4,M5,Signals) + +End Function + +Public Sub new () + +Signals.EngineMotoringPower=100 +Signals.EngineDrivelinePower=150 +Signals.PreExistingAuxPower=30 + + +End Sub + +<Test()> +Public Sub CreateNewM6Instance() + +Dim target As IM6 = GetStandardInstanceM6() + +Assert.IsNotNull( target) + +End Sub + +<Test()> +Public Sub SmartElectricalOnTest() + + Signals.SmartElectrics=True + + Dim target As Im6 = GetStandardInstanceM6() + + Dim OverRunFlag As Integer = target.OverrunFlag + Dim SmartElecAndPneumaticsCompressorFlag As Integer = target.SmartElecAndPneumaticsCompressorFlag + Dim SmartElectricalAndPneumaticAlternatorPowerGenAtCrank As Single = target.SmartElecAndPneumaticAltPowerGenAtCrank + Dim SmartElectricalAndPneumaticAirCompPowerGenAtCrank As Single = target.SmartElecAndPneumaticAirCompPowerGenAtCrank + Dim SmartElectricalOnlyAlternatorPowerGenAtCrank As Single = target.SmartElecOnlyAltPowerGenAtCrank + Dim AveragePowerDemandAtCrankFromPneumatics As Single = target.AveragePowerDemandAtCrankFromPneumatics + Dim SmartPneumaticsOnlyAirCompPowerGenAtCrank As Single = target.SmartPneumaticOnlyAirCompPowerGenAtCrank + Dim AveragePowerDemandatCrankFromElectricsInHVAC As Single = target.AvgPowerDemandAtCrankFromElectricsIncHVAC + Dim SmartPneumaticsOnlySmartCompressorFlag As Integer = target.SmartPneumaticsOnlyCompressorFlag + + Assert.AreEqual(0,OverRunFlag ) + Assert.AreEqual(0,SmartElecAndPneumaticsCompressorFlag ) + Assert.AreEqual(0,SmartElectricalAndPneumaticAlternatorPowerGenAtCrank) + Assert.AreEqual(200,SmartElectricalAndPneumaticAirCompPowerGenAtCrank ) + Assert.AreEqual(0,SmartElectricalOnlyAlternatorPowerGenAtCrank ) + Assert.AreEqual(200,AveragePowerDemandAtCrankFromPneumatics ) + Assert.AreEqual(200,SmartPneumaticsOnlyAirCompPowerGenAtCrank ) + Assert.AreEqual(320,AveragePowerDemandatCrankFromElectricsInHVAC ) + Assert.AreEqual(0,SmartPneumaticsOnlySmartCompressorFlag ) + +End Sub + + +<Test()> +Public Sub SmartElectricalOffTest() + + Signals.SmartElectrics=true + Signals.EngineDrivelinePower=0 + Signals.EngineMotoringPower=0 + + Dim target As Im6 = GetStandardInstanceM6() + + Dim OverRunFlag As Integer = target.OverrunFlag + Dim SmartElecAndPneumaticsCompressorFlag As Integer = target.SmartElecAndPneumaticsCompressorFlag + Dim SmartElectricalAndPneumaticAlternatorPowerGenAtCrank As Single = target.SmartElecAndPneumaticAltPowerGenAtCrank + Dim SmartElectricalAndPneumaticAirCompPowerGenAtCrank As Single = target.SmartElecAndPneumaticAirCompPowerGenAtCrank + Dim SmartElectricalOnlyAlternatorPowerGenAtCrank As Single = target.SmartElecOnlyAltPowerGenAtCrank + Dim AveragePowerDemandAtCrankFromPneumatics As Single = target.AveragePowerDemandAtCrankFromPneumatics + Dim SmartPneumaticsOnlyAirCompPowerGenAtCrank As Single = target.SmartPneumaticOnlyAirCompPowerGenAtCrank + Dim AveragePowerDemandatCrankFromElectricsInHVAC As Single = target.AvgPowerDemandAtCrankFromElectricsIncHVAC + Dim SmartPneumaticsOnlySmartCompressorFlag As Integer = target.SmartPneumaticsOnlyCompressorFlag + + Assert.AreEqual(0,OverRunFlag ) + Assert.AreEqual(0,SmartElecAndPneumaticsCompressorFlag ) + Assert.AreEqual(0,SmartElectricalAndPneumaticAlternatorPowerGenAtCrank) + Assert.AreEqual(200,SmartElectricalAndPneumaticAirCompPowerGenAtCrank ) + Assert.AreEqual(0,SmartElectricalOnlyAlternatorPowerGenAtCrank ) + Assert.AreEqual(200,AveragePowerDemandAtCrankFromPneumatics ) + Assert.AreEqual(200,SmartPneumaticsOnlyAirCompPowerGenAtCrank ) + Assert.AreEqual(320,AveragePowerDemandatCrankFromElectricsInHVAC ) + Assert.AreEqual(0,SmartPneumaticsOnlySmartCompressorFlag ) + + +End Sub + + +End Class + + + +End Namespace + + + diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/M7.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/M7.vb new file mode 100644 index 0000000000..7a61ed1d83 --- /dev/null +++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/M7.vb @@ -0,0 +1,107 @@ +Imports VectoAuxiliaries.Electrics +Imports VectoAuxiliaries.Pneumatics +Imports VectoAuxiliaries.Hvac +Imports VectoAuxiliaries.DownstreamModules +Imports NUnit.Framework +Imports VectoAuxiliaries + +Namespace UnitTests + +<TestFixture()> _ +Public Class M7Test + +private M5 As M5_Mock +Private M6 As M6_MOCK +Private Signals As ISignals + +Public Sub new () + +M5 = New M5_Mock( 100,110,120) +M6 = New M6_Mock(100,0,0,110,120,0,130,140,150) +Signals = New Signals() + +End Sub + +<Test()> +Public Sub CreateNew_M7InstanceTest() + Dim target As IM7 = New M7(M5,M6,Signals) + Assert.IsNotNull(target) +End Sub + +'IP1 M5 : Alternators Generation Power At Crank (Traction ) (Single ) +'IP2 M5 : Alternators Generation Power At Crank (Idle ) (Single ) +'IP3 Signals : IDLE (Boolean ) +'IP4 M6 :Overrun Flag (Integer ) +'IP5 Signals : Clutch engaged (Boolean ) +'IP6 Signals : InNuetral (Boolean ) +'IP7 M6 : SmartElectricalAndPneumatic:AlternatorPowerGen@Crank +'IP8 M6 : SmartElectricalAndPneumatic:AirCompPowerGen@Crank +'IP9 M6 : SmartElectricalOnly:AlternatorPowerGen@Crank +'IP10 M6 : AveragePowerDemand@CrankFromPneumatics +'IP11 M6 : SmartPneumaticsOnly:AirComprPowerGen@Crank +'OP1 Op1 :Smart Electrical & Pneumatic Aux : Alternator power gen @ Crank +'OP2 OP2 :Smart Electrical & Pneumatic Aux : Air comp power gen @ Crank +'OP3 OP3 :Smart Electrical Aux : Alternator Power Gen @ Crank +'OP4 OP4 :Smart Electrical Aux : Ait Compressor Power Gen @ Crank +<Test()> +Public Sub InputOutputTests(IP1 As Single, _ + IP2 As Single, _ + IP3 As Boolean, _ + IP4 As Single, _ + IP5 As Boolean, _ + IP6 As Boolean, _ + IP7 As Single, _ + IP8 As Single, _ + IP9 As single, _ + IP10 As Single, _ + IP11 As Single, _ + IP12 As Single, _ + IP13 As Single, _ + OP1 As Single, _ + OP2 As Single, _ + OP3 As Single, _ + OP4 As Single ) + + 'Instantiate new mocks. + M5 = New M5_Mock() + M6 = New M6_Mock() + Signals = New Signals + + 'Assign from TestCaseValues + M5._AlternatorsGenerationPowerAtCrankTractionOnWatts=IP1 + M5._AlternatorsGenerationPowerAtCrankIdleWatts=IP2 + Signals.Idle=IP3 + M6._OverrunFlag=IP4 + Signals.ClutchEngaged=IP5 + Signals.InNeutral=IP6 + M6._SmartElecAndPneumaticAltPowerGenAtCrank=IP7 + M6._SmartElecAndPneumaticAirCompPowerGenAtCrank=IP8 + M6._SmartElecOnlyAltPowerGenAtCrank=IP9 + M6._AveragePowerDemandAtCrankFromPneumatics=IP10 + M6._SmartPneumaticOnlyAirCompPowerGenAtCrank=IP11 + + + 'Create Instance of M7 from + Dim target As IM7 = New M7(M5,M6,Signals) + + + + Assert.AreEqual(OP1, target.SmartElectricalAndPneumaticAuxAltPowerGenAtCrank) + Assert.AreEqual(OP2, target.SmartElectricalAndPneumaticAuxAirCompPowerGenAtCrank) + Assert.AreEqual(OP3, target.SmartElectricalOnlyAuxAltPowerGenAtCrank) + Assert.AreEqual(OP4, target.SmartPneumaticOnlyAuxAirCompPowerGenAtCrank) + + + Assert.IsNotNull(target) + +End Sub + + +End Class + + + +End Namespace + + + diff --git a/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj b/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj index f2f55be120..4612475235 100644 --- a/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj +++ b/VECTOAux/VectoAuxiliariesTests/VectoAuxiliariesTests.vbproj @@ -88,6 +88,12 @@ </ItemGroup> <ItemGroup> <Compile Include="Mocks\HVACMapMock.vb" /> + <Compile Include="Mocks\M1_Mock.vb" /> + <Compile Include="Mocks\M2_Mock.vb" /> + <Compile Include="Mocks\M3_Mock.vb" /> + <Compile Include="Mocks\M4_Mock.vb" /> + <Compile Include="Mocks\M5_Mock.vb" /> + <Compile Include="Mocks\M6_Mock.vb" /> <Compile Include="UnitTests\M0_5_SmartAlternatorSetEfficiencyTests.vb" /> <Compile Include="UnitTests\M0_NonSmart_AlternatorsSetEfficiencyTests.vb" /> <Compile Include="UnitTests\AveragePneumaticLoadDemandTests.vb" /> @@ -96,6 +102,8 @@ <Compile Include="UnitTests\M1_AverageHVACLoadDemandTests.vb" /> <Compile Include="UnitTests\M1_HVACAverageLoadDemandTests.vb" /> <Compile Include="UnitTests\M5_SmartAlternatorSetGenerationTests.vb" /> + <Compile Include="UnitTests\M6.vb" /> + <Compile Include="UnitTests\M7.vb" /> <Compile Include="UnitTests\PneumaticActuationsMapTests.vb" /> <Compile Include="UnitTests\AirCompressorTests.vb" /> <Compile Include="UnitTests\AlternatorMapTests.vb" /> -- GitLab