一、簡介
基于matlab實作電動汽車有序充電
二、源代碼
clc;
clear;
Ci=32; %電池容量
Pni=7; %充電功率
xiaolv=0.9; %充電效率
Pi=Pni*xiaolv;%實際充電功率
Brl=4*1615*0.8;%變壓器容量
SampleNo=150;%代表抽樣數
Tranrl=Brl*ones(1,96);%變壓器容量陣列
%%確定負荷
fhx=[ 1426.39 1445.58 1426.39 1416.39 1426.39 1491.22 1512.84 1523.64 1512.84 1426.39 1399.37 1275.10 1188.66 1048.18 832.06 780.22 768.64 812.06 884.48 1069.70 1170.66 1275.10 1404.78 1426.39 1426.39 ]; %從12點開始算負荷
fhx=0.8*fhx;
ratio=zeros(1,96);
for i=1:96
firstfhx=fhx(floor((i-1)/4)+1)/Brl;
secondfhx=fhx(floor((i-1)/4)+2)/Brl;
if(rem(i,4)==1)
ratio(i)=fhx(floor((i-1)/4)+1)/Brl;
elseif(rem(i,4)==2)
ratio(i)=firstfhx+(secondfhx-firstfhx)/4;
elseif(rem(i,4)==3)
ratio(i)=firstfhx+2*(secondfhx-firstfhx)/4;
else
ratio(i)=firstfhx+3*(secondfhx-firstfhx)/4;
end
end
%% 抽樣
load('Parameters250.mat');
interval=zeros(1,96);
EVNoCount=0; %可提供充電的總數目
EVstarttime=zeros(1,SampleNo);
EVssoc=zeros(1,SampleNo);
EVendtime=zeros(1,SampleNo);
startt=12.25;
for t=1:96 %96個時段 從中午12點開始計算,也就是從第50個時段開始計算, 12.25為第一個時間段
starttime=startt+0.25*(t-1);
%%對電動汽車的到達時間及車輛數進行進行抽樣
if starttime>24
starttime=starttime-24;
end
o=3.41;u=17.47;
if starttime<=(u-12)
liangshu=@(x)(1./(o.*((2.*pi).^0.5))).*exp(-((x+24-u).^2)./(2.*(o.^2)));%每個重繪時段內的入網量數的概率密度函式
else
liangshu=@(x)(1./(o.*((2.*pi).^0.5))).*exp(-((x-u).^2)./(2.*(o.^2)));%每個重繪時段內的入網量數的概率密度函式
end
s1=quadl(liangshu,starttime-0.25,starttime);%0.25代表重繪時段為0.25小時
intervalNo=round(s1*SampleNo); %該段時間的接入的車輛數目
interval(t)=intervalNo;
%%對初始SOC進行抽樣
reasonnumber=0;
for i=1:intervalNo
MU=2.98;
SIGMA=1.14;
R = lognrnd(MU,SIGMA);
socs= 0.9- 15*R/(100*Ci);
while socs<0.1 || socs>=0.3
R = lognrnd(MU,SIGMA);
socs= 0.9- 15*R/(100*Ci);
end
socs=fix(socs*100)/100;
endtimeone=normrnd(8.92,3.24);
while endtimeone>=12 || endtimeone<=2
endtimeone=normrnd(8.92,3.24);
end
endtimeone=ceil((endtimeone*60)/15)+48;
if (starttime>12)||(starttime<endtimeone)
maxJ=endtimeone-t;
if (0.25*maxJ*Pi>((0.9-socs)*Ci))
reasonnumber=reasonnumber+1;
EVstarttime(1,EVNoCount+reasonnumber)=t;
EVssoc(1,EVNoCount+reasonnumber)=socs;
EVendtime(1,EVNoCount+reasonnumber)=endtimeone;
end
end
end
EVNoCount=EVNoCount+reasonnumber;
end
RealEVstarttime=zeros(1,EVNoCount);
RealEVssoc=zeros(1,EVNoCount);
RealEVendtime=zeros(1,EVNoCount);
for i=1:EVNoCount
RealEVstarttime(1,i)= EVstarttime(1,i);
RealEVssoc(1,i)=EVssoc(1,i);
RealEVendtime(1,i)=EVendtime(1,i);
end
clear EVstarttime EVssoc EVendtime;
%%全域優化
dt=0.25;%時間間隔
Snj=binvar(EVNoCount,96);
Transformer=ones(1,96);
Aj=ones(96,1);
re=0.9*ones(EVNoCount,1);
Cend=ones(EVNoCount,1);
Price=[ 0.687 0.687 0.687 0.687 0.687 0.869 0.869 0.869 0.869 0.687 0.687 0.687 0.365 0.365 0.365 0.365 0.365 0.365 0.365 0.365 0.869 0.869 0.869 0.869];
pricekuo=zeros(1,96);
for i=1:95
pricekuo(i)=Price(floor(i/4)+1);
if(floor((i-1)/4)<floor(i/4))
pricekuo(i)=Price(floor(i/4));
end
end
三、運行結果

