To minimize the charging cost of electric vehicles

4 vues (au cours des 30 derniers jours)
Suganthi D
Suganthi D le 22 Juin 2022
Commenté : Suganthi D le 23 Juin 2022
clc;
clear all;
close all;
timelen=0:10:50;
finaltime=timelen;
for kgen=1:23
finaltime=[finaltime kgen*100+timelen];
end
elec_price=ones(1,length(finaltime))*4;
loc=find(finaltime>=1100 & finaltime<1500);
elec_price(loc)=5.2;
loc=find(finaltime>=1500 & finaltime<2000);
elec_price(loc)=5.5;
loc=find(finaltime>=2000 & finaltime<2300);
elec_price(loc)=6;
total_elec_price=sum(4+5.2+5.5+6)
pmax=6.6*1e3;
pmin=6.6*1e3;
Emax=24*1e3;
socthlow=20;
socthhigh=90;
soclower_accept=20;
delt=10/60;
gamma=0.9500; %%% denotes charging/discharging rate (-1,1)
gamma1=-0.9500;
del_gamma=0.0225;
del_gamma1=-0.0225;
data_pass{1}=pmax;
data_pass{2}=Emax;
data_pass{3}=socthlow;
data_pass{4}=socthhigh;
data_pass{5}=soclower_accept;
data_pass{6}=elec_price;
data_pass{7}=delt;
data_pass{8}=gamma;
data_pass{9}=gamma1;
data_pass{10}=del_gamma;
data_pass{11}=del_gamma1;
alphadata=[];
obj_sel=1;
data_pass{21}=obj_sel;
data_pass{22}=alphadata;
socintij1=[38 40 55 60 79];
EVSE1_arr_time=[0500 0912 1312 2102 2302];
EVSE1_leave_time=[0900 1306 2100 2300 0459];
k1=2.64;
j=0;
to=0:23/143:23
for t1=1:length(to)
for i=1:length(to)
for m=length(EVSE1_arr_time)
for k=1:length(socintij1)
if socthlow >= 20 & socthhigh<= 90
if j<=EVSE1_arr_time & j<=EVSE1_leave_time
j=j+1
end
soc_chg= k1*delt+socintij1;
soc_dchg=socintij1-(k1*delt);
to
gamma=gamma+(del_gamma);
end
end
end
end
end
% if pmax >=6.6 & pmin<=6.6
chg_power=(gamma*pmax)/(1e4)
dischg_power=(gamma1*pmax)/(1e4)
% end
t=0:1:23;
plot(t, chg_power)
xlabel('time((h)');ylabel('power(kW)');
chg_cost=elec_price*chg_power*delt
total_value=sum(chg_cost);
dschg_cost=elec_price*dischg_power*delt
total=sum(dschg_cost);
subplot(2,2,1)
plot(finaltime,chg_cost);
xlabel('time(h)');ylabel('cost(rs/kWh)')
legend('charging cost')
subplot(2,2,2)
plot(finaltime,dschg_cost);
xlabel('time(h)');ylabel('cost(rs/kWh)')
legend('discharging cost')
  2 commentaires
DGM
DGM le 22 Juin 2022
So what's the question?
Other than the unsuppressed output wasting a ton of time and the random indentation (which I fixed), the code runs without error.
Sam Chak
Sam Chak le 22 Juin 2022
@Suganthi D, eh... Where is the mathematics of the "Charging Cost" function that you want to minimize?

Connectez-vous pour commenter.

Réponses (1)

Karim
Karim le 22 Juin 2022
Which error do you obtain?
I changed
if j<=EVSE1_arr_time & j<=EVSE1_leave_time
into
if all(j<=EVSE1_arr_time) && all(j<=EVSE1_leave_time)
and then it seems to run and produce a figure, see below
timelen=0:10:50;
finaltime=timelen;
for kgen=1:23
finaltime=[finaltime kgen*100+timelen];
end
elec_price=ones(1,length(finaltime))*4;
loc = finaltime>=1100 & finaltime<1500;
elec_price(loc)=5.2;
loc = finaltime>=1500 & finaltime<2000;
elec_price(loc)=5.5;
loc = finaltime>=2000 & finaltime<2300;
elec_price(loc)=6;
total_elec_price=sum(4+5.2+5.5+6);
pmax=6.6*1e3;
pmin=6.6*1e3;
Emax=24*1e3;
socthlow=20;
socthhigh=90;
soclower_accept=20;
delt=10/60;
gamma=0.9500; %%% denotes charging/discharging rate (-1,1)
gamma1=-0.9500;
del_gamma=0.0225;
del_gamma1=-0.0225;
data_pass{1}=pmax;
data_pass{2}=Emax;
data_pass{3}=socthlow;
data_pass{4}=socthhigh;
data_pass{5}=soclower_accept;
data_pass{6}=elec_price;
data_pass{7}=delt;
data_pass{8}=gamma;
data_pass{9}=gamma1;
data_pass{10}=del_gamma;
data_pass{11}=del_gamma1;
alphadata=[];
obj_sel=1;
data_pass{21}=obj_sel;
data_pass{22}=alphadata;
socintij1=[38 40 55 60 79];
EVSE1_arr_time=[0500 0912 1312 2102 2302];
EVSE1_leave_time=[0900 1306 2100 2300 0459];
k1=2.64;
j=0;
to=0:23/143:23;
for t1=1:length(to)
for i=1:length(to)
for m=length(EVSE1_arr_time)
for k=1:length(socintij1)
if socthlow >= 20 && socthhigh<= 90
if all(j<=EVSE1_arr_time) && all(j<=EVSE1_leave_time)
j=j+1;
end
soc_chg= k1*delt+socintij1;
soc_dchg=socintij1-(k1*delt);
gamma=gamma+(del_gamma);
end
end
end
end
end
% if pmax >=6.6 & pmin<=6.6
chg_power=(gamma*pmax)/(1e4);
dischg_power=(gamma1*pmax)/(1e4);
% end
t=0:1:23;
% plot(t, chg_power)
% xlabel('time((h)');ylabel('power(kW)');
chg_cost=elec_price*chg_power*delt;
total_value=sum(chg_cost);
dschg_cost=elec_price*dischg_power*delt;
total=sum(dschg_cost);
figure
subplot(2,1,1)
plot(finaltime,chg_cost);
xlabel('time(h)');ylabel('cost(rs/kWh)')
grid on
legend('charging cost','Location','northwest')
subplot(2,1,2)
plot(finaltime,dschg_cost);
xlabel('time(h)');ylabel('cost(rs/kWh)')
grid on
legend('discharging cost','Location','southwest')
  5 commentaires
Suganthi D
Suganthi D le 23 Juin 2022
i didn't use any algorithm on the above code, but i have decided to work on mixed integer linear programming algorithm .
Suganthi D
Suganthi D le 23 Juin 2022
Thank you SIR @KASR

Connectez-vous pour commenter.

Catégories

En savoir plus sur Workspace Variables and MAT-Files dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by