添加项目文件。
This commit is contained in:
169
OrpaonEMS.App/Models/NightChargEleModel.cs
Normal file
169
OrpaonEMS.App/Models/NightChargEleModel.cs
Normal file
@@ -0,0 +1,169 @@
|
||||
using OrpaonEMS.App.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace OrpaonEMS.App.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// 判断是不是夜晚充的电量
|
||||
/// 判断模型
|
||||
/// </summary>
|
||||
public class NightChargEleModel
|
||||
{
|
||||
public NightChargEleModel(ConfigDataService configDataService)
|
||||
{
|
||||
MasterCheck = DischargInfo.NoComplete;
|
||||
SlaveCheck = DischargInfo.NoComplete;
|
||||
ConfigDataService = configDataService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 是否开始校验
|
||||
/// </summary>
|
||||
public bool IsStartCheck { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 夜间充的电 主储能箱是否放完
|
||||
/// </summary>
|
||||
public DischargInfo MasterCheck { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 夜间充的电 从储能箱是否放完
|
||||
/// </summary>
|
||||
public DischargInfo SlaveCheck { get; set; }
|
||||
|
||||
|
||||
private double _MasterSoc;
|
||||
/// <summary>
|
||||
/// 主储能柜的SOC
|
||||
/// 在新的一天中,根据SOC达到阈值决定是否夜间的电放完
|
||||
/// </summary>
|
||||
public double MasterSoc
|
||||
{
|
||||
get
|
||||
{
|
||||
return _MasterSoc;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (IsStartCheck)
|
||||
{
|
||||
if (_MasterSoc != value && value <= ConfigDataService.energyStorageRunConfig.BMSSocDownSignLimitValue)
|
||||
{
|
||||
MasterCheck = DischargInfo.DischargComplete;
|
||||
_MasterSoc = value;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_MasterSoc = value;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private double _SlaveSoc;
|
||||
/// <summary>
|
||||
/// 从储能柜的SOC
|
||||
/// 在新的一天中,根据SOC达到阈值决定是否夜间的电放完
|
||||
/// </summary>
|
||||
public double SlaveSoc
|
||||
{
|
||||
get
|
||||
{
|
||||
return _SlaveSoc;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (IsStartCheck)
|
||||
{
|
||||
if (_SlaveSoc != value && value <= ConfigDataService.energyStorageRunConfig.BMSSocDownSignLimitValue)
|
||||
{
|
||||
SlaveCheck = DischargInfo.DischargComplete;
|
||||
_SlaveSoc = value;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_SlaveSoc = value;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 配置数据
|
||||
/// </summary>
|
||||
public ConfigDataService ConfigDataService { get; }
|
||||
|
||||
|
||||
///// <summary>
|
||||
///// 获取状态
|
||||
///// </summary>
|
||||
///// <returns></returns>
|
||||
//public bool GetCheckState()
|
||||
//{
|
||||
// return MasterCheck && SlaveCheck;
|
||||
//}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 设置一天的初始状态
|
||||
/// </summary>
|
||||
public void SetDayInitState(double Mastersoc, double Slavesoc)
|
||||
{
|
||||
//比如从夜间切换到白天,算是一天的开始,判断此时的SOC是否被充满,如果是充满的话,则是属于夜间低谷的电量,需要标记
|
||||
|
||||
IsStartCheck = true;
|
||||
|
||||
if (Mastersoc >= ConfigDataService.energyStorageRunConfig.BMSSocUpSignLimitValue * 0.8)
|
||||
{
|
||||
MasterCheck = DischargInfo.NoComplete;
|
||||
}
|
||||
else
|
||||
{
|
||||
MasterCheck = DischargInfo.DischargComplete;
|
||||
}
|
||||
|
||||
//理论是从储能充电60%
|
||||
if (Slavesoc >= 50)
|
||||
{
|
||||
SlaveCheck = DischargInfo.NoComplete;
|
||||
}
|
||||
else
|
||||
{
|
||||
SlaveCheck = DischargInfo.DischargComplete;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 设置白天结束的状态
|
||||
/// </summary>
|
||||
public void SetDayEndState()
|
||||
{
|
||||
IsStartCheck = false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 放电信息
|
||||
/// </summary>
|
||||
public enum DischargInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// 放电放完了
|
||||
/// </summary>
|
||||
DischargComplete = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 没有完成
|
||||
/// </summary>
|
||||
NoComplete = 2
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user