A problem about economic dispatch of power system

359 views
Skip to first unread message

Li Xin

unread,
Jul 31, 2017, 7:46:22 PM7/31/17
to YALMIP
Dear Professor,

Thank you for establishing YALMIP and providing tutorials for us. I'm new to YALMIP, but I think it is easy to use and so helpful to my research.  

Recently, I have a problem about my model. I would like to consider an Economic Dispatch(ED) problem in which the on/off status of generators has been determined by Unit Commitment. In the Unit Commitment problem, the sampling period is 1 hour, while in ED problem the sampling period is 10 minutes. In my model, there are 8 generators, 1 wind farm and 1 energy storage system. The corresponding parameters could be found in Economic_Dispatch.m file. The wind power, load and on/off status of generators can be found in Imput Data.mat. 

The objective function and constraints are shown in the picture. I would like to minimize the total cost, including generation cost, cutting wind penalty, cutting load penalty and start-up cost. According to the optimization problem, I think this is a simple convex problem.

However, I found that when I change the ramp power constrains of generators from 'r_change = [120,90,130,100,12,100,100,140];'  to 'r_change = [120,90,130,100,12,100,100,130];', the model becomes infeasible. In my opinion, Cutting wind as well as load is allowed in my model. If the system cannot supply the load, I think it is reasonable to cut some load to make sure the system could work. I feel very confused about why it reports 'Model is infeasible or unbounded.' rather than cut some load.

Sincerely thank you for your time.

Best wishes,
Xin


Input Data.mat
Economic_Dispatch.m

Johan Löfberg

unread,
Aug 1, 2017, 5:34:15 AM8/1/17
to YALMIP
you've got some massive error in your perception of the model, because it stays infeasible when you remove almost all constraints

Constraints = [];
for k = 1:Horizon
    Constraints = [Constraints , sum(P_gen(:,k)) + Wind_3days(k) - Cut_wind(k) + P_sto(k+1) == Load_3days(k) - Cut_load(k)]; % Power Equation

    Constraints = [Constraints , onoff(:,k).*Pmin <= P_gen(:,k) <= onoff(:,k).*Pmax]; % Generation Limit
    Constraints = [Constraints , 0<= Cut_wind(k) <= Wind_3days(k)]; % Cutting Wind Power Limit
%    Constraints = [Constraints , 0<= Cut_load(k) <= Load_3days(k)]; % Cutting Load
    
end;
for k = 2:Horizon
       Constraints = [Constraints ,  -r_change'<= P_gen(:,k)-P_gen(:,k-1)<=r_change']; % Ramp Limit of Generation Power
end

% % Storage Constrains 
% Constraints = [Constraints ,E_sto(1) == 0.5*E_install]; % Initial Stored Energy
% Constraints = [Constraints ,P_sto(1) == 0]; % Initial Charging Power
 for k = 1:Horizon
%     Constraints = [Constraints , -P_install <= P_sto(k+1) <= P_install]; % Charging/Discharging Limitation
%     Constraints = [Constraints , -P_limit <= P_sto(k+1)-P_sto(k) <= P_limit]; % Charging/Discharging Ramp Power Limitation
%     Constraints = [Constraints , E_sto(k+1) == E_sto(k) + P_sto(k+1)*delta_t]; % Continuous Working Condition
%     Constraints = [Constraints ,  0.2<= E_sto(k)/E_install <=1]; % SOC Constraints
 end
 %    Constraints = [Constraints , E_sto(Horizon+1) == 0.5*E_install ]; % Final Stored Energy
    

optimize(Constraints);


Li Xin

unread,
Aug 1, 2017, 2:39:44 PM8/1/17
to YALMIP
Thank you for your help. I will check it. 
Reply all
Reply to author
Forward
0 new messages