?? ?? ?? ?? 歡迎來到本博客 ?? ?? ?? ??
?? 博主優(yōu)勢: ?? ?? ??博客內容盡量做到思維縝密,邏輯清晰,為了方便讀者。
? 座右銘:行百里者,半于九十。
?? ?? ?? 本文目錄如下: ?? ?? ??
目錄
??1 概述
??2 運行結果
??3 文獻來源
??4 Matlab代碼、數(shù)據(jù)、文章講解
??1 概述
摘要:由于用電量的增加,車輛電氣化將對電網產生重大影響。對電動汽車(EV)的充電和放電進行智能調度非常重要。然而,調度問題有兩大挑戰(zhàn)。首先,尋找能夠最小化總成本的全局最優(yōu)調度方案是一個挑戰(zhàn)。其次,很難找到一個能夠處理大量人口和電動汽車隨機到達的分布式調度方案。本文提出了電動汽車充放電的全局最優(yōu)調度方案和局部最優(yōu)調度方案。我們首先提出了一個全局調度優(yōu)化問題,其中對充電功率進行優(yōu)化,以最小化白天進行充電和放電的所有電動汽車的總成本。全局最優(yōu)解決方案提供了全局最小的總成本。然而,全局最優(yōu)調度方案是不切實際的,因為它需要有關未來基本負載和到達時間的信息,以及將在一天的未來時間到達的電動汽車的充電周期。為了開發(fā)一個實用的調度方案,我們然后制定了一個局部調度優(yōu)化問題,該問題旨在最小化本地組中當前正在進行的EV組中的EV的總成本。局部最優(yōu)調度方案不僅可擴展到大型電動汽車群體,而且對動態(tài)電動汽車到達具有彈性。通過仿真,我們證明了與全局最優(yōu)調度方案相比,局部最優(yōu)調度方案可以獲得接近的性能。
在全局最優(yōu)調度方案中,由于我們假設我們具有關于一天內的電動汽車和基本負載的信息的全局知識,因此我們可以通過僅解決一次全局調度優(yōu)化問題(5)來找到每個間隔的最優(yōu)充電功率。在局部最優(yōu)調度方案中,我們不知道未來負載和未來EV的信息。我們提出了一種局部最優(yōu)調度方案,通過使用滑動窗口機制來找到本地電動汽車在下一個間隔內的最優(yōu)充電功率
在局部最優(yōu)調度方案中,我們基于組進行調度優(yōu)化。一組EV包括位于一個位置或多個附近位置的EV。例如,在停車場進行充電和放電的電動汽車可以被分類為一組,而住宅車庫中的電動汽車可被分類為另一組。每個組都有一個本地控制器(LC)。局部最優(yōu)調度方案中的通信和控制如圖2所示。本地控制器與位于公用事業(yè)公司的中央控制器和本地站點的充電站建立通信連接。本地控制器從中央控制器接收當天的預測負荷。本地控制器與每個充電站實時通信以收集EV信息,基于該信息執(zhí)行調度優(yōu)化,然后指示每個本地EV以最佳充電功率對電池進行充電或放電。

安裝CVX包:
先點擊這里:風電隨機性動態(tài)經濟調度模型
然后:也是代碼前的準備

本文是一種最優(yōu)調度算法,以最大限度地降低電動汽車充放電的總成本。
??2 運行結果









