بازگشت به دوره‌ها
پیشرفته ۲۲ ساعت Python (Pyomo) ۱۰ جلسه

دوره پیشرفته بهینه‌سازی سیستم قدرت با پایتون

کاور دوره آموزشی بهینه‌سازی پیشرفته سیستم‌های قدرت در پایتون با Pyomo

پیش‌نیاز دوره

آشنایی پایه با زبان برنامه‌نویسی پایتون

معرفی دوره

در این دوره پیشرفته آموزش بهینه‌سازی سیستم‌های قدرت در پایتون، با تدریس دکتر علیرضا سرودی، به صورت کاملاً کاربردی با مدل‌سازی مسائل کلیدی صنعت برق مانند آرایش بهینه واحدها (Unit Commitment)، پخش بار بهینه (OPF) و برنامه‌ریزی توسعه شبکه با استفاده از Pyomo آشنا می‌شوید.


سرفصل‌های دوره

بخش ۱ — آرایش بهینه واحدها (Unit Commitment)

آشنایی با یکی از کلیدی‌ترین مسائل بهره‌برداری سیستم قدرت: تصمیم درباره روشن یا خاموش‌بودن هر واحد تولیدی در هر ساعت. منطق و اهمیت مسئله بررسی می‌شود و انواع قیود واقعی آن مرور می‌شوند: بالانس توان، ذخیره چرخان، حدود تولید، قیود رمپ، حداقل زمان روشن/خاموش‌بودن و هزینه‌های راه‌اندازی. این جلسه پایه فرمول‌بندی و حل مسائل جلسات بعد است. در پایان، خروجی را به‌صورت نمودار زمان‌بندی روشن/خاموش واحدها و سهم تولید هر واحد در طول شبانه‌روز تصویرسازی می‌کنیم.

نمودار آرایش بهینه واحدها و سهم تولید در طول شبانه‌روز

بخش ۲ — پخش بار DC و قیود امنیت N-1

مدل ساده‌شده، خطی و سریع شبکه برای استفاده در مسائل بهینه‌سازی بزرگ. ابتدا منطق و فرض‌های مدل DC مرور می‌شود، سپس معیار امنیت N-1 معرفی می‌گردد: شبکه باید بتواند خروج هر یک عضو (خط یا ترانس) را بدون اضافه‌بار شدن خطوط دیگر تحمل کند. برای کارایی محاسباتی، استفاده از ضرایب حساسیت آماده (PTDF و LODF) آموزش داده می‌شود. هم‌چنین بارگذاری خطوط در حالت عادی و در سناریوهای خروج N-1 را روی نمودار رسم می‌کنیم تا خطوط بحرانی مشخص شوند.

مقایسه پخش بار DC در حالت عادی و سناریوی امنیت N-1

بخش ۳ — پخش بار AC و AC-OPF

مدل کامل و واقعی شبکه با ولتاژ متغیر، توان راکتیو و تلفات واقعی. تفاوت آن با مدل DC و دلیل سنگین‌تر و غیرخطی بودنش بررسی می‌شود. سپس AC-OPF معرفی می‌شود: یافتن بهترین نقطه کاری شبکه با هدف کمینه‌کردن هزینه و رعایت قیود ولتاژ، توان ژنراتورها و ظرفیت خطوط. تأکید بر غیرمحدب بودن مسئله و چالش رسیدن به جواب بهینه سراسری. در ادامه پروفایل ولتاژ باس‌ها و مقایسه تصویری نتایج AC با DC را رسم می‌کنیم.

پروفایل ولتاژ باس‌ها و مقایسه مدل AC و DC

بخش ۴ — جایابی باتری در شبکه انتقال (DC-OPF + Storage)

تصمیم درباره محل و ظرفیت نصب باتری ذخیره‌ساز در شبکه انتقال، روی پایه مدل DC-OPF و در یک افق چندبازه‌ای. دو نوع تصمیم در هم تنیده بررسی می‌شود: سرمایه‌گذاری (محل و اندازه) و بهره‌برداری (الگوی شارژ/دشارژ). قیود کلیدی شامل حدود شارژ/دشارژ، حالت شارژ (SOC) و محدودیت محل‌های نصب است. نتیجه نشان می‌دهد باتری کجا بیشترین فایده را برای رفع گرفتگی خطوط و کاهش هزینه پیک دارد. محل بهینه باتری روی نقشه شبکه و منحنی شارژ/دشارژ و حالت شارژ آن در طول روز را نیز تصویرسازی می‌کنیم.

جایابی بهینه باتری در شبکه انتقال و الگوی شارژ و دشارژ

بخش ۵ — مدیریت مصرف در شبکه انتقال (Demand Response)

