using StressClient.Common; namespace Vbdsm.Model { public class PowerEnergy { public PowerEnergy() { var list_i = GetI(); ia = list_i[0]; ib = list_i[1]; ic = list_i[2]; var listU_220 = GetU_220(); ua = listU_220[0]; ub = listU_220[1]; uc = listU_220[2]; var listU_380 = GetU_380(); uab = listU_380[0]; ubc = listU_380[1]; uca = listU_380[2]; var listPf = GetPf(); pfa = listPf[0]; pfb = listPf[1]; pfc = listPf[2]; f = Helper.GetRan(5000, 20, 100); } public decimal pa => Math.Floor(ia * ua * pfa) / 1000; public decimal pb => Math.Floor(ib * ub * pfb) / 1000; public decimal pc => Math.Floor(ic * uc * pfc) / 1000; public decimal p => pa + pb + pc; public decimal qa => Math.Floor(ia * ua * (1 - pfa)) / 1000; public decimal qb => Math.Floor(ib * ub * (1 - pfb)) / 1000; public decimal qc => Math.Floor(ic * uc * (1 - pfc)) / 1000; public decimal q => qa + qb + qc; public decimal pfa { get; } public decimal pfb { get; } public decimal pfc { get; } public decimal pf => Math.Floor(p * 100 / (ia * ua / 1000 + ib * ub / 1000 + ic * uc / 1000)) / 100; public decimal ia { get; } public decimal ib { get; } public decimal ic { get; } public decimal iz => Helper.GetRan(1100, 100, 10); public decimal ua { get; } public decimal ub { get; } public decimal uc { get; } public decimal uab { get; } public decimal ubc { get; } public decimal uca { get; } //需量负荷 public decimal dp => Helper.GetRan((int)Math.Floor(p * 1000), 500, 1000); //负荷率 public decimal pv => Helper.GetRan(8500, 1500, 100); public decimal tpe { get; set; } public decimal tqe { get; set; } public decimal fpe { get; set; } public decimal fqe { get; set; } public decimal tps { get; set; } public decimal tqs { get; set; } public decimal fps { get; set; } public decimal fqs { get; set; } public decimal uaw => GetUw(ua, 220); public decimal ubw => GetUw(ub, 220); public decimal ucw => GetUw(uc, 220); public decimal uabw => GetUw(uab, 380); public decimal ubcw => GetUw(ubc, 380); public decimal ucaw => GetUw(uca, 380); public decimal fw => f - 50; public decimal f { get; } public decimal inbalance => GetUnbalance_I(); public decimal unbalance => GetUnbalance_U(); public decimal t => Helper.GetRan(42, 3); public decimal t2 { get; set; } public decimal t3 { get; set; } public decimal t4 { get; set; } public decimal t5 { get; set; } public decimal t6 { get; set; } public decimal t7 { get; set; } public decimal t8 { get; set; } public PowerEnergy SetEngine(decimal pe, decimal qe, decimal ps, decimal qs) { tpe = pe; tqe = qe; fpe = 0; fqe = 0; tps = ps; tqs = qs; fps = 0; fqs = 0; return this; } private List GetU_220() { var ran = new Random().Next(2303, 2308); var list = new List { Helper.GetRan(ran * 10, 150, 100), Helper.GetRan(ran * 10, 250, 100), Helper.GetRan(ran * 10, 150, 100) }; return list; } private List GetU_380() { var ran = new Random().Next(4003, 4008); var list = new List { Helper.GetRan(ran * 10, 150, 100), Helper.GetRan(ran * 10, 250, 100), Helper.GetRan(ran * 10, 150, 100) }; return list; } private List GetI() { var ran = new Random().Next(1000, 1200); var list = new List { Helper.GetRan(ran * 100, 450, 100), Helper.GetRan(ran * 100, 350, 100), Helper.GetRan(ran * 100, 550, 100) }; return list; } public decimal GetUw(decimal u, decimal un) { var w = (u - un) * 100 / un; w = Math.Floor(w * 100) / 100; return w; } private List GetPf() { var ran = new Random().Next(955, 965); var list = new List { Helper.GetRan(ran * 10, 50, 10000), Helper.GetRan(ran * 10, 50, 10000), Helper.GetRan(ran * 10, 50, 10000) }; return list; } private decimal GetUnbalance_I() { var arr = new decimal[3]; arr[0] = ia; arr[1] = ib; arr[2] = ic; var max = arr.Max(); var min = arr.Min(); var i = (max - min) * 100 / max; i = Math.Floor(i * 100) / 100; return i; } private decimal GetUnbalance_U() { var arr = new decimal[3]; arr[0] = ua; arr[1] = ub; arr[2] = uc; var max = arr.Max(); var ave = arr.Average(); var u = (max - ave) * 100 / ave; u = Math.Floor(u * 100) / 100; return u; } public string GetStr() { var str = $"p={p}&pa={pa}&pb={pb}&pc={pc}&q={q}&qa={qa}&qb={qb}&qc={qc}&pf={pf}&pfa={pfa}&pfb={pfb}&pfc={pfc}&ia={ia}&ib={ib}&ic={ic}&iz={iz}&ua={ua}&ub={ub}&uc={uc}&uab={uab}&ubc={ubc}&uca={uca}&dp={dp}&pv={pv}&uaw={uaw}&ubw={ubw}&ucw={ucw}&uabw={uabw}&ubcw={ubcw}&ucaw={ucaw}&f={f}&fw={fw}&inbalance={inbalance}&unbalance={unbalance}&t={t}&t2={t2}&t3={t3}&t4={t4}&t5={t5}&t6={t6}&t7={t7}&t8={t8}&tps={tps}&tqs={tqs}&fps={fps}&fqs={fqs}&tpe={tpe}&tqe={tqe}&fpe={fpe}&fqe={fqe}"; return str; } } }