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

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文内容如下:🎁🎁🎁

 ⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥第一部分——内容介绍

计及需求响应的风光储燃柴微电网日前经济调度粒子群算法

摘要

本文以风、光、储、燃气轮机、柴油发电机组成的微电网为研究对象,围绕其日前经济调度问题,对基于粒子群算法(PSO)的 Matlab 实现代码进行全面解读。该代码以运行成本、环保成本、需求响应调度成本最小化及负荷波动平抑为综合目标,通过粒子群算法实现多决策变量的全局寻优,同时构建了完善的约束处理机制保障微电网运行的安全性与合理性。代码实现了微电网 24 小时调度周期内各单元出力优化、负荷调控及电网交互功率计算,并通过多维度可视化结果直观呈现优化效果,为微电网日前经济调度的工程实践与算法研究提供了可落地的代码实现参考。

关键词

微电网;日前经济调度;粒子群算法;需求响应;约束处理;Matlab 实现

一、代码整体设计思路与研究框架

本次微电网日前经济调度 Matlab 代码围绕风光储燃柴多能源协同 + 可转移负荷需求响应的核心架构设计,整体遵循 “参数设置 - 粒子群算法初始化 - 约束处理 - 适应度计算 - 算法迭代寻优 - 结果输出与可视化” 的技术路线,实现了从模型构建到仿真分析的全流程闭环。

代码的核心研究目标并非单一的成本最小化,而是构建了多目标综合优化体系:既涵盖微电网运行过程中的经济成本(大电网交互成本、各发电单元运行成本、需求响应补偿成本)、环保成本(柴油发电机、燃气轮机碳排放治理成本),又考虑了电力系统运行的稳定性(可转移负荷调控后的负荷波动平抑)。决策变量聚焦于 24 小时调度周期内蓄电池充放电功率、微型燃气轮机发电功率、柴油发电机发电功率、可转移负荷功率四大核心变量,通过粒子群算法的全局搜索能力寻找最优解,并依托自定义约束处理函数保障各设备运行边界、蓄电池荷电状态、可转移负荷总量等关键约束满足微电网实际运行要求。

代码整体采用模块化设计,将主程序与功能函数分离,主程序负责参数初始化、算法调用与结果输出,同时自定义ConstraintsHandling(约束处理)、Fitness(适应度计算)、PSO(粒子群算法核心)三个功能函数,且通过Data模块独立存储负荷、风光出力、电价等基础数据,提升了代码的可读性、可修改性与拓展性,便于后续针对不同微电网场景进行参数调整与算法改进。

二、主程序模块解读

主程序作为整个调度仿真的核心控制单元,承担了模型参数定义、算法参数设置、粒子边界初始化、算法调用、结果计算与可视化的全部功能,是连接各功能模块与数据模块的枢纽,其运行逻辑决定了整个仿真的流程与方向。

(一)模型基础参数设置

该部分为微电网各设备与负荷的运行边界参数定义,是微电网调度的物理基础,所有参数均结合工程实际设定,确保仿真结果的合理性。其中,储能单元核心参数包括蓄电池容量 680kW・h、充放电最大功率 ±200kW,荷电状态(SOC)初始值 0.5、最小值 0.2、最大值 0.9,严格限制蓄电池充放电深度,避免过充过放影响设备寿命;发电单元参数涵盖微型燃气轮机(0~300kW)、柴油发电机(0~500kW)的出力上下限,匹配小型微电网的发电容量需求;负荷单元明确可转移负荷的调控边界为 0~500kW,为需求响应实施划定范围。同时,代码将各设备出力上下限整合为PmaxPmin数组,便于后续粒子边界的批量初始化。

(二)粒子群算法参数与粒子边界初始化

粒子群算法的核心运行参数直接影响寻优效果与效率,代码设置最大迭代次数 5000 次,保障算法有足够的搜索空间找到全局最优解;同时构建维度为4×24的粒子位置矩阵,对应 4 个决策变量在 24 小时调度周期内的每小时取值,通过循环将各设备的出力上下限映射为粒子位置的上下边界(BoundUpBoundLow),确保粒子初始位置与迭代过程中的位置更新均在物理可行域内,从源头减少无效搜索。

