基于蒙特卡洛的大规模电动汽车充电行为分析(Matlab代码实现)

  💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥

📝目前更新:🌟🌟🌟电力系统相关知识,期刊论文,算法,机器学习和人工智能学习。
🚀支持:🎁🎁🎁如果觉得博主的文章还不错或者您用得到的话,可以关注一下博主,如果三连收藏支持就更好啦!这就是给予我最大的支持!

📋📋📋本文目录如下:⛳️⛳️⛳️

目录

1 概述

2 数学模型

3 运行结果

4 结论

5 参考文献

​6 Matlab代码实现


1 概述

充电计划通常由两个因素决定,充电可用性(充电情况)和充电策略[10]。由于日常电动汽车行驶的能耗低于电池额定容量,因此无需每天为电动汽车充电。只有当电池充电状态(SOC)低于阈值时,EV才能开始充电。电动汽车充电策略在评估电动汽车对电力系统的影响中起着重要作用[11],可分为(1)简单充电(哑充电),即无计划的“即插即用”模式,一般在一天的行程结束或充电设施可用时充电; (2) 资费驱动的收费,即在非高峰时段以更便宜的成本收费; (3)智能充电,即额外的电池能量可以作为能源,在高峰时段提供辅助服务,有利于电网的稳定运行。

本文讨论了电动汽车充电行为对电网负荷的影响。对电动汽车的居民出行历史数据进行分析和拟合,以预测其概率分布,从而建立出行模式模型。建立了一个综合指数最大的非线性随机规划模型来分析充电方案,并采用启发式搜索算法来优化参数配置。通过对评估标准的比较,多目标策略比单目标策略更适合于充电,即电价。此外,考虑到正常电池和充电桩的特性、用户行为和电动汽车规模,设计了蒙特卡罗模拟过程,以模拟长期的大规模电动汽车行驶行为。所得仿真结果可为分析未来电动汽车监管的能源需求增长趋势提供预测.

2 数学模型