四、備注
完整代碼或者代寫添加QQ912100926
往期回顧>>>>>>
【優化求解】粒子群演算法之充電站最優布局【Matlab 061期】
【優化求解】遺傳演算法之多旅行商問題【Matlab 062期】
【優化求解】遺傳和模擬退火之三維裝箱問題【Matlab 063期】
【優化求解】遺傳演算法之求最短路徑【Matlab 064期】
【優化求解】粒子群之優化灰狼演算法【Matlab 065期】
【優化求解】多目標之灰狼優化演算法MOGWO 【Matlab 066期】
【優化求解】遺傳演算法之求解優化車輛發車間隔【Matlab 067期】
【優化求解】磷蝦群演算法簡介【Matlab 068期】
【優化求解】差分進化演算法簡介【Matlab 069期】
【優化求解】約束優化之懲罰函式法簡介【Matlab 070期】
【優化求解】改進灰狼演算法之求解重油熱解模型【Matlab 072期】
【優化求解】蟻群演算法之配電網故障定位【Matlab 073期】
【優化求解】遺傳演算法之求解島嶼物資補給優化問題【Matlab 137期】
【優化求解】基于matlab冠狀病毒群體免疫優化演算法(CHIO)【Matlab 138期】
【優化求解】基于matlab之金鷹優化求解演算法(GEO)【Matlab 139期】
【優化求解】基于GUI界面之BP神經網路優化求解【Matlab 179期】
【優化求解】基于GUI界面之遺傳演算法優化求解【Matlab 180期】
【優化求解】基于GUI界面之蟻群演算法優化求解【Matlab 181期】
【優化求解】 免疫演算法之數值逼近優化分析【Matlab 182期】
【優化求解】 啟發式演算法之函式優化分析【Matlab 183期】
【優化求解】改進的遺傳演算法(GA+IGA)之城市交通信號優化【Matlab 184期】
【優化求解】改進的遺傳演算法GA之城市交通信號優化【Matlab 185期】
【優化求解】改進的遺傳演算法IGA之城市交通信號優化【Matlab 186期】
【優化求解】罰函式的粒子群演算法之函式尋優【Matlab 187期】
【優化求解】細菌覓食演算法之函式優化分析【Matlab 188期】
【優化求解】引力搜索演算法之函式優化分析【Matlab 189期】
【優化求解】蟻群演算法之函式優化分析【Matlab 190期】
【優化求解】多元宇宙優化演算法【Matlab 191期】
【優化求解】飛蛾撲火演算法(MFO)【Matlab 192期】
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/266283.html
標籤:其他
上一篇:藍橋杯iic之AT24C02(教你如何依據資料手冊寫代碼)
下一篇:單片機編輯庫一之延時與led燈
