আপনি টাইপস্ক্রিপ্ট ব্যবহার করে নিজের হিসাব তৈরি করতে পারেন। এই পৃষ্ঠার নিচের কোডটি আপনাকে নির্ধারণ করতে সাহায্য করবে যে দীর্ঘমেয়াদে সৌর প্যানেল স্থাপন করা বেশি সাশ্রয়ী হবে, নাকি আগের মতোই বিদ্যুৎ বিল পরিশোধ করা চালিয়ে যাওয়া ভালো।
কোডটি কীভাবে সোলার প্যানেলের খরচ নির্ধারণ করে, তার একটি বিশদ বিবরণ এখানে দেওয়া হলো।
পর্ব ১: সিস্টেমের প্রয়োজনীয়তা ও সেটআপ
প্রথমে, আপনার বর্তমান বিদ্যুৎ ব্যবহার এবং বিল নির্ধারণ করুন:
- আপনি প্রতি মাসে কী পরিমাণ বিদ্যুৎ ব্যবহার করেন? (
monthlyKwhEnergyConsumption) - ওই বিদ্যুতের দাম কত? (
energyCostPerKwh)
এরপর, আপনার সৌরজগতের পরিকল্পনাগুলো লিখুন:
- কয়টি প্যানেল? (
panelsCount) - প্যানেলগুলো কতটা শক্তিশালী? (
panelCapacityWatts) - ইনস্টলেশন খরচ কত? (
installationCostPerWatt) - সিস্টেমটিতে কোনো ছাড় আছে কি? (
solarIncentives)
পর্ব ২: গণনা
প্রদত্ত মানগুলোর উপর ভিত্তি করে কোডটি গণনা করে:
-
yearlyProductionAcKwh: আপনার সোলার প্যানেলগুলো বছরে মোট যে পরিমাণ বিদ্যুৎ উৎপাদন করতে পারে। -
totalCostWithSolar: সৌর প্যানেল ব্যবহার করে বহু বছর ধরে বিদ্যুতের খরচ। - সোলার প্যানেল ছাড়া
totalCostWithoutSolar: বহু বছর ধরে বিদ্যুতের খরচ।
পর্ব ৩: ফলাফল
কোডটি আপনাকে নিম্নলিখিত বিষয়গুলোও জানায়:
-
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`);