43 lines
1.7 KiB
C#
43 lines
1.7 KiB
C#
using System.Collections.Generic;
|
|
using BattSim.Models;
|
|
|
|
namespace BattSim.Services
|
|
{
|
|
public static class BatterySimulator
|
|
{
|
|
public static List<BatteryDayResult> SimulateBattery(EnergyData[] data, double batteryCapacity)
|
|
{
|
|
var results = new List<BatteryDayResult>();
|
|
double remainingEnergy = 0;
|
|
|
|
foreach (var day in data)
|
|
{
|
|
// // Charge battery from production
|
|
// var chargedEnergy = System.Math.Min(day.TotalProduction, batteryCapacity);
|
|
// var excessProduction = day.TotalProduction - chargedEnergy;
|
|
|
|
// // Use battery for consumption
|
|
// var usedEnergy = System.Math.Min(chargedEnergy + remainingEnergy, day.TotalConsumption);
|
|
// var remainingAfterUse = chargedEnergy + remainingEnergy - usedEnergy;
|
|
|
|
// // Calculate reduced values
|
|
// var reducedConsumption = System.Math.Min(usedEnergy, day.TotalConsumption);
|
|
// var reducedProduction = day.TotalProduction - chargedEnergy;
|
|
|
|
// results.Add(new BatteryDayResult
|
|
// {
|
|
// Date = day.Date,
|
|
// ChargedEnergy = chargedEnergy,
|
|
// UsedEnergy = usedEnergy,
|
|
// RemainingEnergy = remainingAfterUse,
|
|
// ReducedConsumption = reducedConsumption,
|
|
// ReducedProduction = reducedProduction
|
|
// });
|
|
|
|
// remainingEnergy = remainingAfterUse;
|
|
}
|
|
|
|
return results;
|
|
}
|
|
}
|
|
} |