TypeScript-এ খরচ এবং সঞ্চয় গণনা করুন

আপনি TypeScript ব্যবহার করে আপনার নিজস্ব গণনা তৈরি করতে পারেন। এই পৃষ্ঠার নীচের কোডটি আপনাকে সৌর প্যানেল ইনস্টল করা দীর্ঘমেয়াদে সস্তা কিনা বা আপনার বিদ্যুতের বিল যেমনভাবে পরিশোধ করা চালিয়ে যেতে পারে তা নির্ধারণ করতে সহায়তা করে।

কোডটি কীভাবে সোলার প্যানেলের খরচ নির্ধারণ করে তার একটি উচ্চ-স্তরের ব্রেকডাউন এখানে রয়েছে।

পার্ট 1: সিস্টেমের প্রয়োজন এবং সেটআপ

প্রথমে, আপনার বর্তমান বিদ্যুৎ ব্যবহার এবং বিল সংজ্ঞায়িত করুন:

  • আপনি প্রতি মাসে কত বিদ্যুৎ ব্যবহার করেন? ( monthlyKwhEnergyConsumption Consumption)
  • সেই বিদ্যুতের দাম কত? ( 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`);