Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.

 View Only
  • 1.  who can help me to solve my problem?

    Posted Sun July 01, 2012 04:35 AM

    Originally posted by: sanshui


    Hi all,

    I just completed an OPL coding, but I don't know why all the decision variables' value are null?

    The data is attached and the coding is :
    using CPLEX;
    int T=96;
    range k=1..T;
    float Pw_pv_max=94.0100;
    float Pload_max=993.8163;
    float P_loadmax=902.7891;
    float P_loadmin=897.4356;

    float Price[k]=...;
    float Pw_pv[k]=...; //从excel导入的数据
    float Pload[k]=...; //联合系统的电网负荷预测出力,从excel导入的数据
    float Pplan[k]=...; //联合系统的计划出力,从excel导入的数据
    int Ns=8;
    float e=0.1;
    float w=0.45;
    float Csu=15;
    float Csd=1.5;
    float efficiency=0.95;
    float Psg_max=6; //蓄水储能发电最大值
    float Psg_min=3;
    float Psp_max=6; //蓄水储能抽水功率最大值
    float Psp_min=3; //蓄水储能抽水最小值
    float Esu_max=80; //蓄水储能上水池容量最大值
    float Esu_min=10; //蓄水储能上水池容量最小值
    float Esl_max=80; //蓄水储能下水池容量最大值
    float Esl_min=10; //蓄水储能下水池容量最小值

    dvar float+ Psg[k];
    dvar float+ Psp[k];
    dvar int+ Nup[k]; //开机数目
    dvar int+ Ndp[k]; //停机数目
    float Esu[k];
    float Esl[k];
    int Nus[k];

    //***************目标函数
    maximize
    sum(m in k)(Price[m]*(Pw_pv[m]+Psg[m]-Psp[m])
    - Csu*Nup[m]
    - Csd*Ndp[m]
    -w*Price[m]*(abs(Pw_pv[m]+Psg[m]-Psp[m]-Pplan[m])));

    //**************************约束条件
    subject to {
    forall(m in 1..95)
    ctBalance1: Esum+1==Esu[m]+efficiency*Pspm+1-Psgm+1;//上水位容量约束

    forall(m in 1..95)
    ctBalance2: Eslm+1==Esl[m]-efficiency*Pspm+1+Psgm+1;//下水位容量约束

    forall(m in k)
    ctuCap: Esu_min<=Esu[m]<=Esu_max;//上水位容量不等式约束

    forall(m in k)
    ctlCap: Esl_min<=Esl[m]<=Esl_max;//上水位容量不等式约束

    forall(m in k)
    ctdemand:10<=Esu[T]-Esu[1]<=60; //上水位周期始末容量约束

    forall(m in 2..T)
    ctkaiji_number: Nus[m]==Nusm-1+Nup[m]-Ndp[m];//抽水泵个数前后时段的关系

    forall(m in k)
    ctn: Nus[m]<=Ns; //抽水泵个数约束

    forall(m in k)
    ctsp: Nus[m]*Psp_min<=Psp[m]<=Nus[m]*Psp_max; //抽水功率约束

    forall(m in 2..T)
    ctsg:(Psg_min<=Psg[m]<=(Ns-Nusm-1)*Psg_max)||(Psg[m]==0); //蓄水电站发电功率约束

    forall(m in k)
    ctnm: sum(m in k)(Nup[m]+Ndp[m])<=2*Ns; //抽水蓄能电站水泵机组的总启停次数约束

    forall(m in k)
    ctsum: sum(m in k)Nup[m]*Ndp[m]+Psp[m]*Psg[m]<=0;//抽水发电互斥约束

    forall(m in k)
    ct4:(1-e)*Pplan[m]<=Pw_pv[m]+Psg[m]-Psp[m]<=(1+e)*Pplan[m];//跟随计划出力约束
    }
    //*******************************************************
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 2.  Re: who can help me to solve my problem?

    Posted Sun July 01, 2012 08:41 AM

    Originally posted by: John Cui


    Can you export your model to a .lp file by set output file parameter in OPL setting file? And then attach it to here.
    John Cui
    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 3.  Re: who can help me to solve my problem?

    Posted Sun July 01, 2012 08:55 AM

    Originally posted by: sanshui


    ok,thank you very much!
    #DecisionOptimization
    #OPLusingCPLEXOptimizer