随着全球燃油动力汽车造成的空气质量、环境和能源危机的逐渐恶化,可再生能源汽车即电动汽车(EV)被各国政府大力推广,并出台了许多与其发展相关的政策,随着技术和基础设施建设的不断提高,电动汽车将成为未来的主要交通工具。然而,电动汽车能源需求的持续增长给电网带来了沉重的压力,电网调节存在严重的不确定性[1].一般来说,一个EV连接到电网大致等于一个小家庭的负载要求,其中美国最受欢迎的电动汽车州加利福尼亚州的电网建设目前面临电网更新问题[2].电动汽车对分布式电网的影响已在[3–5],所涉及的影响因素可以概括为行驶模式,电池特性,充电计划和EV渗透率,

                  \left\{\begin{array}{c} Y=\alpha \cdot\|\mathrm{APR}\|+\beta \cdot\left\|R_{\text {save }}\right\|+\gamma \cdot\left\|R_{\text {trip }}\right\|, \\ 1.0=\alpha+\beta+\gamma, \end{array}\right.

                  \|x\|=\frac{\left(x-X_{\min }\right)}{\left(X_{\max }-X_{\min }\right)}

基于蒙特卡罗模拟的电动汽车负荷估计在确定了最优目标和关键影响因素后,电动汽车充电问题可以配置为非线性规划模型。在电动汽车电池特性和用户出行方式的约束下,可以根据供电商和电动汽车用户的不同需求建立目标函数,从而获得最优的充电方案。模型中的未确定变量,即 W i,通过 MC 模拟工具进行量化,以模拟日常 EV 行驶、充电和松弛状态。此外,还建立了出行习惯和电动汽车充电行为的统计模型,提高了MC仿真可信度。

          \begin{aligned} f(x \mid a, b) &=\frac{1}{b^{a} \Gamma(a)} x^{a-1} e^{(-x / b)}, \\ \Gamma(a) &=\int_{0}^{\infty} t^{a-1} e^{-t} d t \end{aligned}

  \begin{aligned} f(x \mid \beta, \gamma)=& \frac{1}{\sqrt{2 \pi}} \cdot\left\{\exp \left[-\frac{(\sqrt{x / \beta}-\sqrt{\beta / x})^{2}}{2 \gamma^{2}}\right]\right\} \\ & \cdot \frac{(\sqrt{x / \beta}+\sqrt{\beta / x})}{2 \gamma x}, \end{aligned}

详细数学模型及解释见第4部分。

流程图:

3 运行结果

 

 

部分代码: 

function main()
    clc; close all; clear;
    
    global all_scores
    
    %% 载入代码
    thesis = pwd;
    path(strcat(thesis, '/opt;'), path);
    path(strcat(thesis, '/opt/GA;'), path);
    path(strcat(thesis, '/opt/PSO;'), path);
    path(strcat(thesis, '/opt/SA;'), path);
    path(strcat(thesis, '/opt/scores;'), path);
    
    %% 选择优化算法: 0--directly run; 1--GA; 2--PSO; 3--SA
    alg = 3;
    nVars = 5;      %5;
    nPopSize = 1;       %debug by fei
    nIters = 3000;
    all_scores = inf*ones(nPopSize, nIters);
    
    %% 待求解最优参数值
    defaultWCoeff = ones(1, 4) * 0.25;
    defaultMinSOC = 0.2;
    
    %% MC模拟运行
    if alg == 0
        FuncFitness( [defaultWCoeff, defaultMinSOC] );
        bestWCoeff = defaultWCoeff;
        bestMinSOC = defaultMinSOC;
        
    else
        if alg == 1
            AlgFunc = @GA_MC;
        elseif alg == 2
            AlgFunc = @PSO_MC;
        elseif alg == 3
            AlgFunc = @SA_MC;
        end
        
        [bestWCoeff, bestMinSOC] = AlgFunc(@PopFunction, @FuncFitness, ...
                                        nVars, nPopSize, nIters);
    end
    
    % 保存优化结果
    save(sprintf('OPT_result_Alg(%d)_PopSize(%d)_Gens(%d).mat', ...
        alg, nPopSize, nIters), ...
        'bestWCoeff', 'bestMinSOC', 'all_scores', '-v7.3');
end


function [xPop] = PopFunction(GenomeLength,~,options)
    nPop = options.PopulationSize;
    RD = rand;
    xPop = (rand(nPop, GenomeLength) > RD);
end


function [FitVal] = FuncFitness(pop)
    % 初始参数
    nTerms = 1;
    nDaysPT = 30;   %debug by fei
    nEVs = 100;
    chargingStrategy = 4;
    isOutput = false;
    
    % 二进制序列转换成符合一定约束的数值
    [wCoeff, minSOC] = Bin2VarByConstraint(pop);
    
    % MC模拟
    [all_indices, mday_indices] = EVPowerLoad(nTerms, nDaysPT, nEVs, ...
                            chargingStrategy, wCoeff, minSOC, isOutput);
    
    % 适应度:其值越低,性能越高
    FitVal = 1 - mday_indices;
    %fprintf('----平均综合指标:Y=%f,拟合度=%f----\n', mean(all_indices), FitVal);
end



4 结论

本文研究了电动汽车的大规模充电行为,并讨论了智能充电策略。首先,建立基于实际交通数据的出行模式概率分布模型,提高预测的可信度。考虑到对电动汽车用户和电力供应商的好处,选择评估指标,包括负载峰值,充电费用和行驶速率。在EV电池特性和用户出行统计特性的约束下,开发了多目标充电策略,通过一种具有特征选择的新型约束处理方法确定参数的帕累托最优。采用蒙特卡罗工具对EV活动进行仿真,发布具有通用框架的开源系统,推动大规模EV对本地电网负荷的接入影响研究。

综上所述,采用的概率分布统计、MC仿真、评价指标、电动汽车充电模型等,可为讨论大规模电动汽车开发和电网资源分配提供替代方案。进一步的研究将研究基于MC的假期中不同电动汽车(即公共交通)的建模以及现实世界电网中的电动汽车连接模式。此外,应将更多的工作重点放在电动汽车接入分布式电网节点的统计分析上,这可以为如何在局部配电网中实现所提出的方法提供见解。

5 参考文献

6 Matlab代码实现

个人主页:@橘柑橙柠桔柚

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于蒙特卡洛抽样的电动汽车充电负荷计算matlab代码如下: 1. 首先,我们需要定义相关参数,包括电动汽车数量(N),每辆汽车的电池容量(C),每辆汽车的剩余电量(S),每辆汽车的充电速度(V),充电桩的数量(M),每个充电桩的充电速度(D)等。 2. 创建一个循环,对于每辆汽车进行充电负荷计算。 3. 在循环里,首先生成一个0到1之间的随机数,表示当前汽车需要充电的百分比(P)。假设当前剩余电量为S,需要充电的百分比为P,那么需要充电的电量为P*C*S。 4. 接下来,计算每个充电桩的充电时间。生成一个0到1之间的随机数,表示充电桩的工作负载(L)。假设充电桩的充电速度为D,充电时间为T,那么T = (P*C*S) / (L * D)。 5. 将充电时间T加入到一个数组中,表示每辆汽车的充电时间。 6. 循环结束后,计算所有充电时间的平均值,得到电动汽车充电负荷的结果。 7. 代码如下: ```matlab N = 100; % 电动汽车数量 C = 60; % 每辆汽车的电池容量 S = ones(1, N) * 0.5; % 每辆汽车的剩余电量 V = 1; % 每辆汽车的充电速度 M = 10; % 充电桩的数量 D = 2; % 每个充电桩的充电速度 charge_time = zeros(1, N); % 存储每辆汽车的充电时间 for i = 1:N P = rand(); % 当前汽车需要充电的百分比 charge_amount = P * C * S(i); % 需要充电的电量 L = rand(); % 充电桩的工作负载 T = charge_amount / (L * D); % 充电时间 charge_time(i) = T; % 存储充电时间 end average_charge_time = mean(charge_time); % 计算平均充电时间 disp(['电动汽车充电负荷的平均充电时间为:', num2str(average_charge_time)]); ``` 注意:上述代码仅为基于蒙特卡洛抽样的电动汽车充电负荷计算的一个简单示例,具体计算方式和参数设置应根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值