| Appliance | Quantity | Watts (Volts x Amps) | Hours On per Day | Watt Hours per Day | Action |
|---|
// ====================== 第3部分:新增的太阳能板功率计算函数 ====================== /** * 计算并更新太阳能板功率 * 公式:太阳能板功率 (Wp) = 总每日瓦时 (Wh) ÷ (有效日照时数 (h) × 系统效率系数0.8) */ function calculateSolarPanelPower() { // 1. 获取总每日瓦时 const totalWattHoursPerDay = parseFloat(document.getElementById('total-watts-hours-per-day').textContent) || 0; // 2. 检查是否有有效的日照时数 if (currentSunshineHours > 0 && totalWattHoursPerDay > 0) { const systemEfficiency = 0.8; // 系统效率系数 const panelPower = totalWattHoursPerDay / (currentSunshineHours * systemEfficiency); // 3. 更新显示 solarPanelPowerEl.textContent = Math.ceil(panelPower) + ' Wp'; // 向上取整,单位峰瓦 powerFormulaEl.innerHTML = `公式:${totalWattHoursPerDay.toFixed(0)}Wh ÷ (${currentSunshineHours}h × 0.8) ≈ ${Math.ceil(panelPower)}Wp`; } else { // 如果条件不满足,显示提示或0 solarPanelPowerEl.textContent = '0 Wp'; powerFormulaEl.textContent = '请完成Step 1和Step 2的填写以进行计算。'; } } // ====================== 第4部分:集成与联动 ====================== // 重写原有的 calculateTotals 函数,使其在更新总计后自动调用太阳能板功率计算 // 注意:这需要替换掉您原有代码中的 calculateTotals 函数 function calculateTotals() { // 【此处是您原有的计算总瓦数和总瓦时的逻辑,保持不变】 let totalPeakLoad = 0; let totalWattHoursPerDay = 0; document.querySelectorAll('.appliance-row').forEach(row => { const result = calculateRow(row); totalPeakLoad += result.quantity * result.watts; totalWattHoursPerDay += result.wattHours; }); peakLoadEl.textContent = totalPeakLoad.toFixed(2) + ' W'; totalWattsHoursEl.textContent = totalWattHoursPerDay.toFixed(2) + ' Wh'; const kWhPerMonth = (totalWattHoursPerDay * 30) / 1000; kWhPerMonthEl.value = kWhPerMonth.toFixed(2); // ===== 新增的关键调用 ===== // 在每次负载变化重新计算总计后,自动触发太阳能板功率计算 calculateSolarPanelPower(); } // 初始化:在页面加载时,也尝试计算一次(如果国家已选) // 这行调用可以放在您原有的事件监听和初始化代码之后 // calculateSolarPanelPower(); // 初始状态通常不显示,可注释 });