Innovenergy_trunk/csharp/Lib/Units/Composite/AcPhase.cs

45 lines
1.8 KiB
C#
Raw Normal View History

2023-06-13 11:03:49 +00:00
using InnovEnergy.Lib.Units.Power;
namespace InnovEnergy.Lib.Units.Composite;
2023-06-13 11:03:49 +00:00
public sealed class AcPhase
{
2023-06-13 11:03:49 +00:00
private AcPhase(){}
2023-05-24 10:04:01 +00:00
2023-06-13 11:03:49 +00:00
public Voltage Voltage { get; private init; } = null!;
public Current Current { get; private init; } = null!;
public AcPower Power { get; private init; } = null!;
2023-05-04 07:36:30 +00:00
public static AcPhase FromVoltageCurrentPhi(Voltage voltageRms,
Current currentRms,
Angle phi) => new()
{
Current = currentRms,
Voltage = voltageRms,
Power = AcPower.FromVoltageCurrentPhi(voltageRms, currentRms, phi)
};
public static AcPhase FromVoltageCurrentActiveReactive(Voltage voltageRms,
Current currentRms,
ActivePower activePower,
ReactivePower reactivePower) => new()
{
Current = currentRms,
Voltage = voltageRms,
Power = AcPower.FromActiveReactive(activePower, reactivePower)
};
public static AcPhase FromVoltageCurrentActiveReactiveApparent(Voltage voltageRms,
Current currentRms,
ActivePower activePower,
ReactivePower reactivePower,
ApparentPower apparentPower) => new()
{
Current = currentRms,
Voltage = voltageRms,
Power = AcPower.FromActiveReactiveApparent(activePower, reactivePower, apparentPower)
};
2023-06-13 11:03:49 +00:00
public static AcPhase Null { get; } = FromVoltageCurrentPhi(0, 0, 0);
}