using IStation.Common;
|
|
namespace IStation.Application
|
{
|
internal class TempOutHelper
|
{
|
|
public static DispatchSolutionOutput GetDispatchSolutionOutput(string flowId)
|
{
|
var output = new DispatchSolutionOutput();
|
output.SolutionId = "temp999";
|
output.FlowId = flowId;
|
output.Station = new List<StationDispatchOutput>();
|
|
var chss1Pumps = new List<PumpDispatchOutput>
|
{
|
GetPumpDispatchOutput("Pump11", 0, true, 4307.7588, 15.8093, 81.6112, 227.219, 37.6271, 444),
|
GetPumpDispatchOutput("Pump12", 1, true, 4024.6057, 15.742, 81.3045, 212.1781, 36.523, 431),
|
GetPumpDispatchOutput("Pump13", 2, true, 3941.9631, 16.1554, 82.7758, 209.4876, 36.533, 431.1),
|
GetPumpDispatchOutput("Pump17", 6, true, 4130.7578, 15.9835, 82.6751, 217.4493, 36.6102, 432)
|
};
|
|
// var chss1totalH = 20.7518;
|
var chss1totalH = chss1Pumps.Average(x => x.H);
|
var chss1totalQ = chss1Pumps.Sum(x => x.Q);
|
var chss1totalP = chss1Pumps.Sum(x => x.P);
|
|
var chss1totalE = PumpParaHelper.CalculateE(chss1totalQ, chss1totalH, chss1totalP);
|
var chss1 = GetStationDispatchOutput(1, chss1totalQ, chss1totalH, chss1totalE, chss1totalP, chss1Pumps);
|
|
|
var chss2Pumps = new List<PumpDispatchOutput>
|
{
|
GetPumpDispatchOutput("Pump22", 1, true, 9589.2422, 15.3166, 75.3, 533.233,33.4343, 331),
|
GetPumpDispatchOutput("Pump23", 2, true, 9423.4463, 15.1016, 72.4, 567.1, 34.4242, 340.8),
|
GetPumpDispatchOutput("Pump25", 4, true, 10226.1523, 15.0448, 72.4, 563.2, 34.3434, 340),
|
GetPumpDispatchOutput("Pump26", 5, true, 10011.1924, 15.1511, 74, 558.6, 33.9394, 336)
|
};
|
|
var chss2totalH = chss2Pumps.Average(x => x.H);
|
var chss2totalQ = chss2Pumps.Sum(x => x.Q);
|
var chss2totalP = chss2Pumps.Sum(x => x.P);
|
|
var chss2totalE = PumpParaHelper.CalculateE(chss2totalQ, chss2totalH, chss2totalP);
|
var chss2 = GetStationDispatchOutput(2, chss2totalQ, chss2totalH, chss2totalE, chss2totalP, chss2Pumps);
|
|
|
output.Station.Add(chss1);
|
output.Station.Add(chss2);
|
return output;
|
}
|
|
private static StationDispatchOutput GetStationDispatchOutput(int index, double q, double h, double e, double p, List<PumpDispatchOutput> pumps)
|
{
|
var model = new StationDispatchOutput();
|
model.Id = index.ToString();
|
model.Index = index;
|
model.Q = Math.Round(q, 1);
|
model.H = Math.Round(h, 1);
|
model.E = Math.Round(e, 1);
|
model.P = Math.Round(p, 1);
|
model.WP = Math.Round(Calcu_WP(p, q), 1);
|
model.UWP = Math.Round(Calcu_UWP(p, q, h), 1);
|
model.Pumps = pumps;
|
return model;
|
}
|
|
|
private static PumpDispatchOutput GetPumpDispatchOutput(string id, int index, bool isBp, double q, double h, double e, double p, double fre, double speed)
|
{
|
var model = new PumpDispatchOutput();
|
model.Id = id;
|
model.Index = index;
|
model.Name = id;
|
model.IsBp = isBp;
|
model.Q = Math.Round(q, 1);
|
model.H = Math.Round(h, 1);
|
model.E = Math.Round(e, 1);
|
model.P = Math.Round(p, 1);
|
model.Frequency = Math.Round(fre, 1);
|
model.Speed = Math.Round(speed, 1);
|
return model;
|
}
|
|
|
/// <summary>
|
/// 单位水耗 千吨水
|
/// </summary>
|
private static double Calcu_UWP(double P, double Q, double H)
|
{
|
if (Q <= 0.001)
|
return 0;
|
if (H <= 0.00001)
|
return 0;
|
if (P <= 0.001)
|
return 0;
|
return P * 1000f / Q / H;
|
}
|
|
/// <summary>
|
/// 单位水耗 千吨水
|
/// </summary>
|
private static double Calcu_UWP(double P, double Q, double inletPress, double outletPress)
|
{
|
double H = (outletPress - inletPress) * 102;
|
if (Q <= 0.001)
|
return 0;
|
if (H <= 0.00001)
|
return 0;
|
if (P <= 0.001)
|
return 0;
|
return P * 1000f / Q / H;
|
}
|
|
/// <summary>
|
/// 单位水耗
|
/// </summary>
|
private static double Calcu_WP(double P, double Q)
|
{
|
if (Q <= 0.001)
|
return 0;
|
|
if (P <= 0.001)
|
return 0;
|
return P * 1000f / Q;
|
}
|
}
|
}
|