diff --git a/VectoCore/VectoCore/Models/GenericModelData/GenericBusSuperCapData.cs b/VectoCore/VectoCore/Models/GenericModelData/GenericBusSuperCapData.cs index 373429a2b57b034a5a8d867f4f252104817b2812..158fa868c9a5148bca27109c84eebbbcdffa16c9 100644 --- a/VectoCore/VectoCore/Models/GenericModelData/GenericBusSuperCapData.cs +++ b/VectoCore/VectoCore/Models/GenericModelData/GenericBusSuperCapData.cs @@ -7,7 +7,7 @@ namespace TUGraz.VectoCore.Models.GenericModelData { public class GenericBusSuperCapData { - public static Ohm InternalResistance = 0.015.SI<Ohm>(); + public static Ohm InternalResistance = 0.00375.SI<Ohm>(); // 0.015.SI<Ohm>(); public static Volt ReferenceMaximumVoltage = 2.7.SI<Volt>(); public static Farad CapacitanceReference = 3000.SI<Farad>(); @@ -32,10 +32,12 @@ namespace TUGraz.VectoCore.Models.GenericModelData private Ohm GetInternalResistance(ISuperCapDeclarationInputData superCapData) { - return (InternalResistance.Value() * - ((superCapData.MaxVoltage.Value() - superCapData.MinVoltage.Value()) / - (0.55 * ReferenceMaximumVoltage.Value())) * - (CapacitanceReference.Value() / superCapData.Capacity.Value())).SI<Ohm>(); + var estCellCnt = (superCapData.MaxVoltage / ReferenceMaximumVoltage).Value(); + + return InternalResistance / estCellCnt * + ((superCapData.MaxVoltage - superCapData.MinVoltage) / + (0.55 * ReferenceMaximumVoltage)) * + (CapacitanceReference.Value() / superCapData.Capacity.Value()); } } } diff --git a/VectoCore/VectoCoreTest/Models/Declaration/TestGenericBusEMotorData.cs b/VectoCore/VectoCoreTest/Models/Declaration/TestGenericBusEMotorData.cs index 58a46e6fb05db04aaf9a0a3cb26342cf64d37732..26e563f7ca4f0ac064c372df0f2a2169c980dfa9 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/TestGenericBusEMotorData.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/TestGenericBusEMotorData.cs @@ -218,7 +218,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration Assert.AreEqual(100, superCapData.MaxCurrentCharge.Value()); Assert.AreEqual(-100, superCapData.MaxCurrentDischarge.Value()); Assert.AreEqual(initialSoC , superCapData.InitialSoC); - Assert.AreEqual(270.2703, superCapData.InternalResistance.Value(), 1e-4); + Assert.AreEqual(0.55282, superCapData.InternalResistance.Value(), 1e-4); } } }