我们会变得更加强大 2024-06-22 10:50 采纳率: 0%
浏览 0

经济调度中使用功率约束的对偶求节点电价时 存在NAN.。

经济调度中使用功率约束的对偶求节点电价时 存在NAN.。
程序中成本,使用固定成本时可以运行,但当使用成本范围时存在NAN。
另一方面,目标函数去掉第一部分也可以求解 ,请问是什么原因?

clc;
clear;
rG=15;%规划年数
rp=0.08;%年利率
pm_max=500;%联络线功率上限 mw
%各种电源类型的单位投资成本(单位:美元/MW)
cost_coal=73571; % 火电
cost_wind=117714 ; % 风电
cost_solar=88285; % 太阳能
% 各种电源类型的运行维护成本(单位:美元/MW*h)
% om_cost_coal =42; % 煤电
% om_cost_coal2 =100; % 煤电
% om_cost_wind =6.2; % 风电
% om_cost_solar = 5.7; % 太阳能
wwmin=5.4;wwmax=6.2;
vvmin=4.7;vvmax=5.7;
oomin=287/7;oomax=350/7;
%燃料成本
cost=43;%mwh
tuiyi=4600;%danwei 
load=xlsread("负荷功率最大负荷300mw.xlsx");
load_max=3000;%单位mw
l_load1=load(:,4);P_pw1=load(:,2);P_pv1=load(:,3);
l_load=l_load1*load_max;
huo=3405;
pw=600;
pv=600;
Gen=xlsread("发电机数据.xlsx");
PGlocation=Gen(:,2);
PGpower=Gen(:,3);
PGmin=Gen(:,4);
PGmax=Gen(:,5);
costmin=Gen(:,7)/7;%运行成本下限
costmax=Gen(:,8)/7;%运行成本上限
PG=sdpvar(32,24,'full');
PW=sdpvar(1,24);%
PV=sdpvar(1,24);%
om_cost_coal=sdpvar(32,24);
om_cost_coal2=sdpvar(1,24);
om_cost_wind=sdpvar(1,24);
om_cost_solar=sdpvar(1,24);
% coal_plan=intvar(n_periods, 1);%火电
% wind_plan=intvar(n_periods, 1);%风电
% solar_plan=intvar(n_periods, 1);%光伏
coal_plan=830;%火电
wind_plan=300;%风电
solar_plan=300;%光伏
PG2=sdpvar(1,24);
PW2=sdpvar(1,24);%
PV2=sdpvar(1,24);%
cost3=zeros(32,24);
constraints = [];
for i=1:32
    for t=1:24
        constraints = [constraints,PGmin(i)<= PG(i,:)<=PGmax(i)];
        constraints = [constraints,costmin(i)<=om_cost_coal(i,t)<=costmax(i)];
    end
end
for t=1:24
    constraints = [constraints,0<= PW(1,t)<=P_pw1(t)*pw];
    constraints = [constraints,oomin<=om_cost_coal2(1,t)<=oomax];
    constraints = [constraints,wwmin<=om_cost_wind(1,t)<=wwmax];
     constraints = [constraints,vvmin<=om_cost_solar(1,t)<=vvmax];
end
for t=1:24
    constraints = [constraints,0<= PV(1,t)<=P_pv1(t)*pv];
end
for t=1:24
    constraints = [constraints,0<= PG2(1,t)<=coal_plan];
end
for t=1:24
    constraints = [constraints,0<= PW2(1,t)<=wind_plan*P_pw1(t)];
end
for t=1:24
    constraints = [constraints,0<= PV2(1,t)<=solar_plan*P_pv1(t)];
end
for t=1:24
    constraints = [constraints, PV2(1,t)<=solar_plan*P_pv1(t)];
end

for t=1:24
    constraints = [constraints, PV2(1,t)+PW2(1,t)+PG2(1,t)+ PV(1,t)+PW(1,t)+sum(PG(:,t))==l_load(t)];
end
total_cost=0;

for i=1:32
    for t=1:24
        total_cost=total_cost+(PG(i,t)*om_cost_coal(i,t) );
    end
end

for t=1:24
    total_cost=total_cost+(PG2(1,t)*om_cost_coal2(1,t) );
    total_cost=total_cost+(PW(1,t)*om_cost_wind (1,t) );
    total_cost=total_cost+(PW2(1,t)*om_cost_wind(1,t)  );
    total_cost=total_cost+(PV(1,t)*om_cost_solar(1,t) );
    total_cost=total_cost+(PV2(1,t)*om_cost_solar(1,t));
end
ops=sdpsettings('verbose',0,'solver','gurobi','gurobi.TimeLimit',300,'gurobi.MIPgap',1e-6);
optimize(constraints, total_cost, ops);
   dual_variables = zeros(1, 24);
    for t=1:24
        dual_variables(t)=-dual(constraints(t+length(constraints)-24));%节点边际电价
        Pg(t)=sum(PG(:,t));
    end

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-06-22 10:50
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    出现NAN(Not a Number)通常意味着在计算过程中发生了无效或未定义的操作,这可能是由于多种原因造成的。在你提供的MATLAB代码中,可能的原因包括但不限于:

    1. 数值稳定性问题:当使用成本范围时,可能存在某些操作导致数值计算不稳定,比如除以非常接近于零的数。

    2. 约束条件冲突:可能存在一些约束条件相互之间有冲突,导致求解器无法找到有效的解。

    3. 变量界限设置不当:如果变量的界限设置得太紧或太松,可能会导致求解器在搜索解的过程中遇到问题。

    4. 求解器设置问题:Gurobi求解器的参数设置可能需要调整,比如时间限制或容差设置。

    5. 数据问题:输入数据可能存在问题,比如负数、非常大的数或不合理的值,这些都可能影响求解过程。

    为了解决这个问题,你可以尝试以下步骤:

    • 检查数据:确保所有输入数据都是合理的,没有极端的值或错误。

    • 逐步简化问题:尝试逐步增加约束条件,每次增加后都运行求解器,看看问题在哪里出现。

    • 调整求解器参数:尝试调整Gurobi的参数,比如增加时间限制或调整容差。

    • 使用不同的求解器:如果可能的话,尝试使用MATLAB中的其他求解器,看看问题是否仍然存在。

    • 检查约束条件:确保所有的约束条件都是合理的,没有逻辑上的错误。

    • 检查变量界限:确保变量的界限设置得当,不会太紧或太松。

    • 使用调试工具:MATLAB提供了调试工具,可以帮助你跟踪问题出现的地方。

    • 咨询专业社区:如果问题仍然无法解决,你可以在专业的数学优化论坛或社区中寻求帮助。

    由于我不能直接运行MATLAB代码,以上建议仅供参考。如果你需要更具体的帮助,你可以提供更详细的错误信息或代码段,以便进一步分析。

    至于参考链接,你可以参考以下资源来获取更多关于MATLAB优化和Gurobi求解器的信息:

    希望这些建议能帮助你解决问题。如果需要进一步的帮助,请随时告诉我。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月22日

悬赏问题

  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
  • ¥15 有人会用py或者r画这种图吗