diff --git a/VECTO/GUI/BatteryForm.vb b/VECTO/GUI/BatteryForm.vb index 4fef46185e2ed2620a984dd4bb13595d5f129854..c7ecaefbf743ae504aa2bb7a255f1d6fe13433cf 100644 --- a/VECTO/GUI/BatteryForm.vb +++ b/VECTO/GUI/BatteryForm.vb @@ -433,7 +433,7 @@ Public Class BatteryForm Try Dim riFile As String = If(Not String.IsNullOrWhiteSpace(_batteryFile), Path.Combine(Path.GetDirectoryName(_batteryFile), tbRiCurve.Text), tbRiCurve.Text) - If File.Exists(riFile) Then riCurve = BatteryInternalResistanceReader.Create(VectoCSVFile.Read(riFile)) + If File.Exists(riFile) Then riCurve = BatteryInternalResistanceReader.Create(VectoCSVFile.Read(riFile), false) Catch ex As Exception End Try diff --git a/VectoCore/VectoCore/InputData/Reader/ComponentData/BatteryInternalResistanceReader.cs b/VectoCore/VectoCore/InputData/Reader/ComponentData/BatteryInternalResistanceReader.cs index 6c765c12bcb531232c4a8d9325dfca8e7a91bebf..b58c25fd1f8a48e7eb01a3a995443bfe863035d9 100644 --- a/VectoCore/VectoCore/InputData/Reader/ComponentData/BatteryInternalResistanceReader.cs +++ b/VectoCore/VectoCore/InputData/Reader/ComponentData/BatteryInternalResistanceReader.cs @@ -13,9 +13,9 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData { public static class BatteryInternalResistanceReader { - public static InternalResistanceMap Create(DataTable data) + public static InternalResistanceMap Create(DataTable data, bool inmOhm) { - if (!(data.Columns.Count == 2 || data.Columns.Count == 4 || data.Columns.Count != 5)) { + if (!(data.Columns.Count == 2 || data.Columns.Count == 4 || data.Columns.Count == 5)) { throw new VectoException( "Internal Resistance Map data must contain either two, four or five columns: {0}, {1}", Fields.StateOfCharge, Fields.InternalResistance); @@ -54,7 +54,7 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData Tuple.Create(20.SI<Second>(), Fields.InternalResistance_20), }; if (data.Columns.Count == col1.Length + 1) { - return ReadInternalResistanceMap(data, col1); + return ReadInternalResistanceMap(data, col1, inmOhm); } var col2 = new[] { @@ -64,14 +64,14 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData Tuple.Create(120.SI<Second>(), Fields.InternalResistance_120) }; if (data.Columns.Count == col2.Length + 1) { - return ReadInternalResistanceMap(data, col2); + return ReadInternalResistanceMap(data, col2, inmOhm); } throw new VectoException("Failed to read InternalResistanceMap"); } - private static InternalResistanceMap ReadInternalResistanceMap(DataTable data, Tuple<Second, string>[] col1) + private static InternalResistanceMap ReadInternalResistanceMap(DataTable data, Tuple<Second, string>[] col1, bool inmOhm) { if ((!data.Columns.Contains(Fields.StateOfCharge) || !col1.All(x => data.Columns.Contains(x.Item2)))) { for (var i = 0; i < col1.Length; i++) { @@ -83,10 +83,10 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData data.Columns.Cast<DataColumn>().Select(c => c.ColumnName).Join()); } - + var factor = inmOhm ? 1000 : 1; return new InternalResistanceMap(data.Rows.Cast<DataRow>().Select(row => { var values = col1.Select(x => - row.Table.Columns.Contains(x.Item2) ? Tuple.Create(x.Item1, row.ParseDouble(x.Item2).SI<Ohm>()) : null) + row.Table.Columns.Contains(x.Item2) ? Tuple.Create(x.Item1, row.ParseDouble(x.Item2).SI<Ohm>() * factor) : null) .Where(x => x != null).ToList(); return new InternalResistanceMap.InternalResistanceMapEntry() { SoC = row.ParseDouble(Fields.StateOfCharge) / 100, @@ -111,9 +111,9 @@ namespace TUGraz.VectoCore.InputData.Reader.ComponentData } - public static InternalResistanceMap Create(Stream data) + public static InternalResistanceMap Create(Stream data, bool inmOhm) { - return Create(VectoCSVFile.ReadStream(data)); + return Create(VectoCSVFile.ReadStream(data), inmOhm); } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs index 173d9ffc6b09da767d0bd888648085e13c7902ed..23568f436bcea11589e75b46c97c1e252715bbe9 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs @@ -848,7 +848,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter MaxCurrent = BatteryMaxCurrentReader.Create(b.MaxCurrentMap), Capacity = b.Capacity, InternalResistance = - BatteryInternalResistanceReader.Create(b.InternalResistanceCurve), + BatteryInternalResistanceReader.Create(b.InternalResistanceCurve, false), SOCMap = BatterySOCReader.Create(b.VoltageCurve), })); } diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs index 5afe571678dd687776015c3fd2c27f05cd3ef9ac..c76efbaf737572708e76671b5efb9f367b4cb4d2 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs @@ -31,6 +31,7 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Runtime.CompilerServices; using TUGraz.VectoCommon.InputData; @@ -52,7 +53,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { public class EngineeringModeVectoRunDataFactory : LoggingObject, IVectoRunDataFactory { - private static readonly Dictionary<string, DrivingCycleData> CyclesCache = new Dictionary<string, DrivingCycleData>(); + private static readonly Dictionary<string, Tuple<DrivingCycleData, DateTime>> CyclesCache = new Dictionary<string, Tuple<DrivingCycleData, DateTime>>(); protected readonly IEngineeringInputDataProvider InputDataProvider; @@ -180,7 +181,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl : null; - var drivingCycle = CyclesCache.GetOrAdd(cycle.CycleData.Source, _ => DrivingCycleDataReader.ReadFromDataTable(cycle.CycleData, cycle.Name, crossWindRequired)); + var drivingCycle = GetDrivingCycle(cycle, crossWindRequired); var electricMachines = dao.CreateElectricMachines(vehicle.Components.ElectricMachines, @@ -227,6 +228,23 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl } + private DrivingCycleData GetDrivingCycle(ICycleData cycle, bool crossWindRequired) + { + var lastModified = File.GetLastWriteTimeUtc(cycle.CycleData.Source); + if (CyclesCache.TryGetValue(cycle.CycleData.Source, out var lookup)) { + if (lastModified.Equals(lookup.Item2)) { + return lookup.Item1; + } + } + + lock (CyclesCache) { + var cycleData = + DrivingCycleDataReader.ReadFromDataTable(cycle.CycleData, cycle.Name, crossWindRequired); + CyclesCache[cycle.CycleData.Source] = Tuple.Create(cycleData, lastModified); + return cycleData; + } + } + private IEnumerable<VectoRunData> GetBatteryElectricVehicleRunData() { foreach (var cycle in InputDataProvider.JobInputData.Cycles) @@ -286,7 +304,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl CrossWindCorrectionMode.VAirBetaLookupTable; //var ptoTransmissionData = dao.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData); - var drivingCycle = CyclesCache.GetOrAdd(cycle.CycleData.Source, _=>DrivingCycleDataReader.ReadFromDataTable(cycle.CycleData, cycle.Name, crossWindRequired)); + var drivingCycle = GetDrivingCycle(cycle, crossWindRequired); var vehicleData = dao.CreateVehicleData(vehicle); yield return new VectoRunData @@ -377,7 +395,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl : null; - var drivingCycle = CyclesCache.GetOrAdd(cycle.CycleData.Source, _=> DrivingCycleDataReader.ReadFromDataTable(cycle.CycleData, cycle.Name, crossWindRequired)); + var drivingCycle = GetDrivingCycle(cycle, crossWindRequired); var battery = dao.CreateBatteryData(vehicle.Components.ElectricStorage, vehicle.InitialSOC); var superCap = dao.CreateSuperCapData(vehicle.Components.ElectricStorage, vehicle.InitialSOC); diff --git a/VectoCore/VectoCore/Resources/Declaration/WHTC-Weighting-Factors.csv b/VectoCore/VectoCore/Resources/Declaration/WHTC-Weighting-Factors.csv index 3e8717cb22d5cc30275b7ddd8a67e6bace92bc65..2404bbed757f848f7cdbcf795ae2a6e689c5a3cd 100644 --- a/VectoCore/VectoCore/Resources/Declaration/WHTC-Weighting-Factors.csv +++ b/VectoCore/VectoCore/Resources/Declaration/WHTC-Weighting-Factors.csv @@ -1,4 +1,4 @@ Part , Long haul , Regional delivery , Urban delivery , Municipal utility , Construction , Heavy Urban , Urban , Suburban , Interurban , Coach -Urban , 0.11 , 0.17 , 0.69 , 0.98 , 0.62 , 1.0 , 1.0 , 1.0 , 0.45 , 0.0 +Urban , 0.0 , 0.17 , 0.69 , 0.98 , 0.62 , 1.0 , 1.0 , 1.0 , 0.45 , 0.0 Rural , 0.0 , 0.3 , 0.27 , 0.0 , 0.32 , 0.0 , 0.0 , 0.0 , 0.36 , 0.22 -Motorway , 0.89 , 0.53 , 0.04 , 0.02 , 0.06 , 0.0 , 0.0 , 0.0 , 0.19 , 0.78 +Motorway , 1.0 , 0.53 , 0.04 , 0.02 , 0.06 , 0.0 , 0.0 , 0.0 , 0.19 , 0.78 diff --git a/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs b/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs index 2e0bf3c6edfefa18fa9396f5b1f727d2bbd30761..09a94a6622c2ba3aa597b866a8bf2a1ba38dbe59 100644 --- a/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs +++ b/VectoCore/VectoCoreTest/FileIO/JsonReadHybridTest.cs @@ -223,7 +223,7 @@ namespace TUGraz.VectoCore.Tests.FileIO Assert.AreEqual(0.8, engineering.JobInputData.Vehicle.InitialSOC); var bat = engineering.JobInputData.Vehicle.Components.ElectricStorage.ElectricStorageElements.First().REESSPack as IBatteryPackEngineeringInputData; - var ri = BatteryInternalResistanceReader.Create(bat.InternalResistanceCurve); + var ri = BatteryInternalResistanceReader.Create(bat.InternalResistanceCurve, false); var imax = BatteryMaxCurrentReader.Create(bat.MaxCurrentMap); Assert.NotNull(bat); diff --git a/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs b/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs index c91a227eed6757803e22e7409b17c65462fd422b..abf04b17883cb5523e8b52d7fdf4fe90f17c8706 100644 --- a/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs +++ b/VectoCore/VectoCoreTest/Integration/BatteryElectric/BatteryElectricTest.cs @@ -49,6 +49,7 @@ namespace TUGraz.VectoCore.Tests.Integration.BatteryElectric protected const string BEV_E2_Job_Cont30kW = @"TestData\BatteryElectric\GenericVehicleB2\BEV_ENG_Cont30kW.vecto"; protected const string BEV_E2_APTN_Job = @"TestData\BatteryElectric\GenericVehicleB2_APTN\BEV_B2_Group5LH_rl_APTN.vecto"; + protected const string BEV_E2_APTS_Job = @"TestData\BatteryElectric\GenericVehicleB2_AT\BEV_B2_Group5LH_rl_APTS.vecto"; protected const string BEV_E2_APTP_Job = @"TestData\BatteryElectric\GenericVehicleB2_AT\BEV_B2_Group5LH_rl_APTP.vecto"; diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs b/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs index e8f925e3bfc43986056379be6ac6727f75a93c9a..2c545a2d642c0da382a41797292650ce84a20ff2 100644 --- a/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs +++ b/VectoCore/VectoCoreTest/Integration/Declaration/EngineInputDataTests.cs @@ -63,10 +63,10 @@ namespace TUGraz.VectoCore.Tests.Integration.Declaration xmlInputReader = _kernel.Get<IXMLInputDataReader>(); } - [TestCase(null, 1.0, 45.555177, TestName = "Engine CF - NONE"), - TestCase("CFRegPer", 1.2, 45.555177 * 1.2, TestName = "Engine CF - CFRegPer"), - TestCase("BFColdHot", 1.2, 45.555177 * 1.2, TestName = "Engine CF - BFColdHod"), - TestCase("CFNCV", 1.2, 45.555177, TestName = "Engine CF - CFNCV") // has no influence - only for documentation purpose + [TestCase(null, 1.0, 45.605835, TestName = "Engine CF - NONE"), + TestCase("CFRegPer", 1.2, 45.605835 * 1.2, TestName = "Engine CF - CFRegPer"), + TestCase("BFColdHot", 1.2, 45.605835 * 1.2, TestName = "Engine CF - BFColdHod"), + TestCase("CFNCV", 1.2, 45.605835, TestName = "Engine CF - CFNCV") // has no influence - only for documentation purpose ] public void TestEngineCorrectionFactors(string correctionFactor, double value, double expectedFc) { diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs index eb68e1cccf16e4a8f89198de9244b33feb0d5387..b9a879cade91ac8ed597c404028e856d094fb63a 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs @@ -130,9 +130,9 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration var factors = new { - urban = new[] { 0.11, 0.17, 0.69, 0.98, 0.62, 1.0, 1.0, 1.0, 0.45, 0.0 }, + urban = new[] { 0.0, 0.17, 0.69, 0.98, 0.62, 1.0, 1.0, 1.0, 0.45, 0.0 }, rural = new[] { 0.0, 0.3, 0.27, 0.0, 0.32, 0.0, 0.0, 0.0, 0.36, 0.22 }, - motorway = new[] { 0.89, 0.53, 0.04, 0.02, 0.06, 0.0, 0.0, 0.0, 0.19, 0.78 } + motorway = new[] { 1.0, 0.53, 0.04, 0.02, 0.06, 0.0, 0.0, 0.0, 0.19, 0.78 } }; var r = new Random(); @@ -150,7 +150,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration [TestCase] public void WHTCLookupTestLongHaul() { - var expected = 1.015501; + var expected = 1.0057; var rural = 1.0265; var urban = 1.0948; diff --git a/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs b/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs index 7acbd28b72296706620f45cacc4cd85217f5325b..0dbc656f2cd038a38be872715789ae68e9e4bc9e 100644 --- a/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs +++ b/VectoCore/VectoCoreTest/Models/EngineeringMode/EngineeringModeBusAuxTest.cs @@ -900,7 +900,7 @@ namespace TUGraz.VectoCore.Tests.Models.EngineeringMode MaxSOC = REESS_MaxSoC, SOCMap = BatterySOCReader.Create("SOC,V\n0,590\n100,658".ToStream()), InternalResistance = - BatteryInternalResistanceReader.Create("SoC, Ri\n0,0.02\n100,0.02".ToStream()), + BatteryInternalResistanceReader.Create("SoC, Ri\n0,0.02\n100,0.02".ToStream(), false), MaxCurrent = BatteryMaxCurrentReader.Create( "SOC, I_charge, I_discharge\n0, 375, 573\n100, 375, 375".ToStream()), }), diff --git a/VectoCore/VectoCoreTest/Models/Simulation/DeclarationSimulationFactoryTest.cs b/VectoCore/VectoCoreTest/Models/Simulation/DeclarationSimulationFactoryTest.cs index d31b86a035075047c37c57e80dfe8b8800575b46..334db43b738e41be88241e69db0f216ef332987e 100644 --- a/VectoCore/VectoCoreTest/Models/Simulation/DeclarationSimulationFactoryTest.cs +++ b/VectoCore/VectoCoreTest/Models/Simulation/DeclarationSimulationFactoryTest.cs @@ -105,7 +105,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var runs = factory.SimulationRuns().ToArray(); - var expected = new[] { 1.018867, 1.018867, 1.018867, 1.018867, 1.013299, 1.013299, 1.013299, 1.013299 }; + var expected = new[] { 1.02, 1.02, 1.02, 1.02, 1.013299, 1.013299, 1.013299, 1.013299 }; for (var i = 0; i < 8; i++) Assert.AreEqual( diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/BatteryTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/BatteryTest.cs index 4a0b1e9bd816f0840df1a3ad8b55b23fedbdc42a..a1da0d0f84636af6444e8d8064fbca05029b7b0e 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponent/BatteryTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/BatteryTest.cs @@ -224,7 +224,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent MaxSOC = REESS_MaxSoC, SOCMap = BatterySOCReader.Create("SOC,V\n0,590\n100,658".ToStream()), InternalResistance = - BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream()), + BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream(), false), MaxCurrent = BatteryMaxCurrentReader.Create( "SOC, I_charge, I_discharge\n0, 375, 573\n100, 375, 375".ToStream()), }) @@ -296,6 +296,34 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent } } + + [TestCase(0.5, 0.5, 5000)] + public void BatteryTimeDependentInternalResistanceTest_120s(double initialSoC, double dt, + double powerDemand) + { + var r1 = 0.02; + var r2 = 0.04; + var r3 = 0.1; + var r4 = 0.15; + + var batteryData = new BatterySystemData() { + Batteries = new List<Tuple<int, BatteryData>>() { + Tuple.Create(0, new BatteryData() { + Capacity = REESS_Capacity.SI(Unit.SI.Ampere.Hour).Cast<AmpereSecond>(), + MinSOC = REESS_MinSoC, + MaxSOC = REESS_MaxSoC, + SOCMap = BatterySOCReader.Create("SOC,V\n0,590\n100,658".ToStream()), + InternalResistance = + BatteryInternalResistanceReader.Create( + $"SoC, Ri-2, Ri-10, Ri-20, Ri-120\n0, {r1}, {r2}, {r3},{r4}\n100, {r1}, {r2}, {r3}, {r4}".ToStream(), + false), + MaxCurrent = BatteryMaxCurrentReader.Create( + "SOC, I_charge, I_discharge\n0, 375, 573\n100, 375, 375".ToStream()), + }) + } + }; + } + [TestCase(0.5, 0.5, 5000), TestCase(0.5, 0.5, -5000)] public void BatteryTimeDependentInternalResistanceTest_LoadChanges(double initialSoC, double dt, double powerDemand) @@ -312,7 +340,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent MaxSOC = REESS_MaxSoC, SOCMap = BatterySOCReader.Create("SOC,V\n0,590\n100,658".ToStream()), InternalResistance = - BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream()), + BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream(), false), MaxCurrent = BatteryMaxCurrentReader.Create( "SOC, I_charge, I_discharge\n0, 375, 573\n100, 375, 375".ToStream()), }) @@ -409,7 +437,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent MaxSOC = REESS_MaxSoC, SOCMap = BatterySOCReader.Create("SOC,V\n0,590\n100,658".ToStream()), InternalResistance = - BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream()), + BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream(), false), MaxCurrent = BatteryMaxCurrentReader.Create( "SOC, I_charge, I_discharge\n0, 375, 573\n100, 375, 375".ToStream()), }), @@ -419,7 +447,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent MaxSOC = REESS_MaxSoC, SOCMap = BatterySOCReader.Create("SOC,V\n0,590\n100,658".ToStream()), InternalResistance = - BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream()), + BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream(), false), MaxCurrent = BatteryMaxCurrentReader.Create( "SOC, I_charge, I_discharge\n0, 375, 573\n100, 375, 375".ToStream()), }), @@ -429,7 +457,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent MaxSOC = REESS_MaxSoC, SOCMap = BatterySOCReader.Create("SOC,V\n0,590\n100,658".ToStream()), InternalResistance = - BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream()), + BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream(), false), MaxCurrent = BatteryMaxCurrentReader.Create( "SOC, I_charge, I_discharge\n0, 375, 573\n100, 375, 375".ToStream()), }), @@ -439,7 +467,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent MaxSOC = REESS_MaxSoC, SOCMap = BatterySOCReader.Create("SOC,V\n0,590\n100,658".ToStream()), InternalResistance = - BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream()), + BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream(), false), MaxCurrent = BatteryMaxCurrentReader.Create( "SOC, I_charge, I_discharge\n0, 375, 573\n100, 375, 375".ToStream()), }) @@ -527,7 +555,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent MaxSOC = REESS_MaxSoC, SOCMap = BatterySOCReader.Create("SOC,V\n0,590\n100,658".ToStream()), InternalResistance = - BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream()), + BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream(), false), MaxCurrent = BatteryMaxCurrentReader.Create( "SOC, I_charge, I_discharge\n0, 375, 573\n100, 375, 375".ToStream()), }), @@ -537,7 +565,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent MaxSOC = REESS_MaxSoC, SOCMap = BatterySOCReader.Create("SOC,V\n0,590\n100,658".ToStream()), InternalResistance = - BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream()), + BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream(), false), MaxCurrent = BatteryMaxCurrentReader.Create( "SOC, I_charge, I_discharge\n0, 375, 573\n100, 375, 375".ToStream()), }), @@ -547,7 +575,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent MaxSOC = REESS_MaxSoC, SOCMap = BatterySOCReader.Create("SOC,V\n0,590\n100,658".ToStream()), InternalResistance = - BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream()), + BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream(), false), MaxCurrent = BatteryMaxCurrentReader.Create( "SOC, I_charge, I_discharge\n0, 375, 573\n100, 375, 375".ToStream()), }), @@ -557,7 +585,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent MaxSOC = REESS_MaxSoC, SOCMap = BatterySOCReader.Create("SOC,V\n0,590\n100,658".ToStream()), InternalResistance = - BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream()), + BatteryInternalResistanceReader.Create($"SoC, Ri-2, Ri-10, Ri-20\n0, {r1}, {r2}, {r3}\n100, {r1}, {r2}, {r3}".ToStream(), false), MaxCurrent = BatteryMaxCurrentReader.Create( "SOC, I_charge, I_discharge\n0, 375, 573\n100, 375, 375".ToStream()), })