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

20 lines
896 B
C#
Raw Normal View History

using InnovEnergy.Lib.Utils;
2023-02-26 14:39:55 +00:00
using static DecimalMath.DecimalEx;
namespace InnovEnergy.Lib.Units.Composite;
2023-03-01 09:52:21 +00:00
public record Ac3Bus
{
public AcPhase L1 { get; init; }
public AcPhase L2 { get; init; }
public AcPhase L3 { get; init; }
public Frequency Frequency { get; init; }
2023-02-26 14:39:55 +00:00
public ApparentPower ApparentPower => L1.ApparentPower + L2.ApparentPower + L3.ApparentPower;
public ReactivePower ReactivePower => L1.ReactivePower + L2.ReactivePower + L3.ReactivePower;
public Power ActivePower => L1.ActivePower + L2.ActivePower + L3.ActivePower;
public Angle Phi => ATan2(ReactivePower, ActivePower);
2023-02-26 14:39:55 +00:00
2023-03-01 09:52:21 +00:00
public static Ac3Bus operator |(Ac3Bus left, Ac3Bus right) => OpParallel(left, right);
private static readonly Func<Ac3Bus, Ac3Bus, Ac3Bus> OpParallel = "|".CreateBinaryOpForProps<Ac3Bus>();
}