运筹学课程设计
- 格式:doc
- 大小:41.00 KB
- 文档页数:19
运筹学课程设计
运筹学案例分析发电机经济调度论文 1 目录摘要、关键字、引言 4 一、问题背景介绍 4 二、对问题进行数学建模问题一:某时刻的经济调度 5 问题二:动态经济调度问题三:机组组合问题 6 三、案例分析7 曲线拟合7 问题一案例分
析7 2问题二案例分析9 问题三案例分析13 四、研究结论15 五、
() catch(IloException& e){cerr catch(...){cerr();return 0;} 运行结果如下图所示:同样的,上述cplex程序仅进行了对3个小时内最优解的求解。对半天12小时我们依然采用了较为简单的matlab编程,所编程序如下:P1=sdpvar (1,12); %P1代表1号机组12小时内每小时的功率P2=sdpvar (1,12); %P2代表2号机组12小时内每小时的功率P3=sdpvar (1,12); %P3代表3号机组12小时内每小时的功率%定义每台机组
每小时功率P A=P1; B=P2; C=P3;%将功率赋予数组s1=binvar (1,12);%S1代表1号机组12小时内每小时的开关状态s2=binvar (1,12);%S2代表2号机组12小时内每小时的开关状态s3=binvar (1,12);%S3代表3号机组12小时内每小时的开关状态%定义0-1变量S1=s1; S2=s2; 11 S3=s3;%将0-1变量赋予数组S=[1 1 1 1 1 1 1 1 1 1 1 1]; Pw1=30;%Pw1代表机组1的爬坡功率最大值Pw2=50;%Pw2代表机组2的爬坡功率最大值Pw3=70;%Pw3代表机组3的爬坡功率最大值%定义每台机组每小时功率最大改变量Pw f=126+*A*S’+*B*S’+*C*S’;%求最小开销F=set(10 F=F+set(A(1)+B(1)+C(1)==87)+set(A(2)+ B(2)+C(2)==157)+set(A(3)+B(3)+C(3)== 267)+set(A(4)+B(4)+C(4)==355);
F=F+set(A(5)+B(5)+C(5)==399)+set(A(6) +B(6)+C(6)==402)+set(A(7)+B(7)+C(7)=
=379)+set(A(8)+B(8)+C(8)==346);
F=F+set(A(9)+B(9)+C(9)==318)+set(A(1 0)+B(10)+C(10)==302)+set(A(11)+B(11) +C(11)==303)+set(A(12)+B(12)+C(12)== 318); %任意小时功率P之和约束F=F+set(abs(A(2)-A(1))
F=F+set(abs(B(2)-B(1))
F=F+set(abs(C(2)-C(1))12 F=F+set(abs(C(6)-C(5))
solvesdp(F,f);%进行非线性规划D=[A,B,C]; E=reshape(D,12,3)’; double(f); double(E);%输出结果运行结果如下:P1=[10 10 10 10 10 10 ] P2=[] P3=[30 30 30 30 30 30] Min f= 以上我们仅对12小时内的情况进行求解,因为在执行24小时的优化过程中,会出现因为约束过多或数值不符而导致没有可行域的结果。因此我们采用了12小时的优化方法,对12-24小时采用动态规划的方法,得出最优解,方法同上。3.4问题3案例分析:对于问题3,
模型已变为非线性规划,而我们对cplex 还不甚熟悉,不知道如何运用cplex解决非线性规划问题,所以我们只采用了matlab进行编程。于我们模型的决策变量之于24小时高达144个,起初运行时不仅耗费时间,而且得到的最优解无法应用于实际情况,因此我们采用6小时决策,即每6小时进行一次规划,得到最优解。例如,对1-6小时编写程序如下:p1=sdpvar (1,6); p2=sdpvar (1,6); p3=sdpvar (1,6);%定义每台机组每小时功率p PA=sdpvar (1,6); PB=sdpvar (1,6); PC=sdpvar (1,6); A=p1; B=p2; C=p3;%将功率赋予数组s1=binvar (1,6); s2=binvar (1,6); s3=binvar (1,6);%定义0-1变量13 S1=s1; S2=s2; S3=s3;%将0-1变量赋予数组PA(1)=A(1)*S1(1); PA(2)=A(2)*S1(2); PA(3)=A(3)*S1(3); PA(4)=A(4)*S1(4); PA(5)=A(5)*S1(5); PA(6)=A(6)*S1(6); PB(1)=B(1)*S2(1); PB(2)=B(2)*S2(2);
PB(3)=B(3)*S2(3); PB(4)=B(4)*S2(4); PB(5)=B(5)*S2(5); PB(6)=B(6)*S2(6); PC(1)=C(1)*S3(1); PC(2)=C(2)*S3(2); PC(3)=C(3)*S3(3); PC(4)=C(4)*S3(4); PC(5)=C(5)*S3(5); PC(6)=C(6)*S3(6); pw1=30; pw2=50; pw3=70;%定义每台机组每小时功率最大改变量pw f=126+*A*S1’+*B*S2’+*C*S3’;%求最小开销F=set(20 F=F+set(PA(1)+PB(1)+PC(1)==87)+set(P A(2)+PB(2)+PC(2)==157)+set(PA(3)+PB( 3)+PC(3)==267)+set(PA(4)+PB(4)+PC(4) ==355);
F=F+set(PA(5)+PB(5)+PC(5)==399)+set( PA(6)+PB(6)+PC(6)==402);%任意小时功率p之和约束F=F+set(S1(1)*S1(2)*abs(PA(1)-PA(2))
F=F+set(S2(1)*S2(2)*abs(PB(1)-PB(2))
F=F+set(S3(1)*S3(2)*abs(PC(1)-PC(2)) 14
F=F+set(S3(2)*S3(3)*abs(PC(2)-PC(3)) solvesdp(F,f);%进行非线性规划