ورود انعطاف سمت تقاضا به بهینه‌سازی: بخشی از بار می‌تواند کاهش یابد یا به ساعات کم‌باری منتقل شود. روی پایه DC-OPF و به‌صورت چندبازه‌ای، دو رفتار اصلی بررسی می‌شود: کاهش بار و انتقال بار. هدف، کاهش هزینه سیستم و رفع گرفتگی و بار پیک است. نشان داده می‌شود فعال‌کردن انعطاف تقاضا چطور نیاز به تولید گران در ساعات اوج مصرف را کم می‌کند. برای درک بهتر، پروفایل بار قبل و بعد از مدیریت مصرف را کنار هم رسم می‌کنیم تا اثر کاهش و انتقال بار به‌صورت تصویری دیده شود.

مقایسه پروفایل بار پیش و پس از مدیریت مصرف

بخش ۶ — برنامه‌ریزی توسعه شبکه انتقال (TEP)

تصمیم بلندمدت و سرمایه‌ای درباره ساخت خطوط انتقال جدید برای پاسخ به رشد بار و اتصال منابع تازه. روی پایه DC-OPF و به‌صورت مسئله عدد صحیح-مخلوط (ساختن یا نساختن هر خط کاندید). ماهیت مسئله یک مصالحه اقتصادی است: هزینه سرمایه‌گذاری در برابر منفعت کاهش هزینه بهره‌برداری و رفع ازدحام. خروجی نشان می‌دهد کدام خطوط کاندید بیشترین ارزش را دارند. در پایان، شبکه توسعه‌یافته همراه با خطوط جدید پیشنهادی را روی نمودار شبکه به‌صورت تصویری نمایش می‌دهیم.

برنامه‌ریزی توسعه شبکه انتقال و انتخاب خطوط کاندید

بخش ۷ — بهینه‌سازی چندهدفه با پخش بار DC

دنبال‌کردن هم‌زمان دو هدف متضاد: کمینه‌کردن هزینه تولید و کمینه‌کردن آلودگی. چون این دو در تضادند، به‌جای یک جواب واحد دنبال «جبهه پارتو» می‌گردیم که مجموعه‌ای از مصالحه‌های متعادل بین هزینه و آلودگی است. روش‌های جمع وزنی و اپسیلون-قید برای ساخت این جبهه آموزش داده می‌شود. خروجی، نمودار هزینه در برابر آلودگی است که دامنه‌ای از انتخاب‌های منطقی را پیش روی بهره‌بردار می‌گذارد. خود جبهه پارتو را نیز به‌صورت نمودار رسم و تفسیر می‌کنیم تا مصالحه میان دو هدف ملموس شود.

جبهه پارتو برای مصالحه میان هزینه و آلودگی

بخش ۸ — عدم قطعیت در آرایش بهینه واحدها (بدون قیود شبکه)

بازگشت به مسئله آرایش واحدها، اما این بار با کنار گذاشتن فرض معلوم‌بودن بار و تولید. عدم قطعیت بار و تولید تجدیدپذیر وارد مسئله می‌شود و برای تمرکز بر خود مفهوم، قیود شبکه کنار گذاشته می‌شوند. رویکرد اصلی، تعیین آرایش بهینه واحدها با رویکرد تصادفی سناریو محوراست؛ تفاوت تصمیم‌های مرحله اول (روشن/خاموش مشترک بین سناریوها) و مرحله دوم (تنظیم تولید پس از مشخص‌شدن سناریو) بررسی می‌شود. نتیجه: لحاظ عدم قطعیت معمولاً واحدهای بیشتری را به‌صورت احتیاطی روشن نگه می‌دارد. پراکندگی سناریوهای بار و تجدیدپذیر و تصمیم‌های احتیاطی واحدها را هم به‌صورت تصویری نشان می‌دهیم.

عدم قطعیت در آرایش بهینه واحدها با رویکرد سناریومحور برای آشنایی عمیق‌تر با روش‌های مدل‌سازی عدم قطعیت مانند رویکردهای تصادفی، فازی، مقاوم و IGDT، می‌توانید دوره مدل‌سازی عدم قطعیت را نیز ببینید.

بخش ۹ — سوئیچینگ بهینه خطوط انتقال (Optimal Transmission Switching)

ایده‌ای خلاف‌انتظار: گاهی باز کردن عمدی یک خط انتقال، با هدایت جریان به مسیرهای بهتر، کل سیستم را بهبود می‌دهد. روی پایه DC-OPF و به‌صورت مسئله عدد صحیح-مخلوط، وضعیت وصل/قطع هر خط به متغیر تصمیم تبدیل می‌شود. نکته فنی کلیدی، غیرفعال‌شدن معادله جریان خط هنگام قطع آن است. معمولاً تعداد خطوط قابل سوئیچینگ محدود می‌شود تا مسئله عملی بماند. خروجی نشان می‌دهد سوئیچینگ هوشمندانه چند خط محدود چطور گرفتگی خطوط را کاهش می‌دهد. وضعیت شبکه و بارگذاری خطوط را پیش و پس از سوئیچینگ به‌صورت تصویری کنار هم مقایسه می‌کنیم.

