多元宇宙算法求解电力系统多目标优化问题(Matlab实现)【电气期刊论文复现与算例创新】

news2024/11/16 1:36:05

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

📝目前更新:🌟🌟🌟电力系统相关知识,期刊论文,算法,机器学习和人工智能学习。
🚀支持:🎁🎁🎁如果觉得博主的文章还不错或者您用得到的话,可以关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!

👨‍🎓博主课外兴趣:中西方哲学,送予读者:

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“真理”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

📋📋📋本文目录如下:⛳️⛳️⛳️

目录

0 概述

1 环境经济调度数学模型

2 多元宇宙算法

3 讲解

3.1 主函数: 

3.2 目标函数 

4 运行结果

4 IEEE140节点仿真算例及Matlab代码【创新】

5 参考文献

6 完整Matlab代码实现


0 概述

多元宇宙算法求解电力系统多目标优化算法有很好的效果,代码换成自己的目标函数,加上约束和惩罚项等。本文用多元宇宙算法求解电力系统多目标优化问题——电力系统环境经济调度问题。

提出了一种求解电力系统环境经济调度的新方法,该方法利用宇宙空间在随机创建过程中高膨胀率的物体随虫洞在空间移动物体的规律,通过对白洞和黑洞间随机传送物体来实现最优搜索. 算法具有运算速度快,收敛性强,适用于高维计算等特点.以总燃料费用最低和总污染排放最少为多目标建立环境经济调度模型,最后,通过发电厂传统10机组和40机组算例进行仿真.结果表明:本文所提算法具有经济性和有效性. 

1 环境经济调度数学模型

2 多元宇宙算法

 

3 讲解

3.1 主函数: 

以下为部分代码,全部代码见第6部分。

clc;
clear;
close all;
tStart=tic;
% global costdata emissiondata B B0 B00 Pd VarMin VarMax nVar
global data B B0 B00 Pd VarMin VarMax nVar
Pd=2000;
data=xlsread('IEEE10.xls');

B1=xlsread('B10.xls');
B=B1(1:10,1:10);
B0=[0 0 0 0 0 0 0 0 0 0];
B00=0;
%  B=B1(1:3,1:3);
%  B0=[0 0 0 0 0 0 0 0 0 0];
%  B00=0;


%%

Max_time=600; %迭代次数
N=100;
ArchiveMaxSize=100;
% max_iter=Max_time;
 nVar=10;             % 机组个数

VarSize=[1 nVar];   % 决策变量矩阵的大小
VarMin=data(:,2);          %机组出力下限
VarMax= data(:,3);          % 机组出力上限

fobj=@(x) IEEE3aobj(x);
dim=nVar;
lb=VarMin';
ub=VarMax';
obj_no=2;

Best_universe=zeros(1,dim);
Best_universe_Inflation_rate=inf*ones(1,obj_no);

Archive_X=zeros(ArchiveMaxSize,dim);
Archive_F=ones(ArchiveMaxSize,obj_no)*inf;
Archive_member_no=0;

WEP_Max=1;
WEP_Min=0.2;

for i=1:N
   Universes(i,:)=lcheck3; 
end

Time=1;

while Time<Max_time+1
    WEP=WEP_Min+Time*((WEP_Max-WEP_Min)/Max_time);
    TDR=1-((Time)^(1/6)/(Max_time)^(1/6));
    for i=1:size(Universes,1)
        
        %边界检查(如果宇宙超出边界,则将它们带回搜索空间内)
        Flag4ub=Universes(i,:)>ub;
        Flag4lb=Universes(i,:)<lb;
        Universes(i,:)=(Universes(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;
        Universes(i,:)=lbcoff3bus(Universes(i,:));
        %计算宇宙的通货膨胀率(适合度)
        Inflation_rates(i,:)=fobj(Universes(i,:));
        
        %精英主义
        if dominates(Inflation_rates(i,:),Best_universe_Inflation_rate)
            Best_universe_Inflation_rate=Inflation_rates(i,:);
            Best_universe=Universes(i,:);
        end
        
    end
    
    [sorted_Inflation_rates,sorted_indexes]=sort(Inflation_rates);
    
    for newindex=1:N
        Sorted_universes(newindex,:)=Universes(sorted_indexes(newindex),:);
    end
    
    %原始MVO论文中的标准化通货膨胀率
    normalized_sorted_Inflation_rates=normr(sorted_Inflation_rates);
    
    Universes(1,:)= Sorted_universes(1,:);
%     Universes(1,:)=lchecktf1(Universes(1,:));
    [Archive_X, Archive_F, Archive_member_no]=UpdateArchive(Archive_X, Archive_F, Universes, Inflation_rates, Archive_member_no);
    if Archive_member_no>ArchiveMaxSize
        Archive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);
        [Archive_X, Archive_F, Archive_mem_ranks, Archive_member_no]=HandleFullArchive(Archive_X, Archive_F, Archive_member_no, Archive_mem_ranks, ArchiveMaxSize);
    else
        Archive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);
    end
    Archive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);
    % 提高复盖率
    index=RouletteWheelSelection(1./Archive_mem_ranks);
    if index==-1
        index=1;
    end
   Best_universe_Inflation_rate=Archive_F(index,:);
   Best_universe=Archive_X(index,:); 
   
  
    
    %更新宇宙的位置
    for i=2:size(Universes,1)%从2开始,因为第1位是精英
        Back_hole_index=i;
        for j=1:size(Universes,2)
            r1=rand();
            if r1<normalized_sorted_Inflation_rates(i)
                White_hole_index=RouletteWheelSelection(-sorted_Inflation_rates);% 对于最大化问题,排序的通货膨胀率应该写成排序的通货膨胀率
                if White_hole_index==-1
                    White_hole_index=1;
                end
                %Eq. (3.1) 
                Universes(Back_hole_index,j)=Sorted_universes(White_hole_index,j);
