PowerEnergy.cs 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. using StressClient.Common;
  2. namespace Vbdsm.Model
  3. {
  4. public class PowerEnergy
  5. {
  6. public PowerEnergy()
  7. {
  8. var list_i = GetI();
  9. ia = list_i[0];
  10. ib = list_i[1];
  11. ic = list_i[2];
  12. var listU_220 = GetU_220();
  13. ua = listU_220[0];
  14. ub = listU_220[1];
  15. uc = listU_220[2];
  16. var listU_380 = GetU_380();
  17. uab = listU_380[0];
  18. ubc = listU_380[1];
  19. uca = listU_380[2];
  20. var listPf = GetPf();
  21. pfa = listPf[0];
  22. pfb = listPf[1];
  23. pfc = listPf[2];
  24. f = Helper.GetRan(5000, 20, 100);
  25. }
  26. public decimal pa => Math.Floor(ia * ua * pfa) / 1000;
  27. public decimal pb => Math.Floor(ib * ub * pfb) / 1000;
  28. public decimal pc => Math.Floor(ic * uc * pfc) / 1000;
  29. public decimal p => pa + pb + pc;
  30. public decimal qa => Math.Floor(ia * ua * (1 - pfa)) / 1000;
  31. public decimal qb => Math.Floor(ib * ub * (1 - pfb)) / 1000;
  32. public decimal qc => Math.Floor(ic * uc * (1 - pfc)) / 1000;
  33. public decimal q => qa + qb + qc;
  34. public decimal pfa { get; }
  35. public decimal pfb { get; }
  36. public decimal pfc { get; }
  37. public decimal pf => Math.Floor(p * 100 / (ia * ua / 1000 + ib * ub / 1000 + ic * uc / 1000)) / 100;
  38. public decimal ia { get; }
  39. public decimal ib { get; }
  40. public decimal ic { get; }
  41. public decimal iz => Helper.GetRan(1100, 100, 10);
  42. public decimal ua { get; }
  43. public decimal ub { get; }
  44. public decimal uc { get; }
  45. public decimal uab { get; }
  46. public decimal ubc { get; }
  47. public decimal uca { get; }
  48. //需量负荷
  49. public decimal dp => Helper.GetRan((int)Math.Floor(p * 1000), 500, 1000);
  50. //负荷率
  51. public decimal pv => Helper.GetRan(8500, 1500, 100);
  52. public decimal tpe { get; set; }
  53. public decimal tqe { get; set; }
  54. public decimal fpe { get; set; }
  55. public decimal fqe { get; set; }
  56. public decimal tps { get; set; }
  57. public decimal tqs { get; set; }
  58. public decimal fps { get; set; }
  59. public decimal fqs { get; set; }
  60. public decimal uaw => GetUw(ua, 220);
  61. public decimal ubw => GetUw(ub, 220);
  62. public decimal ucw => GetUw(uc, 220);
  63. public decimal uabw => GetUw(uab, 380);
  64. public decimal ubcw => GetUw(ubc, 380);
  65. public decimal ucaw => GetUw(uca, 380);
  66. public decimal fw => f - 50;
  67. public decimal f { get; }
  68. public decimal inbalance => GetUnbalance_I();
  69. public decimal unbalance => GetUnbalance_U();
  70. public decimal t => Helper.GetRan(42, 3);
  71. public decimal t2 { get; set; }
  72. public decimal t3 { get; set; }
  73. public decimal t4 { get; set; }
  74. public decimal t5 { get; set; }
  75. public decimal t6 { get; set; }
  76. public decimal t7 { get; set; }
  77. public decimal t8 { get; set; }
  78. public PowerEnergy SetEngine(decimal pe, decimal qe, decimal ps, decimal qs)
  79. {
  80. tpe = pe;
  81. tqe = qe;
  82. fpe = 0;
  83. fqe = 0;
  84. tps = ps;
  85. tqs = qs;
  86. fps = 0;
  87. fqs = 0;
  88. return this;
  89. }
  90. private List<decimal> GetU_220()
  91. {
  92. var ran = new Random().Next(2303, 2308);
  93. var list = new List<decimal>
  94. {
  95. Helper.GetRan(ran * 10, 150, 100),
  96. Helper.GetRan(ran * 10, 250, 100),
  97. Helper.GetRan(ran * 10, 150, 100)
  98. };
  99. return list;
  100. }
  101. private List<decimal> GetU_380()
  102. {
  103. var ran = new Random().Next(4003, 4008);
  104. var list = new List<decimal>
  105. {
  106. Helper.GetRan(ran * 10, 150, 100),
  107. Helper.GetRan(ran * 10, 250, 100),
  108. Helper.GetRan(ran * 10, 150, 100)
  109. };
  110. return list;
  111. }
  112. private List<decimal> GetI()
  113. {
  114. var ran = new Random().Next(1000, 1200);
  115. var list = new List<decimal>
  116. {
  117. Helper.GetRan(ran * 100, 450, 100),
  118. Helper.GetRan(ran * 100, 350, 100),
  119. Helper.GetRan(ran * 100, 550, 100)
  120. };
  121. return list;
  122. }
  123. public decimal GetUw(decimal u, decimal un)
  124. {
  125. var w = (u - un) * 100 / un;
  126. w = Math.Floor(w * 100) / 100;
  127. return w;
  128. }
  129. private List<decimal> GetPf()
  130. {
  131. var ran = new Random().Next(955, 965);
  132. var list = new List<decimal>
  133. {
  134. Helper.GetRan(ran * 10, 50, 10000),
  135. Helper.GetRan(ran * 10, 50, 10000),
  136. Helper.GetRan(ran * 10, 50, 10000)
  137. };
  138. return list;
  139. }
  140. private decimal GetUnbalance_I()
  141. {
  142. var arr = new decimal[3];
  143. arr[0] = ia;
  144. arr[1] = ib;
  145. arr[2] = ic;
  146. var max = arr.Max();
  147. var min = arr.Min();
  148. var i = (max - min) * 100 / max;
  149. i = Math.Floor(i * 100) / 100;
  150. return i;
  151. }
  152. private decimal GetUnbalance_U()
  153. {
  154. var arr = new decimal[3];
  155. arr[0] = ua;
  156. arr[1] = ub;
  157. arr[2] = uc;
  158. var max = arr.Max();
  159. var ave = arr.Average();
  160. var u = (max - ave) * 100 / ave;
  161. u = Math.Floor(u * 100) / 100;
  162. return u;
  163. }
  164. public string GetStr()
  165. {
  166. 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}";
  167. return str;
  168. }
  169. }
  170. }