(三)粒子群算法核心调用

代码通过[BestTrace,BestPos,BestFit]=PSO(...)调用自定义粒子群算法函数,将模型参数(蓄电池容量、荷电状态约束)、算法参数(迭代次数、粒子边界)、基础数据(负荷、风光出力、电价)全部传入函数,实现算法与微电网调度模型的深度耦合。该步骤是整个仿真的核心计算环节,算法将完成数万次的粒子位置更新、约束处理与适应度计算,最终输出三个核心结果:BestTrace为迭代过程中全局最优适应度值变化曲线、BestPos为 24 小时最优决策变量取值矩阵、BestFit为全局最优综合成本值。

(四)优化结果计算与输出

算法寻优完成后,主程序首先基于功率平衡原理计算大电网交互功率,即大电网交互功率 =-(风电出力 + 光伏出力 + 蓄电池出力 + 燃气轮机出力 + 柴油发电机出力)-(基础负荷 + 可转移负荷优化值),正负值分别代表微电网从大电网购电与向大电网售电,是微电网与主网能量交互的核心指标。

随后调用Fitness函数计算并输出综合成本及各分项成本,包括负荷波动与运行成本总和、运行成本、环保成本、需求响应调度成本,同时逐行输出 24 小时内蓄电池充放电功率、燃气轮机出力、柴油发电机出力、可转移负荷功率、大电网交互功率的最优值,为微电网调度方案的定量分析提供精准数据支撑。

(五)多维度结果可视化

为直观呈现优化效果,代码设计了8 类专业可视化图表,覆盖负荷、各发电单元、储能单元、电网交互、算法迭代等全维度:一是优化前后总负荷对比曲线,直接体现可转移负荷调控的 “削峰填谷” 效果;二是各能源单元出力及电网交互功率曲线,展示多能源协同调度的运行特性;三是蓄电池充放电、电网购售电的堆叠柱状图,清晰呈现各时段能量流动方向;四是粒子群算法迭代曲线,反映算法的收敛特性;五是蓄电池出力、原始总负荷、基础负荷、可转移负荷、风电出力、光伏出力的单独柱状图,便于对各单元运行状态进行精细化分析。可视化模块将抽象的数值优化结果转化为直观的图形,为调度方案的定性分析与工程决策提供依据。

三、约束处理函数(ConstraintsHandling)解读

约束处理是微电网优化调度的关键环节,直接决定优化结果的物理可行性,ConstraintsHandling函数作为自定义核心功能模块,实现了对设备出力边界、蓄电池荷电状态、可转移负荷总量三大类约束的分层处理与迭代修复,确保粒子群算法搜索到的解始终满足微电网实际运行要求,避免出现 “数值最优但工程不可行” 的问题。

(一)设备出力边界硬约束处理

函数首先从粒子位置矩阵中提取各决策变量(蓄电池、燃气轮机、柴油发电机、可转移负荷)的 24 小时出力值,对每一时段的出力进行边界校验与修正:若某设备出力超出设定的上下限,则直接将其修正为边界值。该处理为硬约束,是微电网设备安全运行的基本要求,确保各发电单元与负荷调控单元不会出现过载、超调等运行故障。

(二)蓄电池荷电状态(SOC)动态约束处理

蓄电池作为微电网的核心储能单元,其荷电状态的动态变化直接影响系统调峰填谷能力与设备寿命,函数构建了时序化的 SOC 动态计算与修正机制,实现了从初始时刻到 24 小时末的全周期约束。

具体而言,函数首先计算每一时段蓄电池充放电功率引起的电量变化量,从初始 SOC(0.5)开始,逐时段计算当前 SOC 值:若计算得到的 SOC 低于最小值 0.2 或高于最大值 0.9,则将 SOC 修正为边界值,并反向推算该时段蓄电池的可行充放电功率,确保修正后的功率既能满足 SOC 约束,又能尽量贴近粒子群算法搜索的最优值。同时,函数会对修正后的蓄电池出力再次进行边界校验,若仍超出充放电功率上下限,则判定该解不可行,终止后续处理,从根本上保障蓄电池运行的安全性与合理性。

