风力发电系统的随机调度研究(matlab代码实现)

这篇具有很好参考价值的文章主要介绍了风力发电系统的随机调度研究(matlab代码实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥


🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


座右铭:行百里者,半于九十。

📋 📋 📋 本文目录如下: 🎁 🎁 🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码实现

💥1 概述

文献来源:

风力发电系统的随机调度研究(matlab代码实现),电气期刊论文,matlab,开发语言,Powered by 金山文档

时域调度模拟是预测风力发电系统运行成本最有效的工具,因为它可以表示限制热电厂、储能和需求侧措施平衡行动的跨时间约束。高风侵度要求及时调度决策能够反映风馈的不确定性,因此使用随机单元承诺(SUC)和滚动规划生成调度决策是可取的。然而,计算负担可能使这种方法在长时间的模拟中不切实际。我们提出了SUC问题的一个有效公式,设计用于单母线电力系统调度仿真。

与传统的SUC技术不同,该公式采用了基于分位数的情景树结构,避免了对外生运营储备的需求。在长达一年的大型系统模拟中,我们比较了各种树拓扑的性能。与固定分位数确定性方法相比,简单的基于分位数的树在统计上具有显著的成本改进,并且与基于蒙特卡罗生成场景的树相比更优。

风力发电系统的随机调度研究(matlab代码实现),电气期刊论文,matlab,开发语言,Powered by 金山文档

任何国家的政府都致力于大幅降低其电力部门的碳强度。脱碳的电力系统可能具有以下特点:大的、相对不灵活的核基载;间歇性和部分不可预测的可再生能源的高渗透率,在许多国家将由风能主导;化石燃料车队的载客率比目前低得多。因此,大规模风力集成的一个核心挑战是利用灵活性降低的热机组吸收风力发电的能力。

衡量系统吸收风的能力的一个指标是风的不确定性成本,即由于短期风的不确定性而运行系统的额外成本。简单的统计分析无法告诉我们这一成本,因为平衡风力间歇性的可调度要素受制于限制其响应能力的跨时间约束。这些限制的例子是热发电机的启动时间,以及对可存储能量的限制。为了理解这些限制对系统吸收风的能力的影响,我们必须在时域内模拟整个系统的调度,在一定程度上考虑跨时间约束。如[1]所述,在许多研究中使用时域模拟来评估集成风的成本。

📚2 运行结果

风力发电系统的随机调度研究(matlab代码实现),电气期刊论文,matlab,开发语言,Powered by 金山文档
风力发电系统的随机调度研究(matlab代码实现),电气期刊论文,matlab,开发语言,Powered by 金山文档
风力发电系统的随机调度研究(matlab代码实现),电气期刊论文,matlab,开发语言,Powered by 金山文档

部分代码:

%%

clearvars

clc

%% Inputs

load('Data\InputData.mat')

load('Data\SystemParameters.mat')

% The units are GW, k/GW and k to keep the range of variables closer

%% Define the optimisation model:

Load_balance = [];

Aux_constraints = [];

Constraints_Gen_limits = [];

Constraints_Ramp_limits = [];

Cost_node = [];

scenarios = size(Wind_scenarios,1);

% Create some matrices of DVs:

Wind_curtailed = sdpvar(scenarios,time_steps);

Load_curtailed = sdpvar(scenarios,time_steps);

% And some matrices of constraints:

Aux_constraints = [Aux_constraints,...

0 <= Wind_curtailed <= Wind_scenarios,...

0 <= Load_curtailed <= ones(scenarios,1)*Demand];

tic % Start time counter

for k=1:time_steps

%% Define DVs

x{k} = sdpvar(scenarios,num_Clusters);

% x{k} = [x1 x2 x3... (scenario 1)

% x1 x2 x3... (scenario 2)]; % Power generated by each Cluster in each scenario

y{k} = intvar(scenarios,num_Clusters);

% y{k} = [y1 y2 y3... (scenario 1)

% y1 y2 y3... (scenario 2)]; % Commitment decision for each Cluster in each scenario

% FORCE y{k} to be lower than number of CCGTs and number of OCGTs

Aux_constraints = [Aux_constraints,...

zeros(scenarios,1)*num_Gen <= y{k} <= ones(scenarios,1)*num_Gen];

% NO INITIAL COMMITMENT

% if k==1

% Aux_constraints = [Aux_constraints,...

% y{n,k}==Initial_commitment];

% end

% Fix commitment decision of inflexible_gen to be same as in the first

% scenario in this time-step "k"

Aux_constraints = [Aux_constraints,...

(ones(scenarios,1)*inflexible).*y{k} == ones(scenarios,1)*(inflexible.*y{k}(1,:))];

% Define DVs for generators started up

startup_DV{k} = sdpvar(scenarios,num_Clusters);

if k==1

Aux_constraints = [Aux_constraints,...

startup_DV{k} == y{k}];

else

% These 2 constraints model the startup, it's easy to verify

% that they indeed do:

Aux_constraints = [Aux_constraints,...

startup_DV{k} >= y{k} - y{k-1},...

startup_DV{k} >= zeros(scenarios,num_Clusters)];

end

%% Constraints:

Load_balance = [Load_balance,...

sum(x{k},2)+Wind_scenarios(:,k)-Wind_curtailed(:,k) == ones(scenarios,1)*Demand(k)-Load_curtailed(:,k)];

% Generation limits:

for i=1:num_Clusters

Constraints_Gen_limits = [Constraints_Gen_limits,...

y{k}.*(ones(scenarios,1)*Gen_limits(:,1)') <= x{k} <= y{k}.*(ones(scenarios,1)*Gen_limits(:,2)')];

end

% % Ramp limits:

% if k>1

%

% Constraints_Ramp_limits = [Constraints_Ramp_limits,...

% -tau*(ones(scenarios,1)*Ramp_limits(:,1)') <= x{k}-x{k-1} <= tau*(ones(scenarios,1)*Ramp_limits(:,2)')];

%

% end

%% Finally, define the nodal costs:

Cost_node = horzcat(Cost_node,...

sum((ones(scenarios,1)*stc').*startup_DV{k},2)... % Startup costs

+ tau*(sum((ones(scenarios,1)*NLHR').*y{k},2)... % fixed generation costs

+ sum((ones(scenarios,1)*HRS').*x{k},2)... % variable generation costs

+ VOLL*Load_curtailed(:,k))); % load shed cost

end

time.BuildingModel = toc;

tic

Objective = sum(sum(prob_nodes.*Cost_node));

Constraints = [Aux_constraints,...

Load_balance,...

Constraints_Gen_limits

Constraints_Ramp_limits];

options = sdpsettings('solver','gurobi','gurobi.MIPGap',0.1e-2);

solution = optimize(Constraints,Objective,options)

time.Optimisation = toc;

%% Analyse results

tic

sol.Wind_curtailed = value(Wind_curtailed);

sol.Load_curtailed = value(Load_curtailed);

sol.Cost = [];

sol.Cost_StartUp = [];

sol.Cost_NLHR = [];

sol.Cost_HRS = [];

sol.Cost_VOLL = [];

sol.Check_Load_balance(scenarios,time_steps) = 0;

for k=1:time_steps

sol.x{k} = value(x{k});

sol.y{k} = value(y{k});

sol.startup_DV{k} = value(startup_DV{k});

sol.Cost = horzcat(sol.Cost,...

sum((ones(scenarios,1)*stc').*sol.startup_DV{k},2)... % Startup costs

+ tau*(sum((ones(scenarios,1)*NLHR').*sol.y{k},2)... % fixed generation costs

+ sum((ones(scenarios,1)*HRS').*sol.x{k},2)... % variable generation costs

+ VOLL*sol.Load_curtailed(:,k)));

sol.Cost_StartUp = horzcat(sol.Cost_StartUp,...

sum((ones(scenarios,1)*stc').*sol.startup_DV{k},2));

sol.Cost_NLHR = horzcat(sol.Cost_NLHR,...

tau*(sum((ones(scenarios,1)*NLHR').*sol.y{k},2)));

sol.Cost_HRS = horzcat(sol.Cost_HRS,...

tau*(sum((ones(scenarios,1)*HRS').*sol.x{k},2)));

sol.Cost_VOLL = horzcat(sol.Cost_VOLL,...

tau*(VOLL*sol.Load_curtailed(:,k)));

sol.Check_Load_balance(:,k) = sum(sol.x{k},2)+Wind_scenarios(:,k)-sol.Wind_curtailed(:,k)-(ones(scenarios,1)*Demand(k)-sol.Load_curtailed(:,k));

end

time.GetSolution = toc;

clearvars -except Wind_scenarios Demand options sol solution time

save('Solution.mat')文章来源地址https://www.toymoban.com/news/detail-529225.html

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。
风力发电系统的随机调度研究(matlab代码实现),电气期刊论文,matlab,开发语言,Powered by 金山文档

🌈4 Matlab代码实现

到了这里,关于风力发电系统的随机调度研究(matlab代码实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 光伏发电系统模拟及其发电预测开源python工具pvlib

    pysolar是一个用于计算太阳位置和辐照量的Python库。它是基于python语言编写的,可以方便地在各种python项目中使用。pysolar主要用于计算太阳的位置、太阳高度角、太阳方位角、日出和日落时间等信息。这些信息可以用于太阳能电池板和太阳能集热器等应用的设计和优化。 Pys

    2023年04月08日
    浏览(31)
  • 【微电网】含风、光、储联合发电的微电网优化调度研究(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 2.1 场景1——春 2.2 场景2——夏  2.3 场景

    2024年02月06日
    浏览(81)
  • 含光伏发电的变电站供电系统设计

    面对全球日趋严重的能源危机问题,可再生能源的开发和利用得到了人们的高度重视。其中辐射到地球太阳能资源是十分富饶的,绿色清洁的太阳能不会危害我们的生存环境,因而受到了人们的广泛利用。光伏发电作为可再生能源被广泛的应用,技术不断革新。为了提高光伏

    2024年02月05日
    浏览(40)
  • 智慧垃圾焚烧发电厂Web3D可视化管理系统

    随着我国生产力的飞速发展和经济的迅速崛起,城市生活垃圾作为一种生物质能,将其燃烧用于发电,可以有效节约化石能源。 随着城镇化进程加速、人民生活水平持续提升,城市生活垃圾产生量也在逐年增长。生活垃圾是“放错地方的资源”,能否处理好这些“放错地方的资

    2024年02月08日
    浏览(53)
  • 元宇宙核能发电VR模拟仿真实训教学为建设新型电力系统提供重要支撑

    随着“碳达峰、碳中和”目标与建设新型能源体系的提出,在元宇宙环境下建设电力系统是未来发展的趋势。以物联网、区块链、数字孪生、混合现实等技术为主要代表的元宇宙技术体系及其在电力和能源系统中的应用,将会促进智能电网的发展,为建设新型电力系统提供重

    2024年02月11日
    浏览(50)
  • 基于线性准则的考虑风力发电不确定性的分布鲁棒优化机组组合(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码及文章讲解

    2024年02月12日
    浏览(198)
  • 基于STATCOM的风力发电机稳定性问题仿真分析(Simulink)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 ​ STAT

    2024年02月02日
    浏览(51)
  • 通过Mars3d在地图上加载风力发电机车模型

    首先理清需求,通过Mars3d的基础项目,在基础项目模板上添加一个风力发电机模型。 Mars3d官网的基础项目下载地址:Mars3D三维可视化平台 | 火星科技 gitee地址: git clone https://gitee.com/marsgis/mars3d-vue-project.git 下载一份基础项目模板到本地后,参考README.md正常打开运行即可 其次

    2024年02月01日
    浏览(49)
  • Python数据分析案例25——海上风力发电预测(多变量循环神经网络)

     本案例适合理工科。 承接上一篇的硬核案例:Python数据分析案例24——基于深度学习的锂电池寿命预测 本次案例类似,只是进一步拓展了时间序列预测到多变量的情况。上一个案例的时间序列都是只有电池容量一个特征变量,现在采用多个变量进行神经网络模型的构建。

    2024年02月04日
    浏览(39)
  • 【发电厂】发电厂模型验证应用于电网事件在线性能监测【相量测量单元 (PMU) 数据对电网事件的在线性能监控】研究(Matlab&Simulink实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码、数据、运行

    2024年02月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包