مقایسه شبکه پیش و پس از سوئیچینگ بهینه خطوط انتقال

بخش ۱۰ — کنترل پیوسته توان راکتیو منابع خورشیدی در شبکه توزیع (Inverter Volt/VAR Optimization)

جمع‌بندی دوره با حرکت از شبکه انتقال به توزیع و حل یک مسئله کاملاً پیوسته و بدون متغیر باینری. منابع خورشیدی با محل و ظرفیت مشخص از قبل نصب شده‌اند و تنها تصمیم، تنظیم پیوسته توان راکتیو هر اینورتر است تا ولتاژ گره‌ها در محدوده مجاز بماند و تلفات کمینه شود. نکته فنی کلیدی، رابطه ظرفیت اینورتر است: توان اکتیو و راکتیو با هم ظرفیت ثابت اینورتر را پر می‌کنند، پس هرچه تولید توان اکتیو بیشتر باشد، جای کمتری برای توان راکتیو می‌ماند.

خروجی نشان می‌دهد چطور با همان اینورترهای موجود و بدون سرمایه‌گذاری جدید می‌توان پروفایل ولتاژ را بهبود داد و تلفات را کم کرد. در پایان، پروفایل ولتاژ فیدر را پیش و پس از کنترل، در کنار منحنی قابلیت اینورتر، تصویرسازی می‌کنیم.

کنترل Volt VAR اینورترها و بهبود پروفایل ولتاژ شبکه توزیع


نمای کلی مسیر دوره

بخشموضوعمدل پایه
۱قیود فنی اقتصادی واحدهاUC (MILP)
۲پخش بار DC و N-1DC
۳پخش بار AC و AC-OPFAC (غیرخطی)
۴جایابی باتریDC-OPF + ذخیره
۵مدیریت مصرفDC-OPF
۶توسعه شبکه انتقالDC-OPF (MILP)
۷بهینه‌سازی چندهدفهDC-OPF (پارتو)
۸عدم قطعیت در UCUC تصادفی
۹سوئیچینگ خطوطDC-OPF (MILP)
۱۰کنترل ولتاژ توزیعDG units

دستاوردهای دوره

در پایان این دوره، شرکت‌کنندگان می‌توانند مهم‌ترین مسائل بهینه‌سازی سیستم قدرت را به‌درستی فرمول‌بندی کرده و با ابزارهای استاندارد پایتون (مانند Pyomo) مدل‌سازی و حل کنند. آن‌ها با تفاوت مدل‌های DC و AC، مسائل خطی و غیرخطی، و مسائل پیوسته و عدد صحیح آشنا می‌شوند و می‌دانند برای هر مسئله کدام رویکرد و سالور مناسب است. علاوه بر مسائل کلاسیک بهره‌برداری مانند آرایش بهینه واحدها و پخش بار بهینه، شرکت‌کنندگان یاد می‌گیرند چطور با موضوعات روز مثل ذخیره‌سازها، مدیریت مصرف، عدم قطعیت منابع تجدیدپذیر، اهداف متضاد و مسائل شبکه توزیع کار کنند.

مهارت مهم دیگر، توانایی تحلیل و تصویرسازی نتایج است: در هر جلسه خروجی مسئله به‌صورت نمودار رسم و تفسیر می‌شود تا تصمیم‌ها قابل‌فهم و قابل‌ارائه شوند. در مجموع، هر شرکت‌کننده در پایان دوره مجموعه‌ای از کدهای قابل‌اجرا برای مسائل واقعی در اختیار دارد که پایه‌ای محکم برای پروژه‌های پژوهشی و صنعتی او خواهد بود.


یک نمونه کد Pyomo از پایه دوره

پیش از ورود به مسائل پیشرفته، پایه‌ی همه‌چیز «پخش بار اقتصادی» است: تعیین اینکه هر واحد تولیدی چقدر تولید کند تا هزینه سوخت کمینه شود و تعادل تولید و مصرف برقرار بماند. سه جزء اصلی هر مدل بهینه‌سازی در همین مثال دیده می‌شود: متغیر تصمیم (توان هر واحد)، تابع هدف (کمینه‌کردن هزینه) و قید (تعادل توان).

# پخش بار اقتصادی سه واحد تولیدی با Pyomo
# هدف: کمینه‌کردن هزینه سوخت با رعایت تعادل توان
from pyomo.environ import (ConcreteModel, Set, Var, Objective, Constraint,
                           NonNegativeReals, minimize, SolverFactory, value)