(三)可转移负荷总量守恒约束处理

可转移负荷是需求响应的核心资源,本次调度采用总量守恒的调控原则,即 24 小时可转移负荷的总功率保持不变,仅在时段间进行转移,避免因负荷总量变化影响用户用电需求。函数首先计算原始可转移负荷总量与当前优化值的差值,随后通过随机迭代调节的方式对差值进行修正:随机选取某一时段的可转移负荷功率进行调整,若调整后该时段功率超出边界,则将其固定为边界值并从待调节时段中剔除,重复该过程直至负荷总量差值为 0 或无待调节时段,既满足总量守恒约束,又最大限度保留了算法的优化结果,兼顾了约束满足性与解的最优性。

(四)约束处理结果反馈

函数最终输出可行性标识修正后的粒子位置矩阵:若所有约束均满足,则可行性标识为 1,返回修正后的决策变量值;若存在约束无法满足(如蓄电池出力修正后仍超边界),则可行性标识为 0,为后续适应度计算提供判据,确保不可行解不会参与算法的迭代寻优。

四、适应度函数(Fitness)解读

适应度函数是粒子群算法的寻优依据,其设计直接决定优化目标的实现效果,Fitness函数围绕微电网日前经济调度的多目标综合优化要求,构建了 “经济成本 + 环保成本 + 需求响应成本 + 负荷波动成本” 的四维适应度计算体系,通过将多目标转化为单目标综合成本,实现了多维度优化目标的协同寻优,同时兼顾了计算的简洁性与目标的全面性。

(一)运行成本计算

运行成本是微电网经济调度的核心目标,涵盖了微电网运行过程中的所有直接经济支出与收益,函数按照各单元 24 小时出力 × 对应时段单价的原则计算,具体包括大电网交互成本(购电支出 / 售电收益)、风电运行成本、光伏运行成本、蓄电池充放电成本、燃气轮机燃料成本、柴油发电机燃料成本。各单元的价格参数由Data模块提供,且电价采用分时电价机制,不同时段的电网购售电价、各发电单元成本存在差异,契合电力市场的实际运行情况,确保运行成本计算的精准性。

(二)环保成本计算

为响应 “双碳” 目标,代码将环保成本纳入优化目标,重点考虑传统化石能源发电的碳排放治理成本,函数采用单位出力固定环保成本系数的计算方式,即环保成本 = 0.066× 柴油发电机总出力 + 0.033× 燃气轮机总出力,柴油发电机的环保成本系数高于燃气轮机,体现了不同化石能源的碳排放强度差异,引导算法尽量减少柴油发电机的出力,实现经济调度与低碳运行的协同。

(三)需求响应调度成本计算

需求响应调度成本为微电网对用户可转移负荷调控的补偿成本,函数首先计算每一时段可转移负荷的削减量(原始值 - 优化值,若为负则取 0,即仅对负荷削减进行补偿,负荷转移不额外补偿),随后乘以对应时段的补偿价格,求和得到 24 小时总需求响应调度成本,既保障了用户的经济利益,又为微电网需求响应实施提供了成本依据。

(四)负荷波动成本计算

负荷波动是影响微电网运行稳定性的重要因素,函数将负荷波动量化为成本项,通过计算优化后总负荷与原始总负荷均值的方差之和来表征负荷波动程度,方差越大则负荷波动成本越高,引导算法在优化过程中尽量平抑负荷波动,实现 “削峰填谷”,提升微电网运行的稳定性。该设计将系统稳定性目标转化为可计算的数值指标,融入粒子群算法的寻优过程,实现了经济成本与运行稳定性的多目标协同。

(五)综合适应度值输出

函数最终将运行成本、环保成本、需求响应成本、负荷波动成本求和,得到综合适应度值,同时输出各分项成本值。在粒子群算法中,综合适应度值越小,代表该解的综合性能越优,算法通过不断搜索最小适应度值,实现微电网多目标综合优化的调度目标。

五、粒子群算法函数(PSO)解读

