Anda dapat membuat penghitungan Anda sendiri menggunakan TypeScript. Kode di bagian bawah halaman ini membantu Anda menentukan apakah lebih murah dalam jangka panjang untuk memasang panel surya atau terus membayar tagihan listrik seperti biasa.
Berikut adalah perincian umum tentang cara kode menentukan biaya panel surya.
Bagian 1: Kebutuhan dan penyiapan sistem
Pertama, tentukan penggunaan dan tagihan listrik Anda saat ini:
- Berapa banyak listrik yang Anda gunakan setiap bulan? (
monthlyKwhEnergyConsumption
) - Berapa biaya listriknya? (
energyCostPerKwh
)
Selanjutnya, masukkan rencana tata surya Anda:
- Berapa jumlah panel? (
panelsCount
) - Seberapa canggih panel tersebut? (
panelCapacityWatts
) - Berapa biaya pemasangannya? (
installationCostPerWatt
) - Apakah ada diskon untuk sistem ini? (
solarIncentives
)
Bagian 2: Penghitungan
Berdasarkan nilai yang dimasukkan, kode akan menghitung:
yearlyProductionAcKwh
: Total listrik tahunan yang dapat dihasilkan panel surya Anda.totalCostWithSolar
: Biaya listrik selama bertahun-tahun dengan panel solar.totalCostWithoutSolar
: Biaya listrik selama bertahun-tahun tanpa panel surya.
Bagian 3: Hasil
Kode ini juga memberi tahu Anda hal berikut:
savings
: Perbedaan antara biaya dengan dan tanpa panel surya.breakEvenYear
: Berapa tahun hingga biaya panel surya sama dengan penghematan listrik.
Kode contoh
// 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`);