ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

电力系统中机组组合强大的Yalmip+Cplex

2021-11-28 16:06:24  阅读:278  来源: 互联网

标签:python Cplex value st Yalmip 电力系统 matlab


目录

1、概述

(1)电力调度优化理论及其应用

(2)电力调度的机组组合UC 

(3)组合模型及算法 

2、人性化的Yalmip+Cplex 

(1)热身运动——线性规划

(2)机组组合(案例)

3、参考文章 


1、概述

(1)电力调度优化理论及其应用

(2)电力调度的机组组合UC 

(3)组合模型及算法 

2、人性化的Yalmip+Cplex 

(1)热身运动——线性规划

         尽管 python 比较火,cplex 对 python 的支持目前还不是太全,相关的学习资料比较少,ibm 自己 出的资料对 python 包的介绍也很简略,例子及相关类方法的介绍也不详细,这一点远没有对 java 或 c++ 支持地好。cplex 在 python 中没有重载加减乘除符号吗?目前给的例子都是输入系数矩阵这种形式。使用起来非常不方便的。

         所以推出了Yalmip+Cplex(matlab),matlab中这个库的下载方法,后面的文章会讨论matlab中Yalmip+Cplex这个强大的库在我们电力系统中的强大作用(噢头曼!!!),虽然我很喜欢用Python,但是python是这几年才火起来,所以这个Cplex库还不是很完善,所以对于这个库强烈推荐matlab。下面先来点简单的线性规划,让大家热身。
                                  

%(1)设定决策变量X(1)、X(2)
%(2)sdpvar:实数变量;binvar:0—1变量;intvar:整型变量
%(3)Yalmip默认是对称的,要求非对称用full
 
x=sdpvar(2,1,'full');   
z=-2*x(1)+4*x(2);         %目标函数,默认最小
st=[];                    %设定一系列约束
st=[st,-3*x(1)+x(2)<=6];
st=[st,x(1)+2*x(2)>=4];
st=[st,x(1)+3*x(2)==4];
st=[st,x(2)>=-3];
ops=sdpsettings('solver','cplex');  %设定求解器
r=optimize(st,z);                   %求解,如果最大值用-z
x=value(x);                         %查看求解结果x的值
z=value(z);                         %查看目标函数的最优解
%结果
Optimal solution found.
 
>> x
 
x =
 
    13
    -3
 
>> z
 
z =
 
   -38

(2)机组组合(案例)

                         1)目标函数:

                           

                  [C11,C2代表成本系数,Ql=100sinwt]

                       

N=3;
T=24;
Pmax=[100;50;25];
Pmin=[20;40;1];
C11=diag([.04 .01 .02]);
C2=[10 20 20];
Pload=100+50*sin((1:T)*2*pi/24);
I=binvar(N,T,'full');
P=sdpvar(N,T,'full');
st=[];
for t=1:T
    st=[st,I(:,t).*Pmin<=P(:,t)<=I(:,t).*Pmax];
end
for t=1:T
    st=[st,sum(P(:,t))>=Pload(t)];
end
for t=1:T
    F=0;
    F=F+P(:,t)'*C11*P(:,t)+C2*P(:,t);
end
ops=sdpsettings('verbose',0,'solve','cplex');
r=optimize(st,F);
F=value(F);
P=value(P);
I=value(I);

 

%结果

>>F

F=

3.51287676882437

 

3、参考文章 

           文献

标签:python,Cplex,value,st,Yalmip,电力系统,matlab
来源: https://blog.csdn.net/weixin_46039719/article/details/121590556

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有