电科院-电能替代模型工具开发
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

124 lines
5.3 KiB

package com.dky.calculate;
import com.dky.entity.Heatboiler;
import com.dky.entity.HeatboilerSpec;
import com.dky.entity.OriginalDevice;
import com.dky.utils.enums.EnergyPriceType;
public class HeatBoilerModel {
// 标准煤转换系数:千克标准煤/千克
private static final double coalConversionFactor = 0.7143;
// 电能转换到标准煤的系数:千克标准煤/千瓦时
private static final double electricityConversionFactor = 0.1229;
// 标准煤转换到二氧化碳的系数:千克二氧化碳/千克标准煤
private static final double carbonConversionFactor = 1.9003;
/**
* 计算初次投资费用
* @param heatboilerSpec 非表中参数
* @param heatboiler 基础入参
* @param originalDevice 原设备参数
* @param d 热效率,后期从设备中获取 TODO
* @return 初次投资费用
*/
public static double calculateInitialInvestment(HeatboilerSpec heatboilerSpec, Heatboiler heatboiler , OriginalDevice originalDevice,Double d) {
// 计算电替代设备台数 = 供热设备功率(蒸吨)/(电替代设备功率<A>*热效率)
double substituteElectricityDevices = heatboiler.getHotDevicePower() / (heatboiler.getHotDevicePower() * d);
// 计算初次投资费用
return substituteElectricityDevices * 1;
}
/**
* 计算年运行费用
* @param devicePower 电替代设备功率
* @param deviceCount 电替代设备台数
* @param deviceSubstituteLaborCost 电替代设备人工费用
* @param deviceAnnualOperationTime 电替代设备年运行时间
* @return 年运行费用
*/
public static double calculateAnnualOperatingCost(Double devicePower, Integer deviceCount, Double deviceSubstituteLaborCost, Integer deviceAnnualOperationTime) {
// 电替代设备年耗电量=单台电替代设备的功率<A>*电替代设备台数*电设备年运行时间<B>
double annualElectricityConsumption = devicePower * deviceCount * deviceAnnualOperationTime;
// 年运行费用=电替代设备年耗电量*平均电价(0.5元/千瓦时) + 单台电替代设备人工费用成本<A> * 台数
return annualElectricityConsumption * EnergyPriceType.Industry_Electric_Price.getPrice() + deviceSubstituteLaborCost * deviceCount;
}
/**
* 计算年总费用
* @param devicePower 电替代设备功率
* @param deviceCount 电替代设备台数
* @param deviceSubstituteLaborCost 电替代设备人工费用
* @param deviceAnnualOperationTime 电替代设备年运行时间
* @param devicePrice 设备价格
* @param deviceServiceLife 设备使用年限
* @return
*/
public static double calculateAnnualTotalCost(Double devicePower, Integer deviceCount, Double deviceSubstituteLaborCost, Integer deviceAnnualOperationTime, Double devicePrice, Integer deviceServiceLife) {
//(电替代设备台数*单台电设备价格<A>)/电替代设备的使用年限<A>
double v = ((devicePrice * deviceCount) / deviceServiceLife);
// 年总费用=(电替代设备台数*单台电设备价格<A>)/电替代设备的使用年限<A> + 年运行费用
return v + calculateAnnualOperatingCost(devicePower, deviceCount, deviceSubstituteLaborCost, deviceAnnualOperationTime);
}
/**
* 计算年减碳量
* @param previousYearEnergyUsage 替代前原设备碳排放量
* @param deviceElectric 电替代耗电量
* @param electricEmission 电替代设备碳排放因子
* @return 年减碳量
*/
public static double calculateAnnualCarbonReduction(Double previousYearEnergyUsage, Double deviceElectric, Double electricEmission) {
// 计算电替代设备年耗电量对应的标准煤量
double coalEquivalentFromElectricity = deviceElectric * electricEmission;
// 计算年减碳量
return previousYearEnergyUsage - coalEquivalentFromElectricity;
}
/**
* 计算电替代设备年耗电量
* @param devicePower 设备功率
* @param deviceCount 设备台数
* @param deviceAnnualOperationTime 单台电设备年运行时间
* @return
*/
public static double calculateSubstituteElectricity(Double devicePower, Integer deviceCount, Integer deviceAnnualOperationTime) {
// 电替代设备年耗电量 = 电替代设备的功率<A> * 电替代设备台数 * 电设备年运行时间<B>
return devicePower * deviceCount * deviceAnnualOperationTime;
}
/**
* 计算原设备上年运行费用
* @param laborCost 人工成本
* @param lastYearEnergyUse 替代前年能源使用量
* @param energyPrice 平均能源单价
* @return
*/
public static double calLastYearFee(Double laborCost, Double lastYearEnergyUse, Double energyPrice) {
// 上年运行费用(即原设备运行费用)= 上年能源使用量 * 平均能源单价 + 上年人工成本
return energyPrice * lastYearEnergyUse + laborCost;
}
/**
* 计算原设备年减碳量
* @param lastYearEnergyUse 替代前年能源使用量
* @param d 相关能源排放系数
* @return
*/
public static double calLastYearFactor(Double lastYearEnergyUse , Double d) {
return lastYearEnergyUse * d;
}
}