using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace IStation
|
{
|
|
public class ModelInput
|
{
|
public ModelInput() { }
|
public ModelInput(string objectId, int type, double value)
|
{
|
this.ObjectID = objectId;
|
this.Type = (eType)type;
|
this.Value = (float)value;
|
}
|
|
public enum eType
|
{
|
/// <summary>
|
/// 入站压力,单位米水柱
|
/// </summary>
|
press_in = 0, //入站压力
|
/// <summary>
|
/// 出站压力,单位米水柱
|
/// </summary>
|
press_out = 1,// 出站压力
|
|
|
/// <summary>
|
/// 水泵转速比,一般是频率/50
|
/// </summary>
|
pump_run = 12,// 0 水泵状态0/1还是水泵频率0~1 频率/50 转速/额定转速
|
/// <summary>
|
/// 水泵类型
|
/// </summary>
|
pump_isFrequece = 13,//0 工频 1 变频 -1 关闭 9必须开
|
|
/// <summary>
|
/// 水池水位,单位是米
|
/// </summary>
|
level = 23,// 水池液位
|
/// <summary>
|
/// 流量,单位是立方米每小时
|
/// </summary>
|
flow = 24,// 流量
|
/// <summary>
|
/// 阀门状态,0是关,1是开
|
/// </summary>
|
valve_initstatus =25 //阀门状态
|
}
|
|
/// <summary>
|
/// 结合INP文件,输入要设置的对象的编号
|
/// </summary>
|
public string ObjectID;
|
|
/// <summary>
|
/// 结合INP文件,输入要设置的对象类型,类型包括:
|
/// </summary>
|
public eType Type;
|
|
/// <summary>
|
/// 输入参数的数值
|
/// </summary>
|
public float Value { get; set; }
|
|
|
}
|
public class ModelOutput
|
{
|
public enum eType
|
{
|
/// <summary>
|
/// 节点
|
/// </summary>
|
EN_JUNCTION = 0,
|
/// <summary>
|
/// 水库节点
|
/// </summary>
|
EN_RESERVOIR = 1,
|
/// <summary>
|
/// 水池节点
|
/// </summary>
|
EN_TANK = 2,
|
|
|
|
/// <summary>
|
/// 具有止回阀的管道
|
/// </summary>
|
EN_CVPIPE = 10,
|
/// <summary>
|
/// 管道
|
/// </summary>
|
EN_PIPE = 11,
|
|
/// <summary>
|
/// 水泵
|
/// </summary>
|
EN_PUMP = 12,
|
/// <summary>
|
/// 减压阀
|
/// </summary>
|
EN_PRV = 13,
|
/// <summary>
|
/// 稳压阀
|
/// </summary>
|
EN_PSV = 14,
|
/// <summary>
|
/// 压力制动阀
|
/// </summary>
|
EN_PBV = 15,
|
/// <summary>
|
/// 流量控制阀
|
/// </summary>
|
EN_FCV = 16,
|
/// <summary>
|
/// 节流控制阀
|
/// </summary>
|
EN_TCV = 17,
|
/// <summary>
|
/// 常规阀门
|
/// </summary>
|
EN_GPV = 18,
|
}
|
public string ObjectID;
|
public eType Type;
|
|
}
|
|
public class ModelOutputNode : ModelOutput
|
{
|
public class Result
|
{
|
/// <summary>
|
/// 标高
|
/// </summary>
|
public double EN_ELEVATION { get; set; }
|
/// <summary>
|
/// 基本需水量
|
/// </summary>
|
public double EN_BASEDEMAND { get; set; }
|
|
/// <summary>
|
/// 实际需水量
|
/// </summary>
|
public double EN_DEMAND { get; set; }
|
/// <summary>
|
/// 绝对压力(计算结果,单位米水柱)
|
/// </summary>
|
public double EN_HEAD { get; set; }
|
/// <summary>
|
/// 自由压力(计算结果,单位米水柱)
|
/// </summary>
|
public double EN_PRESSURE { get; set; }
|
|
|
}
|
|
|
public int[] Get_list_ValueIndex()
|
{
|
return new int[] { 0, 1, 9, 10, 11 };
|
}
|
|
public void SetValue(int i, float value)
|
{
|
switch (i)
|
{
|
case 0:
|
result.EN_ELEVATION = value;
|
break;
|
case 1:
|
result.EN_BASEDEMAND = value;
|
break;
|
case 2:
|
result.EN_DEMAND = value;
|
break;
|
case 3:
|
result.EN_HEAD = value;
|
break;
|
case 4:
|
result.EN_PRESSURE = value;
|
break;
|
|
|
}
|
}
|
public Result result = new Result();
|
|
}
|
|
public class ModelOutputLink : ModelOutput
|
{
|
public class Result
|
{
|
/// <summary>
|
/// 直径
|
/// </summary>
|
public double EN_DIAMETER { get; set; }
|
/// <summary>
|
/// 长度
|
/// </summary>
|
public double EN_LENGTH { get; set; }
|
/// <summary>
|
/// 流量(计算结果,单位立方米每小时,从开始节点流向结束节点为正)
|
/// </summary>
|
public double EN_FLOW { get; set; }
|
/// <summary>
|
/// 流速(计算结果,单位米每秒)
|
/// </summary>
|
public double EN_VELOCITY { get; set; }
|
/// <summary>
|
/// 水头损失(计算结果,如果是水泵,则表示提升水头,值为负)
|
/// </summary>
|
public double EN_HEADLOSS { get; set; }
|
/// <summary>
|
/// 实际管段状态(0关1开)
|
/// </summary>
|
public double EN_STATUS { get; set; }
|
/// <summary>
|
/// 实际水泵转速比(计算结果,转换为Hz一般乘以50)
|
/// </summary>
|
public double EN_SETTING { get; set; }
|
/// <summary>
|
/// 消耗能量(计算结果,千瓦)
|
/// </summary>
|
public double EN_ENERGY { get; set; }
|
|
}
|
|
public int[] Get_list_ValueIndex()
|
{
|
return new int[] { 0, 1, 8, 9, 10, 11, 12, 13 };
|
}
|
public void SetValue(int i, float value)
|
{
|
switch (i)
|
{
|
case 0:
|
result.EN_DIAMETER = value;
|
break;
|
case 1:
|
result.EN_LENGTH = value;
|
break;
|
|
case 2:
|
result.EN_FLOW = value;
|
break;
|
case 3:
|
result.EN_VELOCITY = value;
|
break;
|
case 4:
|
result.EN_HEADLOSS = value;
|
break;
|
case 5:
|
result.EN_STATUS = value;
|
break;
|
case 6:
|
result.EN_SETTING = value;
|
break;
|
case 7:
|
result.EN_ENERGY = value;
|
break;
|
}
|
}
|
|
public Result result = new Result();
|
}
|
}
|