From b008bf4b7c651e4d470a9a63a680ac7705afa70f Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <quaritsch@ivt.tugraz.at> Date: Mon, 15 May 2023 16:18:46 +0200 Subject: [PATCH] adding serialization methods for battery parameters (necessary for exporting JSON data to validate factor method params) --- .../ElectricComponents/Battery/BatteryData.cs | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricComponents/Battery/BatteryData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricComponents/Battery/BatteryData.cs index 4a683a084a..a95ccf0c85 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricComponents/Battery/BatteryData.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/ElectricComponents/Battery/BatteryData.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; +using Newtonsoft.Json; using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Utils; @@ -71,6 +72,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.ElectricComponents.Ba public WattSecond TotalStoredEnergy => _totaltoredEnergy ?? (_totaltoredEnergy = CalculateBatteryEnergy(0, 1)); public WattSecond UseableStoredEnergy => _useableStoredEnergy ?? (_useableStoredEnergy = CalculateBatteryEnergy(MinSOC, MaxSOC)); + + [JsonIgnore] public IElectricStorageDeclarationInputData InputData { get; internal set; } protected WattSecond CalculateBatteryEnergy(double minSoc, double maxSoc) @@ -118,6 +121,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.ElectricComponents.Ba Entries = entries; } + public string[] SerializedEntries + { + get + { + return Entries.Select(x => $"{x.SOC} - {x.BatteryVolts}").ToArray(); + } + } + public Volt Lookup(double soc) { var idx = FindIndex(soc); @@ -163,6 +174,16 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.ElectricComponents.Ba Entries = entries; } + public string[] SerializedEntries + { + get + { + return Entries.Select(x => + $"{x.SoC}: " + x.Resistance.OrderBy(r => r.Item1.Value()).Select(r => $"{r.Item1}: {r.Item2}") + .Join(";")).ToArray(); + } + } + public Ohm Lookup(double SoC, Second tPulse) { var idx = FindIndex(SoC); @@ -242,6 +263,14 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.ElectricComponents.Ba Entries = entries; } + public string[] SerializedEntries + { + get + { + return Entries.Select(x => $"{x.SoC}: {x.MaxChargeCurrent} / {x.MaxDischargeCurrent}").ToArray(); + } + } + public Ampere LookupMaxChargeCurrent(double soc) { var idx = FindIndex(soc); -- GitLab