✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
近年来电动汽车行业正处于蓬勃发展时期,预测2035年将有近亿辆电动汽车接入电网,本文通过蒙特卡洛法模拟了电动汽车无序充电,验证了逐渐增多的无序充电负荷将导致电网峰上加峰
⛄ 部分代码
function [ solution, StartJ, EndtimeJ,enddate ] = OpEV( number,evstart,evend, date,keyongrl )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
Price=[0.365 0.365 0.365 0.365 0.365 0.365 0.365 0.365 0.365 0.365 0.869 0.869 0.687 0.687 0.687 0.687 0.687 0.869 0.869 0.869 0.869 0.687 0.687 0.687];
N=number;
dt=0.25;
Ci=32;
tstart=evstart;
tend=max(evend);%这里是个向量可能还有问题,evend 为车的量数*1
EndtimeJ=ceil((tend*60)/15);
nextday=max(date);%这里也是个向量
enddate=nextday;
Pni=7;
xiaolv=0.8;
% Fhlv=0.5;
Pi=Pni*xiaolv;
yinshu=0.9;%%???还没加上
% B=800*yinshu;
[J,PrJ,StartJ,~,keyongrlJ]=DuanshuJ(tstart,tend,nextday,Price,keyongrl);
zhongzhi=zeros(J, N);%辅助矩阵判定充电结束时间
for i=1:N
if date(i)==0
EndJ(i)=ceil((evend(i)*60)/15);
else
EndJ(i)=ceil((evend(i)*60)/15)+96;
end
end
for i=1:N
zhongzhi(EndJ(i)-StartJ+1,i)=1;
if tend>EndJ(i)
for k=(EndJ(i)+1):tend
zhongzhi(k+1-StartJ,i)=2;
end
end
end
Snj=binvar(N,J);
Aj=ones(J,1);
rs=0.2*ones(N,1);
re=0.9*ones(N,1);
% Bj=Fhlv*Aj*B;
f=Pni*dt*sum(Snj*PrJ');
F=set((Pni*dt*sum(Snj))'<= keyongrlJ);
F=F+set((Pi*Snj*Aj+rs*Ci)>=(re*Ci))+set((Pi*Snj*Aj+rs*Ci)<=Ci);
F=F+set(diag(Snj*zhongzhi)<(2*ones(N,1)));
options = sdpsettings('verbose',1,'solver','cplex');
sol = solvesdp(F,f,options);
if sol.problem == 0
solution = double(Snj);
else
display('Hmm, something went wrong!');
sol.info
yalmiperror(sol.problem)
end
d
⛄ 运行结果
⛄ 参考文献
[1]万雅诤, 林德焱, 万方颖. 基于MATLAB的电动汽车充电优化建模研究[J]. 2020.