• 基于蒙特卡洛的大规模电动汽车充电行为分析(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 运行结果

     

     

    部分代码: 

    1. function main()
    2. clc; close all; clear;
    3. global all_scores
    4. %% 载入代码
    5. thesis = pwd;
    6. path(strcat(thesis, '/opt;'), path);
    7. path(strcat(thesis, '/opt/GA;'), path);
    8. path(strcat(thesis, '/opt/PSO;'), path);
    9. path(strcat(thesis, '/opt/SA;'), path);
    10. path(strcat(thesis, '/opt/scores;'), path);
    11. %% 选择优化算法: 0--directly run; 1--GA; 2--PSO; 3--SA
    12. alg = 3;
    13. nVars = 5; %5;
    14. nPopSize = 1; %debug by fei
    15. nIters = 3000;
    16. all_scores = inf*ones(nPopSize, nIters);
    17. %% 待求解最优参数值
    18. defaultWCoeff = ones(1, 4) * 0.25;
    19. defaultMinSOC = 0.2;
    20. %% MC模拟运行
    21. if alg == 0
    22. FuncFitness( [defaultWCoeff, defaultMinSOC] );
    23. bestWCoeff = defaultWCoeff;
    24. bestMinSOC = defaultMinSOC;
    25. else
    26. if alg == 1
    27. AlgFunc = @GA_MC;
    28. elseif alg == 2
    29. AlgFunc = @PSO_MC;
    30. elseif alg == 3
    31. AlgFunc = @SA_MC;
    32. end
    33. [bestWCoeff, bestMinSOC] = AlgFunc(@PopFunction, @FuncFitness, ...
    34. nVars, nPopSize, nIters);
    35. end
    36. % 保存优化结果
    37. save(sprintf('OPT_result_Alg(%d)_PopSize(%d)_Gens(%d).mat', ...
    38. alg, nPopSize, nIters), ...
    39. 'bestWCoeff', 'bestMinSOC', 'all_scores', '-v7.3');
    40. end
    41. function [xPop] = PopFunction(GenomeLength,~,options)
    42. nPop = options.PopulationSize;
    43. RD = rand;
    44. xPop = (rand(nPop, GenomeLength) > RD);
    45. end
    46. function [FitVal] = FuncFitness(pop)
    47. % 初始参数
    48. nTerms = 1;
    49. nDaysPT = 30; %debug by fei
    50. nEVs = 100;
    51. chargingStrategy = 4;
    52. isOutput = false;
    53. % 二进制序列转换成符合一定约束的数值
    54. [wCoeff, minSOC] = Bin2VarByConstraint(pop);
    55. % MC模拟
    56. [all_indices, mday_indices] = EVPowerLoad(nTerms, nDaysPT, nEVs, ...
    57. chargingStrategy, wCoeff, minSOC, isOutput);
    58. % 适应度:其值越低,性能越高
    59. FitVal = 1 - mday_indices;
    60. %fprintf('----平均综合指标:Y=%f,拟合度=%f----\n', mean(all_indices), FitVal);
    61. end

    4 结论

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

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

    5 参考文献

    6 Matlab代码实现

    博客主页:电气辅导帮

  • 相关阅读:
    Redis -- 基础知识2
    LangChain-v0.2 构建聊天机器人
    回溯框架总结
    换个姿势做运维!GOPS 2022 · 深圳站精彩内容抢先看
    新手教师如何迅速成长
    uni.app 使用 mixins 技术统一注入小程序页面分享到好友,分享朋友圈功能
    Kafka的消息存储机制
    SpringBoot2.0---------------1、Spring与SpringBoot
    使用BASE64实现编码和解码
    力扣739:每日温度 (Java多种方法)
  • 原文地址:https://blog.csdn.net/2201_75454341/article/details/128096652