# داده واحدها: a,b ضرایب هزینه — Pmin/Pmax حدود تولید (مگاوات)
gens = {
    'G1': {'a': 0.110, 'b': 5.0, 'Pmin': 10, 'Pmax': 100},
    'G2': {'a': 0.085, 'b': 1.2, 'Pmin': 10, 'Pmax': 100},
    'G3': {'a': 0.122, 'b': 1.0, 'Pmin': 10, 'Pmax': 100},
}
demand = 210  # تقاضای کل شبکه (مگاوات)

m = ConcreteModel()
m.G = Set(initialize=list(gens.keys()))

# متغیر تصمیم: توان تولیدی هر واحد
m.P = Var(m.G, domain=NonNegativeReals,
          bounds=lambda m, g: (gens[g]['Pmin'], gens[g]['Pmax']))

# تابع هدف: هزینه درجه‌دوم سوخت
m.cost = Objective(
    rule=lambda m: sum(gens[g]['a'] * m.P[g]**2 + gens[g]['b'] * m.P[g]
                       for g in m.G),
    sense=minimize)

# قید تعادل توان: مجموع تولید = تقاضا
m.balance = Constraint(rule=lambda m: sum(m.P[g] for g in m.G) == demand)

# حل مدل (برای هدف غیرخطی از ipopt استفاده می‌کنیم)
SolverFactory('ipopt').solve(m)

for g in m.G:
    print(f"{g}: {value(m.P[g]):.2f} MW")
print(f"هزینه کل: {value(m.cost):.2f}")

چون تابع هزینه درجه‌دوم است، از solver غیرخطی ipopt استفاده می‌کنیم؛ اگر تابع هزینه را خطی کنید می‌توانید از glpk استفاده کنید. نصب: pip install pyomo و برای solver conda install -c conda-forge ipopt glpk. همین ساختار (متغیر، هدف، قید) در تمام جلسات دوره — از Unit Commitment تا AC-OPF — گسترش می‌یابد.


سوالات متداول درباره دوره

پیش‌نیاز این دوره چیست؟

آشنایی مقدماتی با پایتون و مفاهیم پایه سیستم قدرت کافی است. آشنایی قبلی با مدل‌سازی مسائل بهینه‌سازی توصیه می‌شود اما الزامی نیست.

از چه ابزار و solverهایی استفاده می‌شود؟

مدل‌سازی با Pyomo در پایتون انجام می‌شود. بسته به نوع مسئله از solverهای رایگان مانند GLPK و CBC برای مسائل خطی و عدد صحیح و IPOPT برای مسائل غیرخطی استفاده می‌کنیم.

چه مسائلی در دوره پوشش داده می‌شود؟

آرایش بهینه واحدها، پخش بار DC و AC، قیود امنیت N-1، جایابی باتری، مدیریت مصرف، توسعه شبکه انتقال، بهینه‌سازی چندهدفه، عدم قطعیت و سوئیچینگ بهینه خطوط.

خروجی نهایی دوره چیست؟

مجموعه‌ای از کدهای قابل‌اجرای پایتون برای مسائل واقعی سیستم قدرت که پایه‌ای برای پروژه‌های پژوهشی و صنعتی است.

دکتر علیرضا سرودی

دکتر علیرضا سرودی

متخصص ارشد علوم داده | راهبر پروژه‌های بهینه‌سازی و تحقیق در عملیات در شرکت EirGrid | عضو ارشد موسسه مهندسان برق و الکترونیک (Senior Member IEEE)

علیرضا سرودی نزدیک به یک دهه استاد دانشگاه دوبلین‌کالج ایرلند بوده و تحقیقاتش بر بهینه‌سازی سیستم‌های قدرت و زنجیره تامین متمرکز است و در آن‌ها از ابزارهای مختلفی مثل ORTools، Pyomo و GAMS بهره‌ می‌گیرد.

او تحصیلات خود را در مقاطع کارشناسی و کارشناسی ارشد در رشته مهندسی برق در دانشگاه صنعتی شریف به پایان رسانده و مدرک دکترای خود را در همین رشته از دانشگاه صنعتی گرونوبل در فرانسه دریافت کرده است. علیرضا سرودی برنده جایزه محقق جوان INFORM در سال 2013 و برگزیده گرنت تحقیقاتی بنیاد علوم ایرلند در سال 2017 است. انتشارات Springer کتاب Power System Optimization Modeling in GAMS به قلم علیرضا سرودی را در سال 2017 به چاپ رسانده است.

راهنمایی و ثبت‌نام

سوالی درباره ثبت‌نام دارید؟ با آیدی @pypyid در تلگرام در تماس باشید.

ارتباط در تلگرام

دوره‌های آموزشی مرتبط

مقالات و یادداشت‌های مرتبط

پروژه‌های مرتبط