Add the daily production data in AMPT

This commit is contained in:
atef 2024-01-19 12:32:43 +01:00
parent 50eaf261a3
commit 80f9186319
2 changed files with 17 additions and 6 deletions

View File

@ -47,6 +47,11 @@ public class AmptDevices
// CommunicationUnit knows how many StringOptimizers are connected
var nStringOptimizers = cuStatus.NumberOfStringOptimizers;
//Factor
var nEnergyFactor = cuStatus.EnergyScaleFactor;
var nCurrentFactor = cuStatus.CurrentScaleFactor;
var nVoltageFactor = cuStatus.VoltageScaleFactor;
// hardcoded: every SO has 2 strings (produced like this by AMPT)
var nStrings = nStringOptimizers * 2;
@ -62,12 +67,16 @@ public class AmptDevices
// TODO: alarm when we see substantially different voltages
var busVoltage = nStringOptimizers == 0 ? 0 : soStati.Average(r => r.Voltage);
var busCurrent = nStringOptimizers == 0 ? 0 : soStati.Sum (r => r.Current);
var busVoltage = nStringOptimizers == 0 ? 0 : soStati.Average(r => r.Voltage);
var busCurrent = nStringOptimizers == 0 ? 0 : soStati.Sum (r => r.Current);
var dailyOutputEnergy = nStringOptimizers == 0 ? 0 : soStati.Sum (r => r.ProductionToday);
dailyOutputEnergy.WriteLine(" Daily Production ");
var dc = new DcBus
{
Voltage = busVoltage,
Current = busCurrent,
Current = busCurrent
};
// flatten the 2 strings of each SO into one array
@ -76,7 +85,8 @@ public class AmptDevices
return new AmptStatus
{
Dc = dc,
Strings = strings
Strings = strings,
DcWh = dailyOutputEnergy
};
}

View File

@ -5,7 +5,8 @@ namespace InnovEnergy.Lib.Devices.AMPT;
public class AmptStatus : IMppt
{
public required DcBus Dc { get; init; }
public required IReadOnlyList<DcBus> Strings { get; init; }
public required DcBus Dc { get; init; }
public required IReadOnlyList<DcBus> Strings { get; init; }
public required Double DcWh { get; init; } //Daily integrated string output energy in Wh
}