%                 Universes(Back_hole_index,j)=lchecktf1(Universes(Back_hole_index,j));
            end
            
            if (size(lb',1)==1)
                %如果边界都是一样的,那么原MVO论文中的公式(3.2)就会出现
                r2=rand();
                if r2<WEP
                    r3=rand();
                    if r3<0.5
                        Universes(i,j)=Best_universe(1,j)+TDR*((ub-lb)*rand+lb);
                        
                    end
                    if r3>0.5
                        Universes(i,j)=Best_universe(1,j)-TDR*((ub-lb)*rand+lb);
                    end
                end
            end
            
            if (size(lb',1)~=1)
            %公式( 3.2 )在原始MVO论文中,如果对每个变量的上下界不同
                r2=rand();
                if r2<WEP
                    r3=rand();
                    if r3<0.5
                        Universes(i,j)=Best_universe(1,j)+TDR*((ub(j)-lb(j))*rand+lb(j));
                    end
                    if r3>0.5
                        Universes(i,j)=Best_universe(1,j)-TDR*((ub(j)-lb(j))*rand+lb(j));
                    end
                end
            end
            
        end
        Universes(i,:)=lbcoff3bus(Universes(i,:));
    end
    display(['At the iteration ', num2str(Time), ' there are ', num2str(Archive_member_no), ' non-dominated solutions in the archive']);
    Time=Time+1;
%
end
plot(Archive_F(:,1),Archive_F(:,2),'Ro','LineWidth',2,...
        'MarkerEdgeColor','r',...
        'MarkerFaceColor','r',...
        'MarkerSize',2);
xlabel('污染排放量')
ylabel('煤耗量')
title('Pareto最前沿')
% Universes
Archive_F(:,1)
Archive_F(:,2)
Best_universe

3.2 目标函数 

function z=IEEE10aobj(x)

global data 
lb=data(:,2); 
 e1=data(:,8);
 d1=data(:,7);
 c1=sum(data(:,4));
 b1=data(:,5);
 a1=data(:,6); 
    F=zeros(length(x(:,1)),1);
    E=zeros(length(x(:,1)),1);


for i=1:length(x(:,1))
    %F(i)=x(i,:).*x(i,:)*a1+x(i,:)*b1+c1;
    F(i)=x(i,:).*x(i,:)*a1+x(i,:)*b1+c1+sum(abs(d1.*sin(e1.*(lb-x(i,:)'))));
end
Delta=data(:,13);
Xi=data(:,12);
Alpha=data(:,11);
Beta=data(:,10);
Gamma=sum(data(:,9));

for i=1:length(x(:,1))
      %E(i)=  x(i,:).*x(i,:)*Alpha+x(i,:)*Beta+Gamma;
      E(i)= (x(i,:).*x(i,:)*Alpha+x(i,:)*Beta+Gamma)+exp(x(i,:).*Delta')*Xi;
end
F(i);
E(i);

z=[E F]';

end

clc;
clear;
close all;
tStart=tic;
% global costdata emissiondata B B0 B00 Pd VarMin VarMax nVar
global data B B0 B00 Pd VarMin VarMax nVar
Pd=2000;
data=xlsread('IEEE10.xls');

B1=xlsread('B10.xls');
B=B1(1:10,1:10);
B0=[0 0 0 0 0 0 0 0 0 0];
B00=0;
%  B=B1(1:3,1:3);
%  B0=[0 0 0 0 0 0 0 0 0 0];
%  B00=0;


%%

Max_time=600; %迭代次数
N=100;
ArchiveMaxSize=100;
% max_iter=Max_time;
 nVar=10;             % 机组个数

VarSize=[1 nVar];   % 决策变量矩阵的大小
VarMin=data(:,2);          %机组出力下限
VarMax= data(:,3);          % 机组出力上限

fobj=@(x) IEEE3aobj(x);
dim=nVar;
lb=VarMin';
ub=VarMax';
obj_no=2;

Best_universe=zeros(1,dim);
Best_universe_Inflation_rate=inf*ones(1,obj_no);

Archive_X=zeros(ArchiveMaxSize,dim);
Archive_F=ones(ArchiveMaxSize,obj_no)*inf;
Archive_member_no=0;

WEP_Max=1;
WEP_Min=0.2;

for i=1:N
   Universes(i,:)=lcheck3; 
end

Time=1;

while Time<Max_time+1
    WEP=WEP_Min+Time*((WEP_Max-WEP_Min)/Max_time);
    TDR=1-((Time)^(1/6)/(Max_time)^(1/6));
    for i=1:size(Universes,1)
        
        %边界检查(如果宇宙超出边界,则将它们带回搜索空间内)
        Flag4ub=Universes(i,:)>ub;
        Flag4lb=Universes(i,:)<lb;
        Universes(i,:)=(Universes(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;
        Universes(i,:)=lbcoff3bus(Universes(i,:));
        %计算宇宙的通货膨胀率(适合度)
        Inflation_rates(i,:)=fobj(Universes(i,:));
        
        %精英主义
        if dominates(Inflation_rates(i,:),Best_universe_Inflation_rate)
            Best_universe_Inflation_rate=Inflation_rates(i,:);
            Best_universe=Universes(i,:);
        end
        
    end
    
    [sorted_Inflation_rates,sorted_indexes]=sort(Inflation_rates);
    
    for newindex=1:N
        Sorted_universes(newindex,:)=Universes(sorted_indexes(newindex),:);
    end
    
    %原始MVO论文中的标准化通货膨胀率
    normalized_sorted_Inflation_rates=normr(sorted_Inflation_rates);
    
    Universes(1,:)= Sorted_universes(1,:);
%     Universes(1,:)=lchecktf1(Universes(1,:));
    [Archive_X, Archive_F, Archive_member_no]=UpdateArchive(Archive_X, Archive_F, Universes, Inflation_rates, Archive_member_no);
    if Archive_member_no>ArchiveMaxSize
        Archive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);
        [Archive_X, Archive_F, Archive_mem_ranks, Archive_member_no]=HandleFullArchive(Archive_X, Archive_F, Archive_member_no, Archive_mem_ranks, ArchiveMaxSize);
    else
        Archive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);
    end
    Archive_mem_ranks=RankingProcess(Archive_F, ArchiveMaxSize, obj_no);
    % 提高复盖率
    index=RouletteWheelSelection(1./Archive_mem_ranks);
    if index==-1
        index=1;
    end
   Best_universe_Inflation_rate=Archive_F(index,:);
   Best_universe=Archive_X(index,:); 
   
  
    
    %更新宇宙的位置
    for i=2:size(Universes,1)%从2开始,因为第1位是精英
        Back_hole_index=i;
        for j=1:size(Universes,2)
            r1=rand();
            if r1<normalized_sorted_Inflation_rates(i)
                White_hole_index=RouletteWheelSelection(-sorted_Inflation_rates);% 对于最大化问题,排序的通货膨胀率应该写成排序的通货膨胀率
                if White_hole_index==-1
                    White_hole_index=1;
                end
                %Eq. (3.1) 
                Universes(Back_hole_index,j)=Sorted_universes(White_hole_index,j);
%                 Universes(Back_hole_index,j)=lchecktf1(Universes(Back_hole_index,j));
            end
            
            if (size(lb',1)==1)
                %如果边界都是一样的,那么原MVO论文中的公式(3.2)就会出现
                r2=rand();
                if r2<WEP
                    r3=rand();
                    if r3<0.5
                        Universes(i,j)=Best_universe(1,j)+TDR*((ub-lb)*rand+lb);
                        
                    end
                    if r3>0.5
                        Universes(i,j)=Best_universe(1,j)-TDR*((ub-lb)*rand+lb);
                    end
                end
            end
            
            if (size(lb',1)~=1)
            %公式( 3.2 )在原始MVO论文中,如果对每个变量的上下界不同
                r2=rand();
                if r2<WEP
                    r3=rand();
                    if r3<0.5
                        Universes(i,j)=Best_universe(1,j)+TDR*((ub(j)-lb(j))*rand+lb(j));
                    end
                    if r3>0.5
                        Universes(i,j)=Best_universe(1,j)-TDR*((ub(j)-lb(j))*rand+lb(j));
                    end
                end
            end
            
        end
        Universes(i,:)=lbcoff3bus(Universes(i,:));
    end
    display(['At the iteration ', num2str(Time), ' there are ', num2str(Archive_member_no), ' non-dominated solutions in the archive']);
    Time=Time+1;
%
end
plot(Archive_F(:,1),Archive_F(:,2),'Ro','LineWidth',2,...
        'MarkerEdgeColor','r',...
        'MarkerFaceColor','r',...
        'MarkerSize',2);
xlabel('污染排放量')
ylabel('煤耗量')
title('Pareto最前沿')
% Universes
Archive_F(:,1)
Archive_F(:,2)
Best_universe

4 运行结果

10机组运行结果:

  

本文提出了一种求解电力系统环境经济调度的新方法,计及阀点效应和污染排放因素,建立多目标规划模型,利用PPF定价原则权衡多重因素. 多元宇宙算法在求解EED问题时具有计算精度高,收敛速度快等特点,在求解高维度问题表现更佳,适用于其他工程问题研究.

4 IEEE140节点仿真算例及Matlab代码【创新】

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

5 参考文献

[1]刘世宇,王孜航,杨德友.多元宇宙算法及其在电力系统环境经济调度的应用[J].东北电力大学学报,2018,38(04):19-26. 

6 完整Matlab代码实现

博客主页:电气辅导帮

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/56637.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Shiro-SpringBoot (一)

前不久负责项目中刚好也使用了Shiro做权限控制&#xff0c;趁着空闲期想把之前做的整理一下。在日常项目开发中&#xff0c;权限认证是不可少的模块。比较常用的有Spring Security&#xff0c;或是轻量级的Apache Shiro。相对来说Shiro提供了认证、授权、加密、会话管理、与Web…

华为机试 - 羊、狼、农夫过河

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 羊、狼、农夫都在岸边&#xff0c;当羊的数量小于狼的数量时&#xff0c;狼会攻击羊&#xff0c;农夫则会损失羊。农夫有一艘容量固定的船&#xff0c;能够承载固定数量的动物。 要求求出不损失羊情况…

体验Vue3的SSR框架 - Nuxt3

SSR 与 Nuxt SSR 是 Server-Side Rendering&#xff0c;即服务端渲染的英文缩写。 Vue.js 是一个用于构建客户端应用的框架。默认情况下&#xff0c;Vue 组件的职责是在浏览器中生成和操作 DOM。在客户端是单页应用 (SPA) 。 也可以将 vue 程序在服务端渲染&#xff0c;渲染…

【GD-1开发板】CH340驱动安装方法

CH340驱动安装方法正常情况异常情况CH340驱动安装步骤现在国产ARM替代STM32的arm芯片运动正如火如荼进行中&#xff0c;我也录制了一套完整的”ARM嵌入式开发入门教程“&#xff0c;并配套了一个GD32F103C8T6的开发板。 但有小伙伴拿到板子后&#xff0c;说下载程序的时候&…

实验七:定时/计数器8253、8254

目录 例实验目的实验内容报告要求例 已知8253的两个计数器CLK0=1MHZ,CLK1=1KHZ,现系统要求8253的OUT1产生0.1s的定时方波信号。 (1):应如何实现? (2):说明两个计数器的工作方式并计算计数初值 (3):编写初始化程序(8253的端口地址80H-83H,均采用二进制计数) C…

详解torch.nn.functional.grid_sample函数(通俗易懂):可实现对特征图的水平/垂直翻转

一、函数介绍 Pytorch中grid_sample函数的接口声明如下&#xff0c;具体网址可以点这里 torch.nn.functional.grid_sample(input, grid, mode‘bilinear’, padding_mode‘zeros’, align_cornersNone) 为了简单起见&#xff0c;以下讨论都是基于如下参数进行实验及讲解的&…

BSN开放联盟链“中移链”浏览器2.0正式发布!

由中国移动信息技术中心自主研发的中移链EOS区块链浏览器2.0版本&#xff0c;已在区块链服务网络&#xff08;BSN&#xff09;官网和BSN-DDC网络官网正式发布。 中移链浏览器2.0 无论是从政策导向还是从业务需求方面来说&#xff0c;区块链技术的发展已经是一种不可逆的趋势&a…

查找-二叉排序树

问题引入 【问题描述】 输入若干个整数建立二叉排序树,以0结束输入,在二叉排序树上查找关键字,删除指定关键字结点。 【输入形式】 (1)第一行,输入若干个整数,输入0结束输入; 如输入关键字 45 24 53 12 28 90 0 可建立如下二叉排序树 (2)第二行,输入两个整数,一…

GameOff2022参与有感

GameOff2022参与有感以及年度总结 厚颜无耻的用我们美术的立绘 GameOff— Redemption 很高兴在一个月的时间里面和大家一起完成了《Redemption》 比赛链接&#xff1a;Itch.io 百度云盘链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1ylK0QRr2lmkqi4JF1wsXtA 提…

【servelt原理_6_servlet核心接口和类】

servlet核心接口和类 在Servlet体系中&#xff0c;除了实现servlet接口,还可以通过继承GenericServlet或HttpServlet类实现编写1.Servlet接口 servlet接口是整个servlet的核心。它是所有Servlet类必须直接或者间接实现的一个接口&#xff0c;其内部需要实现的5个方法分别关乎…

基于flv.js的视频自动播放

1: html <video class"video-content" id"video">您的浏览器不支持 HTML5 video&#xff01; </video> 2: 创建flv实例并播放 let videoPlayer document.getElementById(video); //获取html if (flvJs.isSupported()) {//创建flv实例this.P…

音视频开发——FFmpeg技术点 【进阶一览】

概述 Fmpeg是一套领先的音视频多媒体处理开源框架&#xff0c;采用LGPL或GPL许可证。它提供了对音视频的采集、编码、解码、转码、音视频分离、合并、流化、过滤器等丰富的功能&#xff0c;包含了非常先进的音频/视频编解码库libavcodec&#xff0c;具有非常高的可移植性和编解…

[附源码]计算机毕业设计中小学课后延时服务管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Git 之 已有项目创建 git 仓库

Git 之 已有项目创建 git 仓库前言一、现在 github/gitee 中创建仓库二、在项目的文件夹当中 git bash here1.git init2. git remote add origin 仓库地址3. git pull origin master4. git add . git commit -m git push -u origin master前言 项目已经开始写了,但是还没有…

干货 | 数字经济创新创业——如何造就成功的职业生涯

下文整理自清华大学大数据能力提升项目能力提升模块课程“Innovation & Entrepreneurship for Digital Economy”&#xff08;数字经济创新创业课程)的精彩内容。主讲嘉宾&#xff1a;Kris Singh: CEO at SRII, Palo Alto, CaliforniaVisiting Professor of Tsinghua Unive…

第一天:Python元学习——通用人工智能的实现

文章目录0 封面1 第一章&#xff1a;元学习简介1.1 元学习与少样本学习1.2 元学习的类型——学习度量空间1.3 学习初始化1.4 学习优化器1.5 通过梯度下降来学习如何通过梯度下降来学习2 第二章&#xff1a;使用孪生网络进行人脸识别与音频视频2.1 什么是孪生神经网络孪生神经网…

机器学习与数据挖掘——数据预处理

如果有兴趣了解更多相关内容&#xff0c;欢迎来我的个人网站看看&#xff1a;瞳孔空间 一&#xff1a;关于数据预处理 在工程实践中&#xff0c;我们得到的数据会存在有缺失值、重复值等&#xff0c;在使用之前需要进行数据预处理。数据预处理没有标准的流程&#xff0c;通常…

Kaldi的简单介绍和基本使用说明

Kaldi的简单介绍和基本使用说明前言一、ASR简介1.语音识别系统特征提取&#xff1a;声学模型发音词典语言模型语音解码2. ASR项目二、Kaldi简介三、Kaldi项目的结构四、Kaldi的安装1. 安装依赖的几个系统开发库2. 安装依赖的第三方工具库3. 编译Kaldi代码配置Kaldi编译Kaldi五、…

Python-进程和线程

张钊*&#xff0c;沈啸彬*, 王旭* 李月&#xff0c;曹海艳&#xff0c; (淮北师范大学计算机科学与技术学院&#xff0c;淮北师范大学经济与管理学院&#xff0c;安徽 淮北) *These authors contributed to the work equllly and should be regarded as co-first authors. &a…

智能电网中需求响应研究(Matlab代码实现)

目录 1 概述 2 运行结果 ​编辑 ​编辑 3 参考文献 4 Matlab代码实现 1 概述 智能电网需求响应可以降低电网高峰用电需求、提高电网运行稳定性和可靠性&#xff0c;尤其是通过需求响应实现电网接纳间歇性可再生能源发电的能力。 需求响应的全球进展及产生的效益等情况在…