How do I impose constraints for each time step of the calculation?

1 次查看(过去 30 天)
Hello,
I am trying to find the optimal size for each component in a microgrid power system. The system has a battery with a state of charge SOC that I calculate as :
SOC=zeros(8760,1);
SOC(1)=SOC_min;
for t=2:8760
if Npv*P_pv_each(t)*eta_inv-P_dmd(t)>0
mu_c=1;
mu_d=0;
else
mu_c=0;
mu_d=1;
end
SOC(t)=SOC(t-1)*(1-SD)+(mu_c*(Npv*P_pv_each(t)-P_dmd(t))*eta_bat_c/eta_inv + mu_d*(Npv*P_pv_each(t)/eta_inv-P_dmd(t))*eta_bat_d);
end
The SOC needs to obey a set of constraints that I formulate as:
% Inequality constraints
PVEVopt.Constraint.const1=SOC_min<=SOC(t); % Guarantee minimum SOC
PVEVopt.Constraint.const2=SOC(t)<=SOC_max; % Do not exceed maximum SOC I.e battery capacity
PVEVopt.Constraint.const3=abs(SOC(t)-SOC(t-1)*(1-SD))*1000/V_bus<=I_max; % Limite charging/Discharging current
can I have this for loop in my program followed by the constraints like this? What would be another way to impose these constraints
Thanks

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Solver-Based Nonlinear Optimization 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by