TypeScript を使用して、独自の計算を作成できます。下部のコードは このページは、長期的に見て、より安くインストールできるかどうかを判断するのに役立ちます。 太陽光パネルの設置や 電気代の支払いを継続できます
以下に、コードが太陽光パネルのコストを決定する仕組みの概要を示します。
パート 1: システムのニーズと設定
まず、現在の電力使用量と請求額を定義します。
- 毎月の電力使用量はどれくらいですか?(
monthlyKwhEnergyConsumption
) - 電気代はいくらですか?(
energyCostPerKwh
)
次に、太陽光発電システムの計画を入力します。
- パネルはいくつありますか。(
panelsCount
) - パネルはどの程度強力ですか?(
panelCapacityWatts
) - 設置費用はいくらですか?(
installationCostPerWatt
) - システムに対する割引はありますか?(
solarIncentives
)
パート 2: 計算
このコードは、入力された値に基づいて以下を計算します。
yearlyProductionAcKwh
: 太陽光パネルの年間電力の総計 生成します。totalCostWithSolar
: 太陽光発電を利用した長年の電力費用 できます。totalCostWithoutSolar
: 使用しない場合の電気料金 あります
パート 3:結果
このコードでは次のこともわかります。
savings
: 太陽光パネルがある場合とない場合の費用の差。breakEvenYear
: 太陽光パネルのコストが 電気代を節約できます。
コード例
// 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`);