MATLAB中的谷填充优化

时间:2014-05-21 15:04:49

标签: matlab mathematical-optimization

我正在尝试模拟ev(电动汽车)充电的分布式调度程序。期望的行为将削减峰值并填充谷值,换句话说,最小化测试网格上的电负载的峰均比。 (例如在本文中:web.eecs.umich.edu/~hiskens/publications/1940.pdf)

想要结果的图片:

http://www.mathworks.com/matlabcentral/answers/uploaded_files/13055/Capture.PNG

所以,基本上,我正在做的是:

  • 向每个用户发送网格其余部分的总负载
  • 随机初始化充电调度向量,这将是IPM优化的起点x0
  • 优化:我希望最小化峰均比,或等效地提供能量的成本(二次fcn)

约束如下:

  • 从现在到车辆离港时刻之间安排的费用总和等于能源需求(Aeq的第一行)
  • 过去的调度无法更改(因此它等于过去的负载, ecs.ev_load ),出发后的调度必须为零( I ,Aeq矩阵的其余部分)
  • 能耗下限为零
  • 上限是给定参数 ecs.max_load

    x0=ecs.schedule;
    I=eye(ecs.timeslots);
    I(ecs.currenttime:ecs.ev.departure,:)=[];
    Aeq=[zeros(1,ecs.currenttime-1) -1*ones(1,ecs.ev.departure-ecs.currenttime+1) zeros(1,ecs.timeslots-ecs.ev.departure);I];
    beq=[-1*ecs.ev.requested_chg*ecs.nslotsperhour;ecs.ev_load;zeros(ecs.timeslots-ecs.ev.departure,1)];
    A=[];
    b=[];
    nonlcon=[];
    lb=zeros(ecs.timeslots,1);
    ub=ecs.max_load*ones(ecs.timeslots,1);
    options = optimoptions('fmincon','Algorithm','interior-point','MaxFunEvals',30000);
    

每个ev的目标函数 par

  • x :车辆的预定负载(优化变量)
  • other_loads :每个非ev负载的 future 行为(不切实际),其余ev计划的负载

    other_loads=ecs.game_l;    %l_n (all schedules in the grid, mine included)
    other_loads(:,ecs.id)=[];  %l_-n (removed my own schedule)
    schedule = fmincon(@par,x0,A,b,Aeq,beq,lb,ub,nonlcon,options);
    
    
    function f=par(x)
        tot=sum([x other_loads],2);
        f=max(tot)/mean(tot);
    end
    

我得到的图片:

enter image description here

这是我的问题:优化不起作用。我一直在修补代码,但我总是得到(差不多)相同的结果,其中山谷根本没有被填充,并且行为几乎是不变的。我通过调试验证了变量的内容是否正确,也许我对优化器做错了什么? 提前致谢

0 个答案:

没有答案