package com.gyee.power.fitting.dispersionanalysis; import java.util.HashMap; import java.util.Map; public class PhotovoltaicEfficiencyAnalysis { public static void main(String[] args) { // 模拟全站光伏逆变单元的数据,这里用一个Map来表示每个逆变单元的发电功率和入射光能 Map inverterData = new HashMap<>(); inverterData.put("Inverter1", new Double[]{500.0, 600.0}); inverterData.put("Inverter2", new Double[]{550.0, 600.0}); inverterData.put("Inverter3", new Double[]{450.0, 600.0}); inverterData.put("Inverter4", new Double[]{600.0, 600.0}); inverterData.put("Inverter5", new Double[]{350.0, 600.0}); // 分析光伏逆变单元的运行水平 for (Map.Entry entry : inverterData.entrySet()) { String inverterName = entry.getKey(); Double[] data = entry.getValue(); double actualOutputPower = data[0]; // 实际发电功率 double incidentSolarPower = data[1]; // 入射光能 double efficiency = calculatePhotovoltaicEfficiency(actualOutputPower, incidentSolarPower); OperatingLevel currentLevel = determinePhotovoltaicLevel(efficiency); // 输出每个逆变单元的运行水平 System.out.println(inverterName + "的运行水平是: " + currentLevel); } } // 根据转换效率确定光伏运行水平 private static OperatingLevel determinePhotovoltaicLevel(double efficiency) { if (efficiency >= 90.0) { return OperatingLevel.STABLE; } else if (efficiency >= 80.0) { return OperatingLevel.GOOD; } else if (efficiency >= 70.0) { return OperatingLevel.NEEDS_IMPROVEMENT; } else { return OperatingLevel.MUST_CORRECT; } } // 计算光伏转换效率 private static double calculatePhotovoltaicEfficiency(double actualOutputPower, double incidentSolarPower) { // 转换为百分比 return (actualOutputPower / incidentSolarPower) * 100.0; } }