using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Web;
|
|
namespace IStation.Calculation.Epanet
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public partial class EpaCacluItemHelper
|
{
|
/// <summary>
|
/// Link转换
|
/// </summary>
|
public EpaCalcuIDto LinkConvert(EpanetNodeOutputLink rhs)
|
{
|
var model = new EpaCalcuIDto();
|
model.EpdId = rhs.ObjectID;
|
switch (rhs.Type)
|
{
|
case EpanetNodeOutput.eType.EN_PUMP:
|
{
|
model.Flag = "泵";
|
model.Items = Pump(rhs);
|
}
|
break;
|
case EpanetNodeOutput.eType.EN_PIPE:
|
{
|
model.Flag = "管路";
|
model.Items = Pipe(rhs);
|
}
|
break;
|
case EpanetNodeOutput.eType.EN_CVPIPE:
|
{
|
model.Flag = "具有止回阀的管路";
|
model.Items = Pipe(rhs);
|
}
|
break;
|
case EpanetNodeOutput.eType.EN_PRV:
|
{
|
model.Flag = "减压阀";
|
model.Items = Valve(rhs);
|
}
|
break;
|
case EpanetNodeOutput.eType.EN_PSV:
|
{
|
model.Flag = "稳压阀";
|
model.Items = Valve(rhs);
|
}
|
break;
|
case EpanetNodeOutput.eType.EN_PBV:
|
{
|
model.Flag = "压力制动阀";
|
model.Items = Valve(rhs);
|
}
|
break;
|
case EpanetNodeOutput.eType.EN_FCV:
|
{
|
model.Flag = "流量控制阀";
|
model.Items = Valve(rhs);
|
}
|
break;
|
case EpanetNodeOutput.eType.EN_TCV:
|
{
|
model.Flag = "节流控制阀";
|
model.Items = Valve(rhs);
|
}
|
break;
|
case EpanetNodeOutput.eType.EN_GPV:
|
{
|
model.Flag = "常规阀门";
|
model.Items = Valve(rhs);
|
}
|
break;
|
}
|
return model;
|
}
|
|
/// <summary>
|
/// Node转换
|
/// </summary>
|
public EpaCalcuIDto NodeConvert(EpanetNodeOutputNode rhs)
|
{
|
var model = new EpaCalcuIDto();
|
model.EpdId = rhs.ObjectID;
|
switch (rhs.Type)
|
{
|
case EpanetNodeOutput.eType.EN_JUNCTION:
|
{
|
model.Flag = "连接点";
|
model.Items = Junction(rhs);
|
}
|
break;
|
case EpanetNodeOutput.eType.EN_TANK:
|
{
|
model.Flag = "水库";
|
model.Items = Tank(rhs);
|
}
|
break;
|
case EpanetNodeOutput.eType.EN_RESERVOIR:
|
{
|
model.Flag = "水池";
|
model.Items = Reservoir(rhs);
|
}
|
break;
|
}
|
return model;
|
}
|
|
#region 参数转换
|
//泵
|
private List<EpaCacluItem> Pump(EpanetNodeOutputLink rhs)
|
{
|
var Q = new EpaCacluItem() { Caption = "流量", Unit = EpaUnit.立方米, Value = Flow(rhs.EN_FLOW) };
|
var H = new EpaCacluItem() { Caption = "扬程", Unit = EpaUnit.米, Value = Math.Abs(HeadLoss(rhs.EN_HEADLOSS)) };
|
var P = new EpaCacluItem() { Caption = "功率", Unit = EpaUnit.千瓦, Value = Energy(rhs.EN_ENERGY) };
|
var E = new EpaCacluItem() { Caption = "效率", Unit = EpaUnit.百分比, Value = Efficiency(Q.Value, H.Value, P.Value) };
|
var Hz = new EpaCacluItem() { Caption = "频率", Unit = EpaUnit.赫兹, Value = Setting2Hz(rhs.EN_SETTING) };
|
var status = new EpaCacluItem() { Caption = "状态", Unit = EpaUnit.NUN, Value = this.Status(rhs.EN_STATUS) };
|
|
var list = new List<EpaCacluItem>() { Q, H, P, Hz, E, status };
|
return list;
|
}
|
|
//管路
|
private List<EpaCacluItem> Pipe(EpanetNodeOutputLink rhs)
|
{
|
var list = new List<EpaCacluItem>()
|
{
|
new EpaCacluItem() { Caption="流量",Unit=EpaUnit.立方米,Value=Flow(rhs.EN_FLOW) },
|
new EpaCacluItem() { Caption="流速",Unit=EpaUnit.米每秒,Value=Velocity(rhs.EN_VELOCITY)},
|
new EpaCacluItem() { Caption = "水头损失", Unit = EpaUnit.千帕, Value = HeadLoss2KP(rhs.EN_HEADLOSS).ToString() },
|
new EpaCacluItem() { Caption = "单位损失", Unit = EpaUnit.每千米千帕, Value = PipeUnitLoss(rhs.EN_HEADLOSS,rhs.EN_LENGTH) }
|
};
|
return list;
|
}
|
|
//阀门
|
private List<EpaCacluItem> Valve(EpanetNodeOutputLink rhs)
|
{
|
var list = new List<EpaCacluItem>()
|
{
|
new EpaCacluItem() { Caption="流量",Unit=EpaUnit.立方米,Value=Flow(rhs.EN_FLOW) },
|
new EpaCacluItem() { Caption="流速",Unit=EpaUnit.米每秒,Value=Velocity(rhs.EN_VELOCITY)},
|
new EpaCacluItem() { Caption="压力损失", Unit = EpaUnit.千帕, Value = HeadLoss2KP(rhs.EN_HEADLOSS).ToString()},
|
//new EpaCacluItem() { Caption="阀门测试", Unit = EpaUnit.千帕, Value = Dto.CalcuHelper.ConventE((rhs.EN_ENERGY)).ToString()},
|
new EpaCacluItem() { Caption="状态",Unit=EpaUnit.NUN,Value=Status(rhs.EN_STATUS)}
|
};
|
return list;
|
}
|
|
//连接点
|
private List<EpaCacluItem> Junction(EpanetNodeOutputNode rhs)
|
{
|
var list = new List<EpaCacluItem>()
|
{
|
new EpaCacluItem() { Caption="需水量",Unit=EpaUnit.米,Value=Demand(rhs.EN_DEMAND) },
|
new EpaCacluItem() { Caption="压力",Unit=EpaUnit.兆帕,Value=Pressure(rhs.EN_PRESSURE)},
|
};
|
return list;
|
}
|
|
//水库
|
private List<EpaCacluItem> Tank(EpanetNodeOutputNode rhs)
|
{
|
var list = new List<EpaCacluItem>()
|
{
|
new EpaCacluItem() { Caption="需水量",Unit=EpaUnit.米,Value=Demand(rhs.EN_DEMAND) },
|
new EpaCacluItem() { Caption="压力",Unit=EpaUnit.兆帕,Value=Pressure(rhs.EN_PRESSURE)},
|
};
|
return list;
|
}
|
|
//水池
|
private List<EpaCacluItem> Reservoir(EpanetNodeOutputNode rhs)
|
{
|
var list = new List<EpaCacluItem>()
|
{
|
new EpaCacluItem() { Caption="需水量",Unit=EpaUnit.米,Value=Demand(rhs.EN_DEMAND) },
|
new EpaCacluItem() { Caption="压力",Unit=EpaUnit.兆帕,Value=Pressure(rhs.EN_PRESSURE)},
|
};
|
return list;
|
}
|
#endregion
|
|
|
}
|
}
|