TypeScript kullanarak kendi hesaplamalarınızı oluşturabilirsiniz. Bu sayfanın altındaki kod, güneş paneli kurmanın veya elektrik faturanızı olduğu gibi ödemeye devam etmenin uzun vadede daha ucuz olup olmadığını belirlemenize yardımcı olur.
Kodun güneş paneli maliyetlerini nasıl belirlediğine dair ayrıntılı bilgiyi burada bulabilirsiniz.
1. Bölüm: Sistem gereksinimleri ve kurulum
Önce mevcut elektrik kullanımınızı ve faturalarınızı tanımlayın:
- Her ay ne kadar elektrik kullanıyorsunuz? (
monthlyKwhEnergyConsumption
) - O elektriğin maliyeti ne kadar? (
energyCostPerKwh
)
Sonra güneş sistemi planlarınızı girin:
- Kaç panel? (
panelsCount
) - Paneller ne kadar güçlü? (
panelCapacityWatts
) - Kurulum maliyeti ne kadardır? (
installationCostPerWatt
) - Sistemde indirim var mı? (
solarIncentives
)
2. Bölüm: Hesaplamalar
Kod, girilen değerlere göre şunları hesaplar:
yearlyProductionAcKwh
: Güneş panellerinizin üretebileceği yıllık toplam elektrik miktarı.totalCostWithSolar
: Güneş panelleri kullanarak uzun yıllar içindeki elektriğin maliyeti.totalCostWithoutSolar
: Güneş paneli olmadan uzun yıllar boyunca elde edilen elektrik maliyeti.
3. Bölüm: Sonuçlar
Kodda aşağıdakiler de yer alır:
savings
: Güneş panelleri olsun ve olmasın maliyet arasındaki fark.breakEvenYear
: Güneş panellerinin maliyetinin, elektrik tasarrufuna eşit hale gelmesine kaç yıl kaldığını belirtir.
Örnek kod
// 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`);