توضیحات
Stochastic optimal generation bid to electricity markets with emissions risk constraints
پیشنهاد تولید بهینه تصادفی به بازارهای برق با محدودیت های خطر انتشار (آلایندگی)
شبیه سازی در محیط نرم افزار گمز انجام شده است.
دارای گزارش 18صفحه ای در قالب ورد است.
توضیحات پروژه
شبیهسازی با استفاده از گمز ورژن 24.1 انجام شدهاست. مدل مقاله به صورت برنامهریزی صحیح مختلط با قیود مرتبه دوم (MIQCP) بوده و به همین روش در گمز کدنویسی شده و با سالور CPLEX حل شدهاست. بنابراین لازم است در گمز شما نیز این سلور به صورت کامل کرک شده باشد.
در گزارش این شبیه سازی, ابتدا شبیه سازی به صورت کامل توضیح داده شده و در نهایت نیز نتایج شبیه سازی و روش مشاهده آنها نیز توضیح داده شده است.
بخشی از توضیحات پروژه:
اولین قدم در کدنویسی گمز تعریف شمارندهها یا مجموعهها است که با SET تعریف میشوند. مجموعههای مسئله به صورت زیر تعریف میشود. i مجموعه تمام واحدهای تولیدی، t مجموعه بازه های زمانی یک روز، g واحدهای حرارتی، j مجموعه قراردادهای آتی، k مجموعه قراردادهای دوجانبه و s مجموعه سناریوها است. واحدهای سیکل ترکیبی نیز با Pc(i) مشخص شده که شامل واحدهای 5 و 7 است. توجه شود که واحدهای 5 الی 8 کلا به نیروگاههای سیکل ترکیبی مربوط هستند ولی با توجه به اینکه این نیروگاهها دو توربین دارند، هر یک از این توربینها به عنوان یک واحد در نظر گرفته شدهاست. به عبارت دیگر واحدهای 5 و 6 همان نیروگاه سیکل ترکیبی اول بوده و واحدهای 7 و 8 نیز نیروگاه سیکل ترکیبی دوم میباشند.
SET
i totall units /1*8/
t set of time periods /1*24/
g set of thermal generation units /1*4/
j physical futures contract (FC) /1*3/
k bilateral contract /1*3/
s set of scenario /1*50/
Pc(i) set of pseudo-units (all the CCGT units) /5,7/ ;
alias(t,n);
بر اساس کد بالا با استفاده از دستور … از مجموعه t یک کپی با نام n گرفته شده است که دقیقا مجموعه t را شامل میشود.
مانند مقاله 50 سناریو برای قیمت ساعتی بازار روز بعد در نظر گرفته شدهاست. سناریوهای قیمتی مذکور در مقاله داده نشده و تنها اشاره شده که مربوط به بازار برق اسپانیا میباشد. بنابراین از سایتی که در مقاله بیان شده یعنی سایت /www.omie.es، قیمت برق 50 روز به صورت تصادفی انتخاب شده و به عنوان سناریوهای قیمتی برق برای 24 ساعت در نظر گرفته شدهاست. این سناریوها در داخل فایل اکسل با نام Lan_D در داخل پوشه ارسالی موجود است. برای اینکه گمز قادر باشد این پوشه گمز را بخواند، لازم است آن را در پوشه زیر کپی کنید:
C:\Documents\gamsdir\projdir
برای خواندن فایل اکسل در گمز، ابتدا به صورت زیر فایل اکسل در یک فایل واسط با فرمت .gdx و نام Lan_D.gdx ریخته میشود.
قطعا بخش هایی از گزارش جهت حفظ ارزش حقوقی و معنوی آن, در اینجا آورده نشده است.
در زیر نیز توضیحات بدون نمایش کد پیاده سازی شده در گمز ارائه می شود.
g(i,j)
نشان میدهد که کدام یک از واحدها مسئول تامین انرژی فروخته شده در بازار آتی میباشند.L_F مقدار انرژی فرخته شده در بازار آتی و Lan_F نیز قیمت آن برای هر قرارداد میباشد.
L_B مقدار انرژی فروخته شده در قرارداد دو جانبه و Lan_B نیز قیمت آن برای هر قرارداد است.
GG(i)
حداقل ساعتی که در شروع بهرهبرداری واحد i باید روشن باقی بماند.
H(i)
نیز حداقل ساعاتی است که واحد i در شروع بهرهبرداری باید خاموش باقی بماند.
u0(i)
وضعیت اولیه واحد i و Ps(s) احتمال وقوع سناریو s است.
M_SO2 و M_NOx به ترتیب حداکثر مقادیر ممکن برای آلودگی SO2 و NOx میباشند. SO2_u و NOx_u نیز حداکثر مقدار مجاز برای انتشار SO2 و NOx در طول یک روز هستند. e_SO2 و e_NOx نیز نرخ انتشار آلودگی واحدهای حرارتی بر حسب کیلوگرم بر مگاوات ساعات هستند.
احتمال وقوع تمام سناریو برابر در نظر گرفته شده بنابراین به صورت زیر با تقسیم 1 بر تعداد سناریوها، احتمال سناریوها بدست میآید. لازم به ذکر است که card(s) تعداد اعضای مجموعه سناریوها را مشخص میکند که در اینجا برابر 50 عدد میباشد.
به صورت زیر تمامی مقادیر gi برابر یک قرار داده شده که به معنی این است که تمام واحدها مسئول تامین انرژی فروخته شده در قراردادهای آتی میباشند.
gi(i,j)=1;
جدول 1 مقاله که شامل پارامترهای ژنراتورهای حرارتی است به صورت زیر در گمز تعریف شدهاست.
* Table 1 Operational characteristics of the thermal units.
Table GData(*,*)
بر اساس مقادیر بالا، پارامترهای مربوط به ژنراتورهای حرارتی مقداردهی شدهاست.
حداقل ساعاتی که واحدهای روشن باید در شروع بهرهبرداری روشن باقی بمانند یعنی مقدار GG(i) به صورت زیر با کم کردن حداقل ساعات روشن بودن از وضعیت اولیه، بدست میآید. همچنین حداقل ساعاتی که واحدهای خاموش در شروع بهرهبرداری باید خاموش بمانند یعنی H(i) نیز به صورت زیر به همین روش محاسبه میشود. وضعیت اولیه واحدها یعنی u0(i) نیز بر اساس جدول مقداردهی میشود.
جدول 2 مقاله حاوی اطلاعات مربوط به واحدهای سیکل ترکیبی بوده و به صورت زیر در گمز تعریف شدهاست.
* Table 2 Operational characteristics of the combined cycle units.
Table PData(*,*)
مشابه واحدهای حرارتی، پارامترهای واحدهای سیکل ترکیبی نیز بر اساس جدول 2 مقدار دهی میشوند. توجه شود که در اینجا از قید $(ord(i) gt card(g)) استفاده شده که معنی آن این است که مقداردهی برای واحدهای غیر از واحدهای حرارتی انجام شود. شرط مذکور بیان میکند که مقداردهی واحد i در صورتی انجام شود که شماره واحد از تعداد واحدهای حرارتی یعنی card(g) بزرگتر باشد.
جدول 3 مقاله حاوی دادههای مربوط قراردادهای آتی و قردادهای دوجانبه میباشد که به صورت زیر با نام CData تعریف شده است.
*Table 3 Characteristics of futures and bilateral contracts.
Table CData(*,*)
بر اساس دادههای جدول بالا، مقدار انرژی فروخته شده و قیمت هر قرارداد در پارامترهای مربوطه ریخته میشود.
مقادیر داده شده در جدول 4 مقاله نیز که حاوی محدودیتهای انتشار آلودگی و نرخ آلودگی واحدها بوده نیز در پارامترهای مربوطه ریخته میشود.
حداکثر مقدار ممکن برای انتشار هر یک از آلودگی با ضرب حداکثر توان تولیدی واحدها در نرخ انتشار آلودگی هر واحد و جمع آن برای تمام واحدها و ضرب در تعداد ساعات روز (24 ساعت یا همان card(t)) بدست میآید که کدنویسی شدهاست.
پس از تعریف تمام ورودیهای لازم، متغیرهای مسئله به صورت زیر تعریف میشود. توضیح لازم برای هر متغیر در جلوی آن داده شده است. E سود نهایی بوده و u(t,i) نیز وضعیت روشن (u=1) و یا خاموش (u=0) هر واحد در هر ساعت را مشخص میکند. c_u و c_d به ترتیب هزینه روشن و خاموش شدن هر واحد در هر ساعت میباشند.
q مقدار انرژی فروخته شده در بازار روز بعد بر اساس پیشنهاد قیمتی، f مقدار انرژی تولیدی هر واحد برای تامین قردادهای آتی و b نیز مقدار انرژی تولیدی هر واحد برای تامین قردادهای دو طرفه است.
Gp و Pp به ترتیب کل انرژی تولیدی هر واحد در هر سناریو و انرژی تولید نهایی هر واحد در بازار روز بعد میباشد.
بخشی از گزارش در اینجا آورده نشده است و با خرید این پروژه گمز میتوانید کامل آنرا دریافت نمایید.
در مقاله دو پارامتر با نام γ و β برای تنظیم احتمال برآورده شدن محدودیت انتشار آلودگی تعریف شدهاست. این پارامترها در کد به ترتیب با Landa و Beta و به صورت زیر تعریف و مقداردهی میشوند. لازم به ذکر است که در مقاله مسئله برای مقادیر مختلف Landa و Beta ران شده که این کار به صورت با تغییر این مقدار و ران کردن مجدد شبیهسازی قابل انجام است.
در قدم بعدی نام روابطی که باید نوشته شود تعریف شده و کدنویسی میشوند. نام روابط به صورت زیر تعریف شده است که متناسب با نام معادلات مقاله است. یعنی به عنوان مثال EQ1a کدنویسی رابطه 1a مقاله بوده و یا EQ3a کدنویسی رابطه 3a مقاله میباشد. بنابراین به راحتی میتوانید روابط کدنویسی شده را با رابطه مربوط به آن در مقاله مطابقت دهید.
رابطه EQ1a مربوط به قید تامین کامل انرژی فروخته شده در بازار آتی و EQ2a نیز مربوط به قید تامین کامل انرژی فروخته شده با قرداداد دوجانبه هستند و به صورت زیر کدنویسی میشوند.
رابطه EQ1c بیان میکند که مقدار انرژی تولیدی هر واحد برای تامین انرژی فروخته شده در بازار آتی باید مثبت باشد و رابطه EQ1d نیز بیان میکند که مقدار انرژی تولیدی هر واحد برای تامین انرژی فروخته شده در بازار روز بعد نباید بیشتر از توان نامی واحدها باشد.
رابطه EQ2a بیان میکند که مجموع انرژی تولدی هر واحد برای تمام قردادهای آتی نباید بیشتر از انرژی فروخته شده آن واحد باشد. رابطه EQ2b بیان میکند که مجموع انرژی فروخته شده و انرژی تولیدی برای قرداد دو جانبه برای تمام واحدها نباید بیشتر از توان نامی واحدها باشد. EQ2d نیز بیان میکند که انرژی فروخته شده واحدها باید برابر یا کمتر از حداقل انرژی فروخته شده واحدها در بازار روز بعد و برای تمام سناریوها باشد.
رابطه EQ3a بیان میکند که کل توان تولیدی واحدها برابر با توان فروخته شده در بازار روز بعد به اضافه توان تولیدی برای قردادادهای دوجانبه میباشد. رابطه EQ3b1 و EQ3b2 هر دو مربوط به رابطه 3b مقاله بوده و به این معنی است که کل توان تولیدی واحد بیان بین حداقل و حداکثر مقدار مجاز برای توان تولیدی آنها باشد.
روابط EQA1 و EQA2 به ترتیب برای محاسبه هزینه روشن و خاموش شدن واحدهای حرارتی میباشند. همانطور که قبلا نیز اشاره شد رابطه $(ord(i) le card(g)) به این معنی است که قید تنها برای واحدهایی که شماره آنها کوچکتر از card(g) (تعداد واحدهای حرارتی) است اعمال شود.
رابطه EQA3 و EQA4 نیز به ترتیب برای روشن و خاموش نگه داشتن واحدهای حرارتی به مقدار GG(i) و H(i) در ساعات ابتدایی بهرهبرداری میباشد.
رابطه EQA5 و EQA6 به ترتیب مربوط به قید حداقل ساعات روشن و خاموش ماندن واحدهای حرارتی میباشند.
روابط EQA9 و EQA10 برای محاسبه هزینه روشن واحدهای سیکل ترتیبی میباشند.
رابطه EQA11 مربوط به قید حداقل ساعات روشن ماندن واحدهای سیکل ترکیبی میباشد.
رابطه EQ12 مربوط به قید حداقل زمان روشن ماندن واحدهای سیکل ترکیبی در ساعات ابتدایی بهرهبرداری است.
EQA12(i)$(ord(i) gt card(g)).. sum(t $(ord(t) le GG(i)), 1-u(t,i))=e=0;
رابطه EQ13 نیز مربوط به قید حداقل زمان خاموش ماندن واحدهای سیکل ترکیبی بعد از هر بار خاموش شدن میباشد.
رابطه EQ14 مربوط به قید حداقل زمان خاموش ماندن واحدهای سیکل ترکیبی در ساعات ابتدایی بهرهبرداری است.
روابط EQA15a، EQA15b و EQA15c برای تنظیم حالت روشن و خاموشن بودن همزمان توربینهای هر یک از واحدهای سیکل ترکیبی میباشند.
رابطه EQ5a تابع هدف مسئله است که مقدار سود حاصل از فروش انرژی تمام واحدها در طول یک روز را شامل میشود. خط اول این رابطه سود بدست آمده از فروش انرژی در قردادهای آتی و دو جانبه میباشد. خط دوم هزینه مربوط به روشن و خاموش ماند و هزینه ثابت بهرهبرداری از واحدهای حرارتی است. خط سوم هزینههای مذکور برای واحدهای سیکل ترکیبی میباشد. خط چهارم نیز سود مربوط به فروش انرژی در بازار روز بعد منهای هزینه مربوط به آن است.
رابطه EQ8 الی EQ14 مربوط به قیود محدودیت انتشار SO2 بوده و روابط EQ15 الی EQ16 نیز مربوط به قیود محدودیت انتشار Nox میباشند. این قیود برای SO2 توضیح داده میشود و برای NOx نیز دقیقا مشابه است. رابطه EQ8 و EQ9 باعث میشود که وقتی برای یک سناریو مقدار SO2 تولیدی در یک روز بیشتر از حد مجاز یعنی SO2_u شد، مقدار y(s) برای آن سناریو برابر 1 شود. رابطه EQ10 برای این استفاده شده که احتمال نقض قید محدودیت انتشار SO2 همواره کوچکتر از Landa شود. رابطه EQ11 الی EQ13 برای این استفاده شده که وقتی برای یک سناریو قید محدودیت تولید SO2 نقض میشود، مقدار eS(s) برابر با مقدار SO2 تولیدی در آن سناریو شود. در نهایت رابطه EQ14 نیز برای این نوشته شده که احتمال بیشتر شدن انتشار آلودگی SO2 از مقدار SO2_u کوچکتر از Beta شود.
همانطور که اشاره شد روابط EQ15 الی EQ21 به طور مشابه برای مدلسازی قید محدودیت انتشار NOx نوشته شده و دقیقا مانند روابط بالا اعمال میشوند.
در نهایت باید نام مدل مسئله تعریف شده و معادلاتی که باید در آن در نظر گرفته شود تعریف شود که این کار به صورت زیر انجام شده است. نام مدل را میتوان به صورت دلخواه انتخاب کرد که در اینجا مانند مقاله با DAMB_ER نامگذاری شدهاست.
به صورت زیر نوع مسئله یعنی MIQCP و سلور استفاده شده که CPLEX است مشخص میشود.
option MIQCP=CPLEX;
به صورت زیر گپ نهایی پاسخ صفر تنظیم شده تا پاسخ نهایی بهینه ترین پاسخ باشد ولی با توجه به اینکه تعداد سناریوها خیلی زیاد بوده و حل مسئله گاهی بیش از یک ساعت طول میکشد، میتوان مقادیر این گپها را کمی بزرگتر کرد تا الگوریتم سریعتر به پاسخ برسد ولی پاسخ نهایی دیگر بهینهترین پاسخ نخواهدبود.
به صورت معمول گمز حداکثر 1000 ثانیه برای حل مسئله زمان صرف میکند و اگر مقدار گپ را مقادیر تنظیم شده نرسد، باز هم بهیهسازی را متوقف میکند. با توجه به سنگین بودن مسئله، این زمان 10000 ثانیه تنظیم شده است تا پاسخ بهینهتری بدست آید.
option reslim=10000;
در نهایت هدف از حل مسئله به صورت زیر بیان میشود. مشخص است که هدف حل مسئله DAMB_ER با روش MIQCP و با هدف بیشینهسازی E میباشد.
به صورت زیر پارامترهای مهم که باید در نهایت نمایش داده شود تعریف و محاسبه شدهاست. ESO2 و ENOx به ترتیب مقدار مورد انتظار برای انتشار SO2 و NOx در طول یک روز هستند.
پارامترهای مهم را نیز به صورت زیر میتوان با دستور display نمایش داد.
display Profit,ESO2,ENOx,y.l,z.l,u.l,Gp.l;
همچنین تمام خروجیهای مسئله در یک فایل gdx با نام DAMB_ER_Results ذخیره میشود که با باز کردن آن میتوان خروجیها را به صورت شکل نمایش داد.
در اینجا سعی شد هر آنچه که از گزارش و توضیخات شبیه سازی مقاله در گمز صورت گرفته بود را قابل مشاهده کنیم.
اگر به گمز مسلط هستید میتوانید در بخش “جذب نیروی گمز کار” ثبت نام کنید و به مجریان متخصص گمزکار سایت متلبی بپیوندید و از خدمات آن بهره ببرید.
نتایج شبیه سازی با گمز
همانطور که اشاره شد در مقاله مسئله به ازای مقادیر مختلف Landa و Beta ران شدهاست که شما نیز با تنظیم این مقادیر و ران کردن شبیهسازی میتوانید نتایج مربوط به هر یک از مقادیر را مشاهده کنید. با توجه به اینکه سناریوهای قیمتی مقاله داده نشده و تاثیر قابل توجه این مقادیر، نمیتوان انتظار داشت نتایج خروجی عین مقاله شود ولی نتایج بدست آمده کاملا منطقی بودهاست. به عنوان مثال برای Beta=0 و Landa=0 مقادیر سود و آلودگی به صورت زیر بدست آمدهاست.
—- 255 PARAMETER Profit = 277647.828
PARAMETER ESO2 = 3899.941
PARAMETER ENOx = 6798.063
در مقاله مقدار سود برای این حالت حدود 454 هزار بدست آمده که با مقدار بالا متفاوت است ولی قطعا این مقدار کاملا وابسته به سناریوهای قیمتی بوده و اختلاف مذکور به دلیل متفاوت بودن سناریوهای قیمتی میباشد. در مقاله ESO2 و ENOx به ترتیب 3900 و 6798 بدست آمده که مشخص است با مقادیر شبیهسازی کاملا همخوانی داشتهاست. بنابراین مشخص است که شبیه سازی از دقت بالا برخوردار میباشد.
حالت روشن و خاموش بودن واحدها و همچنین توان منابع در بخش Display قابل روئویت است و با باز کردن فایل DAMB_ER_Results نیز میتوانید نتایج را به صورت شکل مشاهده کنید.
محصولات سایت متلبی با دسته بندی و ویژگی های خاص خود دسته بندی شده اند و پروژه های گمز در سایت متلبی نیز دارای دسته مشخص هستند.
کلیدواژه:
شبیه سازی
Stochastic optimal generation bid to electricity markets with emissions risk constraints
طبق توضیحات فوق توسط کارشناسان سایت متلبی تهیه شده است و به تعداد محدودی قابل فروش می باشد.
سفارش انجام پروژه مشابه
درصورتیکه این محصول دقیقا مطابق خواسته شما نمی باشد،.
با کلیک بر روی کلید زیر پروژه دلخواه خود را سفارش دهید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.