PSO函数是本次微电网调度优化的核心计算模块,实现了标准粒子群算法的全流程设计,并结合微电网优化调度的特点进行了针对性改进,包括粒子初始化约束校验、迭代过程中的实时约束处理、惯性权重线性递减等,确保算法的寻优效率与寻优精度,能够在复杂的 4×24 维决策空间中找到全局最优解。

(一)算法核心参数设置

函数首先设置粒子群算法的核心运行参数,包括粒子数量 100 个(兼顾寻优效率与搜索空间)、惯性权重初始值 0.9、最小值 0.4、个体学习因子与社会学习因子均为 2.03、粒子最大 / 最小速度为 ±10。其中,惯性权重线性递减机制是算法的关键改进点:惯性权重从 0.9 随迭代次数线性下降至 0.4,前期大惯性权重增强算法的全局搜索能力,避免陷入局部最优,后期小惯性权重提升算法的局部搜索精度,加快算法收敛,平衡了算法的全局搜索与局部寻优能力。

(二)粒子群初始化与可行解筛选

粒子群初始化采用随机初始化方式,在粒子边界内随机生成 100 个粒子的初始位置,对应 100 组初始调度方案。与标准粒子群算法不同的是,本次初始化并非简单生成随机值,而是结合微电网调度的约束要求,对每个初始粒子进行实时约束处理:将粒子位置重塑为 24×4 的决策变量矩阵,调用ConstraintsHandling函数进行约束校验与修正,随后计算大电网交互功率,并根据约束处理的可行性标识筛选可行解 —— 仅可行解计算适应度值,不可行解的适应度值设为无穷大,确保初始粒子群均为物理可行的调度方案,减少算法的无效迭代。

同时,函数初始化粒子的速度为 0,并将初始粒子的位置、适应度值作为个体最优解,从个体最优解中筛选出适应度值最小的解作为全局最优解,为算法迭代奠定基础。

(三)算法迭代寻优过程

算法的迭代寻优是核心计算环节,在 5000 次迭代内完成粒子速度与位置的不断更新,直至找到全局最优解,每一次迭代均遵循 “速度更新 - 位置更新 - 约束处理 - 适应度计算 - 最优解更新” 的逻辑:

  1. 粒子速度更新:按照标准粒子群算法的速度更新公式,结合当前惯性权重、个体学习因子、社会学习因子,以及个体最优解与全局最优解的位置,更新每个粒子的速度,并对速度进行边界校验,避免速度过大导致粒子跳出可行域;
  2. 粒子位置更新:根据更新后的速度调整粒子位置,得到新的调度方案;
  3. 实时约束处理:对更新后的粒子位置再次调用ConstraintsHandling函数进行约束校验与修正,确保新位置仍满足微电网运行约束;
  4. 适应度计算:对修正后的可行解计算综合适应度值,不可行解仍设为无穷大;
  5. 最优解更新:若当前粒子的适应度值优于其个体最优解,则更新个体最优解;若所有粒子的个体最优解中出现优于全局最优解的解,则更新全局最优解;
  6. 惯性权重更新:若当前惯性权重大于最小值 0.4,则按照线性递减机制降低惯性权重,为下一次迭代做准备。

整个迭代过程中,算法通过个体最优解与全局最优解的信息共享,引导粒子群不断向最优解方向移动,同时通过实时约束处理与可行解筛选,确保所有参与迭代的解均为物理可行的调度方案。

(四)算法结果输出

当算法完成 5000 次迭代后,函数输出三大核心结果:一是BestTrace,即每次迭代的全局最优适应度值,反映算法的收敛过程;二是BestPos,即全局最优解对应的粒子位置,重塑为 24×4 的矩阵后,即为 24 小时调度周期内蓄电池、燃气轮机、柴油发电机、可转移负荷的最优出力方案;三是BestFit,即全局最优综合适应度值,代表微电网多目标综合优化的最小综合成本。

六、数据模块(Data)解读

数据模块是整个仿真的基础支撑,独立存储了微电网日前经济调度所需的所有基础数据,包括 24 小时基础负荷与可转移负荷数据、风电出力预测数据、光伏出力预测数据、分时价格数据,所有数据均为逐时段数值,契合日前经济调度 “基于预测数据制定次日调度方案” 的实际需求,数据的合理性直接决定仿真结果的可信度。

