【优化充电】基于matlab蒙特卡洛算法求解电动汽车充电优化问题【含Matlab源码 1164期】

751 阅读3分钟

一、蒙特卡洛算法简介

1 蒙特卡洛算法定义 蒙特卡洛(Monte Carlo)方法,在渲染中,我们经常听到术语“蒙特卡洛”(通常缩写为MC)。但是这是什么意思?实际上,它所指的是一个非常简单的想法,蒙特卡洛方法指的是一系列统计方法,这些方法本质上用于查找事物的解决方案,例如计算函数的期望值,或者对由于没有封闭形式而无法进行分析积分的函数进行积分。我们可以用该原理来解决不同的问题,并且针对这些问题中都可以关联不同的技术或算法。所有这些算法的共同点是它们使用随机(或随机)采样。

2 蒙特卡洛模拟法的原理 蒙特卡洛法(Monte Carlo)是统计试验计算方法,高斯正太分布的期望值µ决定函数分布位置,标准差σ决定函数分布幅度,其概率密度函数公式如下: 在这里插入图片描述 根据中心极限定理,当统计样本足够充足时,各独立同分布随机变量之和的分布趋近于高斯正态分布,且尺寸分布符合伯努利大数定律。因此,蒙特卡洛模拟法计算中所求数学期望即可通过函数f(x)的积分获取。

二、部分源代码

clc;
clear all;
%本程序基于蒙特卡洛思想生成10000台充电汽车充电负荷曲线
 
 

rate=[0.1 0.4 0.5]; %三种充电汽车比例
P_h=[1.4 1.9; 7.7 25.6;40 100];%三种充电功率取值范围

M=10000;                %10000辆车
r=0;
Bh=zeros(M,96);          % 10000辆车行,96个时间列
for i=1:M
    Ph=zeros(96,1);         %96个时间行,1列
    r=r+1;
     for j=1:96
        T_star=get_star();          %充电开始时间   每15分钟
        qua=get_qua();        %充电电量
        P_hi=get_i(rate,P_h);    %充电功率  每小时
        T_char=round(4*qua/P_hi(2));    %一小时有415分钟
        T_sum=T_star+T_char;      %充电结束时间
        if T_sum>96               %时间不能大于96
            new_T_sum=T_sum-96;
            Ph(T_star:96)=P_hi(2);            %从开始时间个数到96 放功率
            Ph(1:new_T_sum)=P_hi(2);          %从1到结束个时间 放功率
        else
            Ph(T_star:T_sum)=P_hi(2);         %开始到结束 功率
        end
    end
    for i=1:96
        Bh(r,i)=Ph(i);     %每辆车功率放入每行
    end
end
B=sum(Bh,1);         %每列求和
%%%%%寻找最大功率值,最大同时充电数量%%%%
max_P=max(B); %最大功率
Max_moun=zeros(96,1);  %每时刻最大充电数量  96行
function  P_hi=get_i(rate, P_h)
%get_i 得到充电方式及其功率

P=rand();%随机生成一个取值范围在[0-1]的数字

if 0<=P&&P<rate(1)    %充电汽车比例

    P_hi=[1,(P_h(1,1)+P_h(1,2))/2];   %选择第一种充电方式

elseif rate(1)<=P&&P<0.5


    P_hi=[2,(P_h(2,1)+P_h(2,2))/2];  %选择第二种充电方式
else


    P_hi=[3,(P_h(3,1)+P_h(3,2))/2];%选择第三种充电方式
end
while 1
    P=normrnd(12.94,11.8);
    if P<0
        continue;    %返回到while  否则  break
    end       %只是个标志 相当于括号
    break;   
end
qua=P;

三、运行结果

在这里插入图片描述

四、matlab版本及参考文献

1 matlab版本 2014a

2 参考文献 [1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016. [2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017. [3]王锋.基于蒙特卡洛模拟法的动车组裙板装配优化研究[J].中国设备工程. 2020,(06)