Sie können Ihre eigenen Berechnungen mit TypeScript erstellen. Der Code unten auf der können Sie feststellen, ob die Installation auf lange Sicht kostengünstiger ist, Sonnenkollektoren oder die Stromrechnung bezahlen, wie sie sind.
Im Folgenden finden Sie eine allgemeine Aufschlüsselung, wie die Kosten für Solarmodule durch den Code bestimmt werden.
Teil 1: Systemanforderungen und -einrichtung
Definieren Sie zunächst Ihren aktuellen Stromverbrauch und Ihre aktuellen Stromrechnungen:
- Wie viel Strom verbrauchen Sie jeden Monat? (
monthlyKwhEnergyConsumption
) - Wie viel kostet dieser Strom? (
energyCostPerKwh
)
Gib als Nächstes deine Pläne für das Sonnensystem ein:
- Wie viele Bereiche? (
panelsCount
) - Wie leistungsstark sind die Panels? (
panelCapacityWatts
) - Wie viel kostet die Installation? (
installationCostPerWatt
) - Gibt es Rabatte im System? (
solarIncentives
)
Teil 2: Berechnungen
Anhand der eingegebenen Werte berechnet der Code Folgendes:
yearlyProductionAcKwh
: Der gesamte jährliche Stromverbrauch, den Sie mit Ihren Solarmodulen erzielen können generieren.totalCostWithSolar
: Die Stromkosten mit Solarenergie über viele Jahre hinweg Steuerfeldern.totalCostWithoutSolar
: Die Stromkosten über viele Jahre hinweg ohne Sonnenkollektoren.
Teil 3: Ergebnisse
Der Code gibt Ihnen außerdem folgende Informationen:
savings
: Die Differenz zwischen den Kosten mit und ohne Solarmodule.breakEvenYear
: Wie lange dauert es, bis die Kosten für Solarmodule gleich Stromeinsparungen.
Beispielcode
// Solar configuration, from buildingInsights.solarPotential.solarPanelConfigs let panelsCount = 20; let yearlyEnergyDcKwh = 12000; // Basic settings let monthlyAverageEnergyBill: number = 300; let energyCostPerKwh = 0.31; let panelCapacityWatts = 400; let solarIncentives: number = 7000; let installationCostPerWatt: number = 4.0; let installationLifeSpan: number = 20; // Advanced settings let dcToAcDerate = 0.85; let efficiencyDepreciationFactor = 0.995; let costIncreaseFactor = 1.022; let discountRate = 1.04; // Solar installation let installationSizeKw: number = (panelsCount * panelCapacityWatts) / 1000; let installationCostTotal: number = installationCostPerWatt * installationSizeKw * 1000; // Energy consumption let monthlyKwhEnergyConsumption: number = monthlyAverageEnergyBill / energyCostPerKwh; let yearlyKwhEnergyConsumption: number = monthlyKwhEnergyConsumption * 12; // Energy produced for installation life span let initialAcKwhPerYear: number = yearlyEnergyDcKwh * dcToAcDerate; let yearlyProductionAcKwh: number[] = [...Array(installationLifeSpan).keys()].map( (year) => initialAcKwhPerYear * efficiencyDepreciationFactor ** year, ); // Cost with solar for installation life span let yearlyUtilityBillEstimates: number[] = yearlyProductionAcKwh.map( (yearlyKwhEnergyProduced, year) => { const billEnergyKwh = yearlyKwhEnergyConsumption - yearlyKwhEnergyProduced; const billEstimate = (billEnergyKwh * energyCostPerKwh * costIncreaseFactor ** year) / discountRate ** year; return Math.max(billEstimate, 0); // bill cannot be negative }, ); let remainingLifetimeUtilityBill: number = yearlyUtilityBillEstimates.reduce((x, y) => x + y, 0); let totalCostWithSolar: number = installationCostTotal + remainingLifetimeUtilityBill - solarIncentives; console.log(`Cost with solar: $${totalCostWithSolar.toFixed(2)}`); // Cost without solar for installation life span let yearlyCostWithoutSolar: number[] = [...Array(installationLifeSpan).keys()].map( (year) => (monthlyAverageEnergyBill * 12 * costIncreaseFactor ** year) / discountRate ** year, ); let totalCostWithoutSolar: number = yearlyCostWithoutSolar.reduce((x, y) => x + y, 0); console.log(`Cost without solar: $${totalCostWithoutSolar.toFixed(2)}`); // Savings with solar for installation life span let savings: number = totalCostWithoutSolar - totalCostWithSolar; console.log(`Savings: $${savings.toFixed(2)} in ${installationLifeSpan} years`);