基于纳什谈判理论的风–光–氢多主体能源系统合作运行方法(含matlab代码)

目录

主要内容   

  部分代码   

  结果一览   

下载链接


主要内容   

程序解决的是一个基于合作博弈的风光氢能源交易的问题,首先,考虑主体间的电能交易建立各主体的优化运行模型, 然后基于纳什谈判理论建立风–光–氢多主体合作运行模型, 接着将其等效为联盟效益最大化和电能交易支付谈判两个子问题,运用交替方向乘子法(ADMM)提出上述两个子问题的分布式求解方法,程序注释清楚,参考性强!程序求解需要Matlab及mosek工具箱!

  部分代码   

maxIter=50;%最大迭代次数
tolerant=1e-5;%收敛精度
iter=1;%迭代次数
Ben_Store=[];%历史目标函数
toler1=[];%残差1,风电主体
toler2=[];%残差2,光伏主体
P_pv2h_2=zeros(maxIter+1,24);P_wt2h_2=zeros(maxIter+1,24);
value_P_wt2h_2=zeros(maxIter+1,24);value_P_pv2h_2=zeros(maxIter+1,24);
%% 迭代
while 1
    if iter==maxIter  %限制迭代次数
       disp('迭代不收敛,参数有误');
       break; 
    end 
    display(['迭代还未收敛,当前迭代第 ', num2str(iter),' 次']);
    if iter==1  %第一次求解比较特殊,要给一致性变量P_wt2h_1、P_pv2h_1赋初值
        [P_pv2h_2(2,:),P_wt2h_2(2,:),Obj_dzq(iter)]=Fun_dzq(value_P_pv2h_2(iter,:),value_P_wt2h_2(iter,:),rho_wt,rho_pv,lambda_wt,lambda_pv);
        [value_P_pv2h_2(2,:),Obj_gf(iter)]=Fun_gf(P_pv2h_2(2,:),rho_pv,lambda_pv);
        [value_P_wt2h_2(2,:),Obj_fd(iter)]=Fun_fd(P_wt2h_2(2,:),rho_wt,lambda_wt);
        lambda_wt=lambda_wt+rho_wt*(P_wt2h_2(2,:)-value_P_wt2h_2(2,:));
        lambda_pv=lambda_pv+rho_pv*(P_pv2h_2(2,:)-value_P_pv2h_2(2,:));
    else
        [P_pv2h_2(iter+1,:),P_wt2h_2(iter+1,:),Obj_dzq(iter)]=Fun_dzq(value_P_pv2h_2(iter,:),value_P_wt2h_2(iter,:),rho_wt,rho_pv,lambda_wt,lambda_pv);
        [value_P_pv2h_2(iter+1,:),Obj_gf(iter)]=Fun_gf(P_pv2h_2(iter+1,:),rho_pv,lambda_pv);
        [value_P_wt2h_2(iter+1,:),Obj_fd(iter)]=Fun_fd(P_wt2h_2(iter+1,:),rho_wt,lambda_wt);
        lambda_wt=lambda_wt+rho_wt*(P_wt2h_2(iter+1,:)-value_P_wt2h_2(iter+1,:));
        lambda_pv=lambda_pv+rho_pv*(P_pv2h_2(iter+1,:)-value_P_pv2h_2(iter+1,:));
    end
    %保存历史数据
    Ben_Store=[Ben_Store,[Obj_dzq(iter);Obj_gf(iter);Obj_fd(iter)]];
    %残差计算,公式(36)应该修改一下,是向量的二范数再平方
    toler1=[toler1,norm(P_wt2h_2(iter+1,:)-value_P_wt2h_2(iter+1,:))^2];%保存残差1 
    toler2=[toler2,norm(P_pv2h_2(iter+1,:)-value_P_pv2h_2(iter+1,:))^2];%保存残差2                
    %判断收敛条件
    if toler1(iter)<=tolerant && toler2(iter)<=tolerant
       display(['迭代收敛,在第 ', num2str(iter),' 次收敛']);
       break; 
    end
    iter=iter+1;
end
%% 画图
figure(1)
plot(-Ben_Store(1,:),'b-o','LineWidth',1.5);
xlabel('迭代次数');
ylabel('成本/元');
title('电制氢主体分布式迭代情况');
;
figure(2)
plot(-Ben_Store(2,:),'r-o','LineWidth',1.5);
xlabel('迭代次数');
ylabel('成本/元');
title('光伏主体分布式迭代情况');
;
figure(3)
plot(-Ben_Store(3,:),'k-o','LineWidth',1.5);
xlabel('迭代次数');
ylabel('成本/元');
title('风力主体分布式迭代情况');
;
%
Party=-Ben_Store(1,:)-Ben_Store(2,:)-Ben_Store(3,:);
figure(4)
plot(Party,'k-o','LineWidth',1.5);
xlabel('迭代次数');
ylabel('成本/元');
title('风光联盟总效益值');

  结果一览   

下载链接

最近更新

  1. TCP协议是安全的吗?

    2024-03-11 02:56:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-11 02:56:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-11 02:56:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-11 02:56:03       20 阅读

热门阅读

  1. RestTemplate的应用

    2024-03-11 02:56:03       21 阅读
  2. 基于c语言的大宗商品撮合交易平台的市场价值

    2024-03-11 02:56:03       22 阅读
  3. 关于入行8年的职业总结

    2024-03-11 02:56:03       26 阅读
  4. nacos的原理及使用方法

    2024-03-11 02:56:03       25 阅读
  5. 初级代码游戏的专栏介绍与文章目录

    2024-03-11 02:56:03       20 阅读
  6. 【RHCSA问答题】第十一章 分析和存储日志

    2024-03-11 02:56:03       21 阅读
  7. 整合生成型AI战略:从宏观思维到小步实践

    2024-03-11 02:56:03       23 阅读
  8. 【蓝桥杯-单片机】基础模块:矩阵按键

    2024-03-11 02:56:03       23 阅读
  9. 安卓开发面试题

    2024-03-11 02:56:03       26 阅读
  10. 使用Go语言编写API接口的技术

    2024-03-11 02:56:03       20 阅读