模擬大規(guī)模電動車充電行為(Matlab實現(xiàn)) |
電動汽車對系統(tǒng)運行的影響(Matlab實現(xiàn)) |
基于蒙特卡洛法的規(guī)?;妱悠嚦潆娯摵深A測(Python&Matlab實現(xiàn)) |
基于電動汽車的帶時間窗的路徑優(yōu)化(Python&Matlab代碼實現(xiàn)) |
(Matlab實現(xiàn))基于蒙特卡諾和拉格朗日乘子法的電動車調度【有序、無序充放電】 |
部分代碼:
%===簡單乘法計算=====
% k_con=alfa/(omega^theta*(theta+1));
%=====充電間隔時間======
tau=1; % 小時內
%=====充電間隔數(shù)========
num_slot=length(L_b_mic);
%====(2)基本價格=======
price_basic=zeros(num_slot,1); % 基于基本負荷的價格
for i=1:num_slot文章來源:http://www.zghlxwxcb.cn/news/detail-448721.html
price_basic(i)=k_0+k_1* L_b_mic(i);
end
fprintf('價格,最低價格=%g,最高價格=%g.\n',min(price_basic), max(price_basic));
%% 電動汽車EV容量
Cap_battery_org=16; % KWh
gamma=0.9; % 充電完成時電池的百分比
Cap_battery=gamma*Cap_battery_org;
%% ==最大充電率===
P_max=5; % KW
%% 電動汽車數(shù)量
num_EV=200;
% 僅給電池充電的電動汽車的百分比
P_Chg=0;
% CHG EVs數(shù)量
num_CHG_EV=round(P_Chg*num_EV); % CHG EV 將位于 EV 信息矩陣的前面部分。
% V2G EVs數(shù)量
num_V2G_EV=num_EV-num_CHG_EV;
%% 電動汽車充電模式
% 30% 的電動汽車在間隔 1 之前連接到充電站,其余的均勻分布
%EV矩陣:1) 到達時間,2) 出發(fā)時間,3) 初始能量,4) 充電周期,5) 最小充電時間%
% EV_info=zeros(num_EV,3);
%===間隔1前接入站的EVS百分比====
% Per_EV=0.1;
%=====其他車輛到達時間均勻分布在[ 1,20 ]之間======
% for i=1:num_EV
% temp_00=rand;
% if temp_00<=Per_EV
% T_arrival(i,1)=1;
% else
% T_arrival(i,1)=round(1 + (20-1).*rand);
% end
% end
%
%=====充電時間均勻分布在 [4, 12] 小時之間======
% T_charging= round(4 + (12-4).*rand(num_EV,1));
% T_charging=-1*sort(-1*T_charging);
%
% % the departure time
% for i=1:num_EV
% T_departure(i,1)=min(24, T_arrival(i,1)+T_charging(i,1));
% end
%====初始電量均勻分布在電池容量的[0 0.8]之間======
% Ini_percentage=0+ (0.8-0).*rand(num_EV,1);
% % fill the EV_info
% EV_info(:,1)=T_arrival;
% EV_info(:,2)=T_departure;
% EV_info(:,3)=Cap_battery_org*Ini_percentage;
%
% for i=1:num_EV
% EV_info(i,4)=EV_info(i,2)-EV_info(i,1)+1; % 充電周期
% EV_info(i,5)=EV_info(i,3)/P_max; % 最小充電時間
% if EV_info(i,4) < EV_info(i,5)
% fprintf('EV %g 充電時間不合理.\n',i);
% end
% end
%
% % save and load EV_info
% save EV_info.txt EV_info -ascii;
load EV_info.txt;
EV_info=EV_info(1:num_EV,:);
%% 電動汽車與充電間隔的關系
F=zeros(num_EV, num_slot);
G=ones(num_EV, num_slot);
for i=1:num_EV
for j=EV_info(i,1):EV_info(i,2)
F(i,j)=1;
G(i,j)=0;
end
end
F1=reshape(F',1,[]);
% F=ones(num_EV, num_slot);
%% 繪制基本負荷
xx_1=1:num_slot;
figure;
yy_1(:,1)=L_b_mic;
yy_1(:,2)=P_L_b_mic;
plot(xx_1,yy_1);
ylabel('負荷[KW]');
xlabel('小時數(shù)');
legend('實際負荷量','預測負荷量');
%% 使用CVX工具的V2G全局最優(yōu)方案
%(1)等式約束: Ax=b
% (2)優(yōu)化變量x=[z1, z2, ..., z_24, x11, x12, ...., x_100,24]'
num_OptVar=1*num_slot+num_slot*num_EV;
b_a=L_b_mic; %第一個等式約束的矩陣
A1_a=zeros(num_slot, num_OptVar-1*num_slot);
A1=[eye(num_slot) A1_a];
A2_a=zeros(num_slot, num_OptVar-1*num_slot);
s_temp=0;
for i=1:num_slot
for j=1:num_EV
A2_a(i, (j-1)*num_slot+i)=F(j,i);
% fprintf('Assign F(%g,%g)=%g, to A2_a(%g, %g).\n',j,i,F(j,i),i,(j-1)*num_slot+1);
s_temp=s_temp+F(j,i);
end
end
A2_b=zeros(num_slot, num_slot);
A2=[A2_b A2_a];
A_a=A1-A2; % 第一個等式約束的矩陣
clear A1 A2 A1_a A2_a A2_b;
%======第一個等式約束的矩陣=====
B_1=zeros(num_EV, num_OptVar-1*num_slot);
for i=1:num_EV
B_1(i,(i-1)*num_slot+1:(i-1)*num_slot+num_slot)=F(i,:);
end
temp_1=zeros(num_EV, num_slot);
B1=[temp_1 B_1]; % 第二等式約束的矩陣
b_b=(Cap_battery/tau)*ones(num_EV,1)-EV_info(:,3);% 第二等式約束的矩陣
clear B_1 temp_1;
%合并等式矩陣
% Eq_left=[A_a' B1']';
% Eq_right=[b_a' b_b']';
%% ======等式約束=====
Eq_L=A_a;
Eq_R=b_a;
clear A_a b_a;
%% ======不等式約束=====
% ====1)第一個不等式約束=====
In_1=zeros(num_EV*num_slot, num_OptVar);
for i=1:num_slot
for j=1:num_EV
In_1((i-1)*num_EV+j,num_slot+(j-1)*num_slot+1:num_slot+(j-1)*num_slot+i)=F(j,1:i);
% fprintf('set row %g, col %g:%g by using F(%g,1:%g).\n',(i-1)*num_EV+j,num_slot+(j-1)*num_slot+1,num_slot+(j-1)*num_slot+i,j,i);
end
end
In_1=-1*In_1; % 第一個不等式,左邊
In_b1=zeros(num_EV*num_slot, 1); % 第一個不等式,右邊, [EV1_slot1, EV2_slot1, ..., EV1_slot2, EV2_slot2,...]'
for i=1:num_slot
In_b1( (i-1)*num_EV+1:(i-1)*num_EV+num_EV, 1 )= (1/tau)*EV_info(1:num_EV,3);
end
%=====2)第二個不等式約束=====
In_2=-1*In_1; %第二個不等式約束,左邊
In_b2=zeros(num_EV*num_slot, 1); % 第二個不等式約束,右邊, [EV1_slot1, EV2_slot1, ..., EV1_slot2, EV2_slot2,...]'
temp_b2=Cap_battery_org - EV_info(1:num_EV,3);
for i=1:num_slot
In_b2( (i-1)*num_EV+1:(i-1)*num_EV+num_EV, 1 )= (1/tau)*temp_b2;文章來源地址http://www.zghlxwxcb.cn/news/detail-448721.html
??3 文獻來源
部分理論來源于網絡,如有侵權請聯(lián)系刪除。

??4 Matlab代碼、數(shù)據(jù)、文章講解
到了這里,關于電動汽車充放電的優(yōu)化調度(Matlab代碼實現(xiàn))的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!