(一)负荷数据

负荷数据分为基础负荷可转移负荷两部分,合计为原始总负荷。基础负荷为不可调控负荷,是微电网必须满足的基本用电需求,其数值呈现出明显的 “峰谷特性”:夜间 0~8 时为负荷谷段,白天 9~22 时为负荷峰段,契合居民或工商业负荷的用电规律;可转移负荷为需求响应的调控资源,前 8 小时数值为 100kW,后 16 小时数值为 300kW,为算法提供了明确的负荷调控空间。

(二)风光出力预测数据

风电与光伏出力数据为日前预测值,体现了可再生能源的出力特性:光伏出力仅在白天 9~20 时存在,呈现 “先增后减” 的抛物线特性,正午 12~16 时为出力高峰,夜间无出力,符合太阳能的辐射规律;风电出力全天均有分布,整体波动较小,夜间 0~8 时与傍晚 18~24 时出力相对较高,白天 9~17 时出力略有下降,体现了风能的随机性与波动性,但波动幅度控制在合理范围内,符合短期风电预测的精度要求。

(三)分时价格数据

价格数据是微电网经济调度的重要导向,涵盖了大电网分时电价、各发电单元单位运行成本、可转移负荷补偿价格,共 7 类价格指标,且价格随时段变化呈现峰谷平三段式特性:夜间 0~8 时为电价谷段,大电网购电价 0.225 元 /kWh,无补偿价格;白天 9~11 时、17~19 时为电价平段,大电网购电价 0.55 元 /kWh,补偿价格 0.1 元 /kWh;中午 12~16 时、夜间 20~22 时为电价峰段,大电网购电价 0.8 元 /kWh,补偿价格 0.2 元 /kWh。分时电价机制引导算法在电价谷段增加大电网购电与蓄电池充电,在电价峰段减少大电网购电、增加蓄电池放电与可转移负荷调控,实现经济成本最小化。

七、代码的特色与工程价值

(一)代码特色

  1. 多目标协同优化:突破了单一成本最小化的优化思路,构建了 “经济 + 环保 + 稳定 + 需求响应” 的四维综合优化目标,契合当前微电网低碳、经济、稳定运行的发展要求;
  2. 全流程约束处理:实现了从粒子初始化到迭代更新的全周期实时约束处理,涵盖设备出力、SOC 动态、负荷总量三大类约束,确保优化结果的物理可行性;
  3. 算法针对性改进:对标准粒子群算法进行惯性权重线性递减、可行解提前筛选等改进,平衡了算法的全局搜索与局部寻优能力,提升了寻优效率与精度;
  4. 模块化与可视化:采用模块化设计,主程序与功能函数分离,便于修改与拓展;同时设计了多维度可视化图表,实现了优化结果的直观呈现;
  5. 贴合工程实际:所有参数、数据均结合微电网工程实际设定,采用分时电价、风光出力预测、可转移负荷总量守恒等实际运行规则,仿真结果具有较强的工程参考性。

(二)工程价值

  1. 实践指导价值:代码实现了风光储燃柴微电网日前经济调度的全流程仿真,输出的 24 小时各单元最优出力方案、电网交互策略、成本分析结果,可为微电网调度运行人员提供直接的决策参考,助力工程实践;
  2. 算法研究价值:代码构建了标准化的粒子群算法微电网调度实现框架,可作为算法改进的基础平台,后续可在此基础上融入遗传算法、灰狼优化算法等其他智能算法,或增加新能源出力不确定性、多场景调度等研究内容;
  3. 教学参考价值:代码清晰呈现了粒子群算法在微电网优化调度中的应用流程,涵盖了约束处理、适应度设计、算法迭代等核心知识点,可为电力系统及其自动化专业的本科生、研究生提供优质的 Matlab 教学案例,助力理论知识与工程实践的结合。

八、代码的可拓展方向

本次 Matlab 代码为微电网日前经济调度提供了基础实现框架,结合当前微电网的发展趋势与研究热点,可从以下方面进行拓展与改进,进一步提升代码的适用性与研究深度:

  1. 新能源出力不确定性考虑:当前代码采用确定的风光出力预测数据,后续可引入风光出力的概率分布模型(如正态分布、威布尔分布),构建含不确定性的鲁棒调度或随机调度模型;
  2. 多类型需求响应资源整合:当前代码仅考虑可转移负荷,后续可加入可削减负荷、可平移负荷等多类型需求响应资源,构建更全面的需求响应调度体系;
  3. 智能算法改进与融合:可对粒子群算法进行改进(如引入混沌初始化、自适应惯性权重),或与遗传算法、模拟退火算法等融合构建混合算法,提升算法的寻优性能;
  4. 多微电网协同调度:当前代码针对单微电网调度,后续可拓展为多微电网互联场景,考虑微电网之间的能量交互,实现区域微电网的协同优化;
  5. 设备寿命与维护成本考虑:当前代码未考虑蓄电池、发电机等设备的寿命损耗与维护成本,后续可引入设备寿命模型,将寿命损耗成本纳入优化目标,实现全生命周期成本最小化;
  6. 多时间尺度调度结合:将日前经济调度与日内滚动调度、实时调度结合,构建多时间尺度的梯级调度模型,提升调度方案对实际运行的适应性。

九、结论

本次风、光、储、燃气、柴油微电网日前经济调度 Matlab 代码,基于粒子群算法构建了多目标、多约束、模块化的仿真实现框架,完整实现了从参数设置、算法迭代、约束处理到结果输出与可视化的全流程调度仿真。代码的核心优势在于将微电网工程实际约束与智能算法深度耦合,实现了经济成本、环保成本、需求响应成本与运行稳定性的多目标协同优化,输出的优化结果既具有数值最优性,又具有物理可行性。

通过对代码各模块的详细解读,明确了每一部分的设计思路、运行逻辑与功能价值,展现了代码在微电网日前经济调度工程实践、智能算法研究、电力专业教学等方面的重要价值。同时,代码的模块化设计为后续的拓展与改进提供了便利,可结合新能源出力不确定性、多类型需求响应、多微电网协同等研究热点进行优化,进一步提升代码的研究深度与工程适用性,为微电网的经济、低碳、稳定运行提供更全面的技术支撑。

📚第二部分——运行结果

文档:

部分代码:

%风、光、储、燃气、柴油微电网日前经济调度

%目标:运行成本、环保成本、调度成本

clc;clear;close all;

%参数设置

%模型参数

Qbattery=680;%kw.h

%决策变量;Pbattery,Pwt,Pdg,Pl(可转移负荷)

Pbatterymax=200;%电池最大功率限制

Pbatterymin=-200;%电池最小功率限制

Pwtmax=300;%微型蒸汽轮机最大功率限制

Pwtmin=0;%微型蒸汽轮机最小功率限制

Pdgmax=500;%柴油发电机组最大限制

Pdgmin=0;

Plmax=500;%可转移负荷最大限制

Plmin=0;

%%

SOCstart=0.5;%蓄电池起始荷电状态

SOCmin=0.2;%蓄电池荷电状态最小限制

SOCmax=0.9;%蓄电池荷电状态最大限制

Pmax=[Pbatterymax,Pwtmax,Pdgmax,Plmax];

Pmin=[Pbatterymin,Pwtmin,Pdgmin,Plmin];

%粒子群算法参数

MaxItr=5000;%迭代次数

%初始化

BoundUp=zeros(1,4*24);

BoundLow=zeros(1,4*24);

Data;

for i=1:4

BoundUp((i-1)*24+1:i*24)=Pmax(i);

BoundLow((i-1)*24+1:i*24)=Pmin(i);

end

%粒子群优化

[BestTrace,BestPos,BestFit]=PSO(MaxItr,Qbattery,BoundUp,BoundLow,SOCstart,SOCmin,SOCmax,PL,Pwind,Prices,Ppv);

%输出数据以及图

%数据

%成本,运行成本,环保成本

Pgrid=-(Pwind+Ppv+BestPos(:,1)+BestPos(:,2)+BestPos(:,3)-(PL(:,1)+BestPos(:,4)));

[f,f1,f2,f3]=Fitness(Pgrid,Pwind,Ppv,BestPos,PL,Prices);

disp('负荷波动与运行成本总和');

f%

disp('运行成本');

f1%运行成本

disp('环保成本');

f2%环保成本

% disp('优化前后可控负荷变化')

% dQ=PL(:,2)-BestPos(:,4);

% dQ

disp('需求响应成本');

f3%需求响应成本(或者称之为可调度负荷调度成本)

%最优解

disp('===========蓄电池充放电功率==============');

BestPos(:,1)%蓄电池充放电功率

disp('===========微型蒸汽轮机发电功率=============');

BestPos(:,2)%微型蒸汽轮机发电功率

disp('=============柴油发电机=============');

BestPos(:,3)%柴油发电功率

disp('============可转移负荷功率==============');

BestPos(:,4)%可转移负荷

disp('大电网交互功率');

Pgrid%可转移负荷

%图

%负荷优化前后曲线(不一定平滑,因为价格除非各种价格设定的合理)

PLorgin=PL(:,1)+PL(:,2);

PLopt=PL(:,1)+BestPos(:,4);

figure

plot(PLorgin,'c--','LineWidth',1.5);

hold on

plot(PLopt,'m->','LineWidth',1.5);

legend('优化前负荷','优化后负荷');

xlabel('时刻(h)');

ylabel('功率(KW)');

% %优化前后可转移负荷

% figure

% plot(PL(:,2));

% hold on

% plot(BestPos(:,4));

% legend('优化前负荷','优化后负荷');

% xlabel('时刻(h)');

% ylabel('功率(KW)');

%各种能源输出功率

figure

plot(BestPos(:,1),'LineWidth',2);%折线

hold on;

plot(BestPos(:,2),'LineWidth',2);%折线

hold on;

plot(BestPos(:,3),'LineWidth',2);%折线

hold on;

plot(Pgrid,'LineWidth',2);%折线

hold on;

xlabel('时刻(h)');

ylabel('功率(KW)');

legend('蓄电池','微型燃气轮机','柴油发电机','大电网交互功率');

figure;

cnf=min([BestPos(:,1),zeros(24,1)]');

cnz=max([BestPos(:,1),zeros(24,1)]');

pjhf=min([Pgrid,zeros(24,1)]');

pjhz=max([Pgrid,zeros(24,1)]');

bar(cnf','m');

hold on

bar(pjhf','c');

yy=[cnz',BestPos(:,2),BestPos(:,3),pjhf'];

bar(yy,'stack');

xlabel('时刻(h)');

ylabel('功率(KW)');

legend('蓄电池充电','向电网售电','蓄电池放电','微型燃气轮机','柴油发电机','从电网购电');

%迭代曲线

figure

plot(BestTrace,'k');

ylabel('总成本(元)');

xlabel('迭代次数');

%蓄电池

figure

% plot(BestPos(:,1),'LineWidth',2);%折线

bar(BestPos(:,1),'y');%柱状图

ylabel('蓄电池输出功率(KW)');

xlabel('时刻(h)');

%原始负荷

figure

bar(PL(:,1)+PL(:,2),'g');%柱状图

ylabel('原始负荷(KW)');

xlabel('时刻(h)');

%原始基础负荷

figure

bar(PL(:,1),'r');%柱状图

ylabel('原始基础负荷(KW)');

xlabel('时刻(h)');

%原始可调度负荷

figure

bar(PL(:,2),'k');%柱状图

ylabel('原始可调度负荷(KW)');

xlabel('时刻(h)');

%风电

figure

bar(Pwind,'c');%柱状图

ylabel('风电预测功率(KW)');

xlabel('时刻(h)');

figure

bar(Ppv,'m');%柱状图

ylabel('光电预测功率(KW)');

xlabel('时刻(h)');

🎉第三部分——参考文献 

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)

🌈第四部分——本文完整资源下载

资料获取,更多粉丝福利,MATLAB|Simulink|Python|数据|文档等完整资源获取

                                                           在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