جایابی باتری برای کاهش هدررفت تجدیدپذیرها
جایابی بهینه ایستگاههای ذخیرهسازی انرژی در شبکه انتقال برای کاهش هدررفت تولیدات تجدیدپذیر و بهبود بهرهبرداری با استفاده از مدلسازی ریاضی.
📋 معرفی پروژه
هدف: تعیین مکان بهینه ایستگاههای ذخیرهسازی انرژی (باتری) در شبکههای انتقال برق برای:
- ✅ کاهش هدر رفت تولیدات تجدیدپذیر (خورشیدی، بادی)
- ✅ بهبود پایداری شبکه و کاهش قطع برق
- ✅ کاهش هزینههای نوسان قیمت برق
- ✅ بهینهسازی سرمایهگذاری و بهرهوری
اگر با مبانی مدلسازی ریاضی مسائل بهینهسازی آشنا نیستید، دوره مدلسازی مسائل بهینهسازی پیشزمینهی خوبی میدهد.

تصویر بالا نمونهای ساده از یک شبکه انتقال را نشان میدهد؛ نقاط کرال، مکانهای کاندید برای نصب باتری هستند که معمولاً نزدیک باسهای دارای تولید تجدیدپذیر یا گلوگاههای شبکه انتخاب میشوند.
🎯 ۱۰ تحویل پروژه
تحویل ۱: مدلسازی ریاضی شبکه و تدوین مسئله
اهداف:
- تعریف ریاضی مسئله بهینهسازی
- مشخص کردن متغیرهای تصمیم، تابع هدف و قیود
- تجزیهتحلیل ادبیات پروژه
خروجی:
- گزارش مدل ریاضی ۵ صفحهای
- فرمولبندی دقیق قیود شبکه (Kirchhoff، ظرفیت خط، محدودیت ژنراتور)
- فرمولبندی معادلات ذخیرهساز (شارژ/دشارژ، تلفات، حد ذخیره)
تحویل ۲: جمعآوری و پردازش دادههای شبکه
اهداف:
- جمعآوری توپولوژی شبکه (نقاط، خطوط، ظرفیتها)
- آمادهسازی دادههای بار و تولید تجدیدپذیر
- تهیه حالات سناریوی مختلف (روز پُربار، روز کمبار، فصلهای مختلف)
خروجی:
- فایل داده شامل: topology، time-series بار، تولید تجدیدپذیر
- نمودارهای توصیفی بار و منابع تجدیدپذیر
تحویل ۳: کدنویسی مدل بدون ذخیرهساز (Baseline)
اهداف:
- پیادهسازی مسئلهی پاورفلو بدون ذخیرهساز
- تعیین سناریو بیس برای مقایسه
خروجی:
# کد Pyomo:
# - متغیرهای: تولید ژنراتور، جریان خط، زاویه ولتاژ
# - قیود: بالانس توان، محدودیت خط، محدودیت ژنراتور
# - هدف: کمینهسازی هزینهی تولید
- کد کامل + نتایج baseline
- نقاط گرفتگی در شبکه (congestion points)
تحویل ۴: مدلسازی ذخیرهساز و قیود جدید
اهداف:
- اضافه کردن متغیرهای ذخیرهساز (موقعیت، ظرفیت، شارژ/دشارژ)
- تدوین قیود ذخیرهی انرژی و حدهای تکنیکی
خروجی:
# متغیرهای جدید:
m.battery_capacity[i] # ظرفیت در نقطه i
m.energy_level[i,t] # سطح انرژی در زمان t
m.charge[i,t], m.discharge[i,t]
- قیود: SoE (State of Energy)، تلفات، حدهای شارژ/دشارژ
- کد اولیه با تحلیل قیود
تحویل ۵: تدوین هدف (Objective Function) چندهدفه
اهداف:
- تعریف تابعهای هدف متعدد:
- کمینهسازی هزینهی تولید
- کمینهسازی هدر رفت تجدیدپذیرها
- کمینهسازی هزینهی سرمایهگذاری ذخیرهساز
خروجی:
- فرمول ریاضی هدفهای منفرد
- وزندهی و ترکیب اهداف (Weighted Multi-Objective)
- تحلیل Pareto Front
تحویل ۶: حل مسئله برای شبکه کوچک (Test Case)
اهداف:
- اجرای مدل روی یک شبکه کوچک و ساده (۳-۵ باس)
- تصحیح syntax و logic errors
- بررسی معقولبودن نتایج
خروجی:
# نتایج:
# - جایابی بهینه ذخیرهسازها
# - سطح انرژی و جریان شارژ/دشارژ
# - تابع هدف (کل هزینه)
- جداول و نمودارهای نتایج
- مقایسه با baseline
تحویل ۷: بهبود و بهینهسازی کد
اهداف:
- بهتر کردن solver settings (TimeLimit، Optimality Gap)
- اضافه کردن warm start و heuristics
- بهبود سرعت حل
خروجی:
- بررسی solver logs و زمان حل
- تحلیل sensitivity روی پارامترهای مختلف
- گزارش بهبودهای اعمالشده
تحویل ۸: حل برای شبکه واقعی (۳۰ یا ۱۱۸ نقطه)
اهداف:
- اجرای مدل روی شبکهی واقعی بزرگتر
- مقابله با مسائل محاسباتی
خروجی:
- نتایج جایابی بهینه برای شبکه بزرگ
- ماندهی بهینگی (optimality gap)
- نقاط ذخیرهسازی پیشنهادی و اندازههای آنها
تحویل ۹: تحلیل سناریوها و حساسیت
اهداف:
- بررسی نتایج در سناریوهای مختلف:
- افزایش نفوذ تجدیدپذیرها (۳۰٪، ۵۰٪، ۷۰٪)
- تغییر ظرفیت شبکه
- تأثیر قیمت ذخیرهساز
خروجی:
- جداول تحلیل حساسیت
- نمودارهای اثر متغیرهای کلیدی
- توصیههای برنامه ریزی
تحویل ۱۰: گزارش نهایی و ارائه
اهداف:
- خلاصه تمام یافتهها
- توصیههای عملی
- راهکارهای آینده
خروجی:
- گزارش نهایی 10 صفحهای
- ارائه و اسلایدهای خلاصه
- کد کامل با مستندات
- فایلهای داده و نتایج
📊 نتایج انتظاری
پس از تکمیل پروژه، باید بتوانی:
✅ مسئله جایابی بهینه را به شکل ریاضی فرموله کنی
✅ کد Pyomo/GAMS برای حل مسئله تولید کنی
✅ دادههای شبکه واقعی را پردازش و آنالیز کنی
✅ نتایج را تفسیر کنی و توصیههای عملی ارائه دهی
✅ گزارش حرفهای و ارائهی قابل قبول برای صنعت تدوین کنی
📁 فایلهای پروژه
| تحویل | فایل | توضیح |
|---|---|---|
| ۱ | model_formulation.pdf | مدل ریاضی کامل |
| ۲ | network_data.xlsx | توپولوژی و دادههای شبکه |
| ۳ | baseline_educ.py | کد baseline بدون ذخیرهساز |
| ۴-۸ | optimal_placement_v*.py | نسخههای مختلف کد |
| ۹ | sensitivity_analysis.py | تحلیل حساسیت |
| ۱۰ | final_report.pdf + presentation.pptx | گزارش و ارائه |
🚀 شروع کار
۱. مطالعه ادبیات: جستجو برای مقالات درباره Energy Storage Placement ۲. انتخاب شبکهی تست: از IEEE Test Cases استفاده کن (IEEE 30-Bus, IEEE 118-Bus)
پیش از شروع کدنویسی، مرور یادداشت مدلسازی ریاضی و اهمیت آن کمک میکند مسئله را درست فرموله کنید. برای اجرای کد بدون نصب چیزی روی سیستم خودتان، راهنمای Google Colab و برای انتخاب سالور مناسب، یادداشت سه روش عملی استفاده از سالورها در Pyomo را ببینید. اگر میخواهید فراتر از سناریوهای قطعی بروید و عدمقطعیت تولید تجدیدپذیر یا قیمت برق را هم صریح در مدل وارد کنید، دوره مدلسازی عدمقطعیت ابزار لازم را میدهد.
سوالات متداول
آیا برای این پروژه لازم است پیشزمینهی قوی در سیستم قدرت داشته باشم؟
نه لزوماً؛ آنچه بیشتر لازم است آشنایی با مفاهیم پایهی برنامهریزی خطی و مختلط-عدد صحیح است. در دوره سیستم قدرت پیشرفته این مفاهیم از پایه و با مثالهای عملی روی پایتون آموزش داده میشوند تا کسی که پیشزمینهی بهینهسازی دارد هم بتواند وارد این حوزه شود.
ثبتنام و دریافت پروژه
برای دریافت پروژه و راهنمایی، در تلگرام به آیدی @pypyid در تلگرام در تماس باشید.