simplify AcPhase
This commit is contained in:
parent
5e9e9c560a
commit
438563fef8
|
@ -218,33 +218,12 @@ public class TruConvertAcDevice
|
||||||
(
|
(
|
||||||
Ac: new ThreePhaseAcConnection
|
Ac: new ThreePhaseAcConnection
|
||||||
(
|
(
|
||||||
AcPhase.FromActiveReactive(
|
new AcPhase(gridVoltageL1,phaseCurrentL1, ACos(powerAcL1/apparentPowerAcL1)),
|
||||||
activePower: powerAcL1,
|
new AcPhase(gridVoltageL2,phaseCurrentL2, ACos(powerAcL2/apparentPowerAcL2)),
|
||||||
apparentPower: apparentPowerAcL1,
|
new AcPhase(gridVoltageL3,phaseCurrentL3, ACos(powerAcL3/apparentPowerAcL3)),
|
||||||
voltage: gridVoltageL1,
|
|
||||||
current: phaseCurrentL1),
|
|
||||||
|
|
||||||
AcPhase.FromActiveReactive(
|
|
||||||
activePower: powerAcL2,
|
|
||||||
apparentPower: apparentPowerAcL2,
|
|
||||||
voltage: gridVoltageL2,
|
|
||||||
current: phaseCurrentL2),
|
|
||||||
|
|
||||||
AcPhase.FromActiveReactive(
|
|
||||||
activePower: powerAcL3,
|
|
||||||
apparentPower: apparentPowerAcL3,
|
|
||||||
voltage: gridVoltageL3,
|
|
||||||
current: phaseCurrentL3),
|
|
||||||
|
|
||||||
gridFrequency // Gird Frequency
|
gridFrequency // Gird Frequency
|
||||||
),
|
),
|
||||||
|
Dc: new DcConnection(dcVoltage, dcCurrent),
|
||||||
|
|
||||||
Dc: new DcConnection
|
|
||||||
(
|
|
||||||
dcVoltage,
|
|
||||||
dcCurrent
|
|
||||||
),
|
|
||||||
|
|
||||||
SerialNumber : acSerialNumber.GetInt32(2009).ToString(),
|
SerialNumber : acSerialNumber.GetInt32(2009).ToString(),
|
||||||
|
|
||||||
|
|
|
@ -1,76 +1,35 @@
|
||||||
using DecimalMath;
|
|
||||||
using static DecimalMath.DecimalEx;
|
using static DecimalMath.DecimalEx;
|
||||||
|
|
||||||
namespace InnovEnergy.Lib.StatusApi.Phases;
|
namespace InnovEnergy.Lib.StatusApi.Phases;
|
||||||
|
|
||||||
|
|
||||||
public record AcPhase
|
public record AcPhase(Decimal Voltage, Decimal Current, Decimal Phi)
|
||||||
(
|
|
||||||
Decimal Voltage,
|
|
||||||
Decimal Current,
|
|
||||||
Decimal Phi ,
|
|
||||||
Decimal ApparentPower,
|
|
||||||
Decimal ActivePower,
|
|
||||||
Decimal ReactivePower,
|
|
||||||
Decimal PowerFactor
|
|
||||||
)
|
|
||||||
: Phase(Voltage, Current)
|
: Phase(Voltage, Current)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public Decimal ApparentPower => Voltage * Current;
|
||||||
|
public Decimal ActivePower => ApparentPower * PowerFactor;
|
||||||
|
public Decimal ReactivePower => ApparentPower * Sin(Phi);
|
||||||
|
public Decimal PowerFactor => Cos(Phi);
|
||||||
|
|
||||||
public static AcPhase FromActiveReactive
|
public static AcPhase FromActiveReactive
|
||||||
(
|
(
|
||||||
Decimal activePower,
|
Decimal activePower,
|
||||||
Decimal apparentPower,
|
Decimal reactivePower,
|
||||||
Decimal voltage,
|
Decimal voltage,
|
||||||
Decimal current
|
Decimal current
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
var reactivePower = Sqrt(Math.Abs(apparentPower * apparentPower - activePower * activePower ));
|
|
||||||
var phi = ATan2(reactivePower, activePower);
|
var phi = ATan2(reactivePower, activePower);
|
||||||
|
|
||||||
return new AcPhase
|
return new AcPhase
|
||||||
(
|
(
|
||||||
Voltage: voltage,
|
Voltage: voltage,
|
||||||
Current: current,
|
Current: current,
|
||||||
Phi: phi,
|
Phi: phi
|
||||||
ApparentPower: apparentPower,
|
|
||||||
ActivePower: activePower,
|
|
||||||
ReactivePower: reactivePower,
|
|
||||||
PowerFactor: Cos(phi)
|
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
}
|
||||||
|
|
||||||
public static AcPhase CreateInstance(Decimal voltage, Decimal current, Decimal phi)
|
|
||||||
{
|
|
||||||
|
|
||||||
var powerFactor = Cos(phi);
|
|
||||||
var apparentPower = voltage * current;
|
|
||||||
var activePower = apparentPower * powerFactor;
|
|
||||||
var reactivePower = apparentPower * Sin(phi);
|
|
||||||
|
|
||||||
|
|
||||||
return new AcPhase
|
|
||||||
(
|
|
||||||
voltage,
|
|
||||||
current,
|
|
||||||
phi,
|
|
||||||
apparentPower,
|
|
||||||
activePower,
|
|
||||||
reactivePower,
|
|
||||||
powerFactor
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
//public Decimal ApparentPower => Voltage * Current;
|
|
||||||
//public Decimal ActivePower => ApparentPower * PowerFactor;
|
|
||||||
//public Decimal ReactivePower => ApparentPower * Sin(Phi);
|
|
||||||
//public Decimal PowerFactor => Cos(Phi);
|
|
||||||
|
|
||||||
// public Decimal ReactivePower {get; init;}
|
|
||||||
// public Decimal ApparentPower {get; }
|
|
||||||
// public Decimal ActivePower {get; }
|
|
||||||
// public Decimal PowerFactor {get; init;}
|
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue