互动环境下分布式电源与电动汽车充电站的优化配置方法研究-全文复现matlab

简介: 互动环境下分布式电源与电动汽车充电站的优化配置方法研究-全文复现matlab

一、主要内容

本程序包含论文二、三、四、五共五章算例内容,每章内容如下:

第二章的主要研究内容为计及光伏电站快速无功响应特性的分布式电源优化配置方法。考虑越来越多的敏感负荷接入配电系统,以及 PV-STATCOM 这一将光伏逆变器用作 STATCOM 以提供快速无功响应功能的新技术,本章提出了一类加权电压支撑能力指标以量化光伏电站在紧急状态下对敏感负荷节点电压恢复效率的影响,并将其嵌入到分布式电源优化配置模型中。对应的算例结果表明,基于这一改进模型得到的分布式电源配置方案可以有效提高瞬时故障后重要电力节点的电压恢复效率,减少电压暂降等电能质量问题给敏感负荷带来的损失。

 

第三章的主要研究内容为含多类型充电桩的电动汽车充电站优化配置方法。随着电动汽车快充技术的发展,越来越多的不同类型不同功率的充电设施接入了配电系统。这些充电设施在满足电动汽车车主多样化的充电需求的同时,也改变了电动汽车负荷的时空分布情况,从而给电动汽车充电站的优化配置带来了新的挑战。基于这一新趋势,本章提出了一种含多类型充电桩的电动汽车充电站优化配置模型,及其相应的简化处理方法,并分析了同时配置多种功率充电桩所带来的经济效益。

第四章的主要研究内容为考虑充电负荷空间可调度特性的分布式电源与电动汽车充电站联合配置方法。随着手机、平板电脑等移动智能终端的普及,以及无线通讯技术的发展,越来越多的汽车车主依赖于实时导航技术决定自己的驾驶及泊车行为。对电动汽车而言,泊车地点在很大程度上决定了其充电行为的发生处所,即对应的充电负荷的接入位置。基于这一背景,本章认为实时导航技术的普及使得电动汽车负荷在一定程度上、一定空间范围内是可调度的,并建立了相应的分布式电源与电动汽车充电站联合配置模型,分析了这种空间可调度特性对分布式电源与电动汽车充电站配置方案的影响。

第五章的主要研究内容为单向/双向 V2G 环境下分布式电源与电动汽车充电站联合配置方法。V2G 技术的发展使得电动汽车负荷成为一类可控的资源,能够为电网运行提供峰荷转移、电压调节、旋转备用等诸多类型的辅助服务。这一技术的出现,大大增加了电动汽车与电网间的互动频率及互动深度,对传统的分布式电源与电动汽车充电站优化配置方法形成了挑战。基于这一背景,本章提出了单向/双向 V2G 环境下分布式电源与电动汽车充电站联合配置模型,分别分析了无序充电模式、单向 V2G 模式、双向 V2G模式对分布式电源与电动汽车充电站配置方案的影响。

二、部分代码

%构建负荷矩阵
for i=1:nb
   if sty_jd(i)==1
       pload(i,1:T)=P1(i).*pc_jm_w;%春 工作日
       pload(i,T+1:2*T)=P1(i).*pc_jm_wd;%春 周末
       pload(i,2*T+1:3*T)=P1(i).*px_jm_w;%夏 工作日
       pload(i,3*T+1:4*T)=P1(i).*px_jm_wd;%夏 周末
       pload(i,4*T+1:5*T)=P1(i).*pq_jm_w;%秋 工作日
       pload(i,5*T+1:6*T)=P1(i).*pq_jm_wd;%秋 周末
       pload(i,6*T+1:7*T)=P1(i).*pd_jm_w;%冬 工作日
       pload(i,7*T+1:8*T)=P1(i).*pd_jm_wd;%冬 周末
   elseif sty_jd(i)==2
       pload(i,1:T)=P1(i).*pc_sc_w;%春 工作日
       pload(i,T+1:2*T)=P1(i).*pc_sc_wd;%春 周末
       pload(i,2*T+1:3*T)=P1(i).*px_sc_w;%夏 工作日
       pload(i,3*T+1:4*T)=P1(i).*px_sc_wd;%夏 周末
       pload(i,4*T+1:5*T)=P1(i).*pq_sc_w;%秋 工作日
       pload(i,5*T+1:6*T)=P1(i).*pq_sc_wd;%秋 周末
       pload(i,6*T+1:7*T)=P1(i).*pd_sc_w;%冬 工作日
       pload(i,7*T+1:8*T)=P1(i).*pd_sc_wd;%冬 周末
   else
       pload(i,1:T)=P1(i).*pc_bg_w;%春 工作日
       pload(i,T+1:2*T)=P1(i).*pc_bg_wd;%春 周末
       pload(i,2*T+1:3*T)=P1(i).*px_bg_w;%夏 工作日
       pload(i,3*T+1:4*T)=P1(i).*px_bg_wd;%夏 周末
       pload(i,4*T+1:5*T)=P1(i).*pq_bg_w;%秋 工作日
       pload(i,5*T+1:6*T)=P1(i).*pq_bg_wd;%秋 周末
       pload(i,6*T+1:7*T)=P1(i).*pd_bg_w;%冬 工作日
       pload(i,7*T+1:8*T)=P1(i).*pd_bg_wd;%冬 周末
   end
end
qload=repmat(Q1,1,8*T);
num_w=[];num_wd=[];
for i=1:nb%分别计算工作日和周末时序停车数量
    if sty_jd(i)==1
    num_w(i,:)=round(num_peak(i).*arr_jm_w./max(arr_jm_w));
    num_wd(i,:)=round(num_peak(i).*arr_jm_wd./max(arr_jm_wd));
    %停车时长分布,样本数量不足,没法用停车时长概率曲线来计算,随机产生停车时长
    elseif sty_jd(i)==2
    num_w(i,:)=round(num_peak(i).*arr_sc_w./max(arr_sc_w));
    num_wd(i,:)=round(num_peak(i).*arr_sc_wd./max(arr_sc_wd));
    else
    num_w(i,:)=round(num_peak(i).*arr_bg_w./max(arr_bg_w));
    num_wd(i,:)=round(num_peak(i).*arr_bg_wd./max(arr_bg_wd));
    end
end
%建立节点电动汽车矩阵
sum_num_w=sum(num_w);
sum_num_wd=sum(num_wd);
max_num=max(sum_num_w,sum_num_wd);
% k=1;
% for t=1:T
%     k1=1;
%     for i=1:nb
%         if stay_time_w(i,t)~=0%计算每个电动汽车的充电时长
%             for y=1:stay_time_w(i,t)
%                 st(k1,t)=t*0.25;
%             end
%             k1=k1+1;
%         end
%     end
% end
k=1;
for t=1:T
    for i=1:nb
    if num_w(i,t)~=0
       for jj=1:num_w(i,t)
           soc=rand;%(0,1)均匀分布
           st(k)=round(1+95*rand)*0.25;%充电时长
            if soc<0.9
                linf=find(distance(i,:)==min(distance(i,:)));
        evjd_w(k,:)=[t,i,soc,linf(1),min(st(k),prl*(1-soc)/pev),sty_jd(i),min(distance(i,:))];%时间,节点,soc,充电节点,充电时长,节点区域类型,调度距离
                k=k+1;
            end
%             if gdch(i)~=0
%                 evjd_w(k,4)=gdch(i);
%             end
 
 
        end
    end
    end
end
%周末情况
 k=1;
for t=1:T
    for i=1:nb
    if num_w(i,t)~=0
       for jj=1:num_w(i,t)
           soc=rand;
           st(k)=round(1+95*rand)*0.25;%充电时长
            if soc<0.9
                linf=find(distance(i,:)==min(distance(i,:)));
        evjd_wd(k,:)=[t,i,soc,linf(1),min(st(k),prl*(1-soc)/pev),sty_jd(i),min(distance(i,:))];%时间,节点,soc,充电节点,充电时长,节点区域类型,调度距离
                k=k+1;
            end
%             if gdch(i)~=0
%                 evjd_wd(k,4)=gdch(i);
%             end
 
 
        end
    end
    end
end
 
 
%% 1.设参
branch = mpc.branch;
branch(:,3) = branch(:,3)*100/(12.66^2);%求阻抗标幺值
r=real(branch(:,3));
x=imag(branch(:,3));
r=r(1:32);
x=x(1:32);
upstream=zeros(nb,nl);%代表流入节点支路
dnstream=zeros(nb,nl);%代表流出节点支路
for i=1:32
    upstream(i,i)=1;
end
for i=[1:16,18:20,22:23,25:31]
    dnstream(i,i+1)=1;
end
dnstream(1,18)=1;
dnstream(2,22)=1;
dnstream(5,25)=1;
dnstream(33,1)=1;
 
 
Vmax=[1.05*1.05*ones(32,1);1.05*1.05*ones(1,1)];
Vmin=[0.95*0.95*ones(32,1);1.05*1.05*ones(1,1)];
Pgmax=[zeros(32,1);100.*ones(1,1)];
Qgmax=[zeros(32,1);100.*ones(1,1)];
%定义变量
V = sdpvar(nb,8*T);%电压的平方
I = sdpvar(nl,8*T);%电流的平方
P = sdpvar(nl,8*T);%线路有功
Q = sdpvar(nl,8*T);%线路无功
Pg = sdpvar(nb,8*T);%发电机有功
Qg = sdpvar(nb,8*T);%发电机无功
Nev = intvar(7,1);%备选节点充电桩数量
Npv = intvar(8,1);%光伏节点安装数量
%pv = sdpvar(nb,8*T);
qv = sdpvar(nb,8*T);
%sv = sdpvar(nb,8*T);
Ng = intvar(8,1);%燃气轮机安装数量
pg = intvar(nb,8*T);
Constraints = [];
%工作日充电桩情况
s_sumev=zeros(7,T);
[at,~]=size(evjd_w);
for k=1:at
  for i=1:7
   for t=1:T
       if evjd_w(k,4)==i && evjd_w(k,1)==t
        s_sumev(i,t)=s_sumev(i,t)+1;%计算节点充电电动汽车数量
       end
   end
  end
end
%周末充电站情况
s_sumevd=zeros(7,T);
[at,~]=size(evjd_wd);
for k=1:at
  for i=1:7
   for t=1:T
       if evjd_wd(k,4)==i && evjd_wd(k,1)==t
        s_sumevd(i,t)=s_sumevd(i,t)+1;%计算节点充电电动汽车数量
       end
   end
  end
end

三、程序链接

有需要的可以留言。

相关文章
|
1月前
|
算法
基于粒子群算法的分布式电源配电网重构优化matlab仿真
本研究利用粒子群算法(PSO)优化分布式电源配电网重构,通过Matlab仿真验证优化效果,对比重构前后的节点电压、网损、负荷均衡度、电压偏离及线路传输功率,并记录开关状态变化。PSO算法通过迭代更新粒子位置寻找最优解,旨在最小化网络损耗并提升供电可靠性。仿真结果显示优化后各项指标均有显著改善。
|
1月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
47 1
|
1月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
47 0
|
3月前
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
88 0
|
1月前
|
NoSQL Java Redis
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
Redis分布式锁在高并发场景下是重要的技术手段,但其实现过程中常遇到五大深坑:**原子性问题**、**连接耗尽问题**、**锁过期问题**、**锁失效问题**以及**锁分段问题**。这些问题不仅影响系统的稳定性和性能,还可能导致数据不一致。尼恩在实际项目中总结了这些坑,并提供了详细的解决方案,包括使用Lua脚本保证原子性、设置合理的锁过期时间和使用看门狗机制、以及通过锁分段提升性能。这些经验和技巧对面试和实际开发都有很大帮助,值得深入学习和实践。
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
|
3月前
|
NoSQL Redis
基于Redis的高可用分布式锁——RedLock
这篇文章介绍了基于Redis的高可用分布式锁RedLock的概念、工作流程、获取和释放锁的方法,以及RedLock相比单机锁在高可用性上的优势,同时指出了其在某些特殊场景下的不足,并提到了ZooKeeper作为另一种实现分布式锁的方案。
112 2
基于Redis的高可用分布式锁——RedLock
|
3月前
|
缓存 NoSQL Java
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
这篇文章是关于如何在SpringBoot应用中整合Redis并处理分布式场景下的缓存问题,包括缓存穿透、缓存雪崩和缓存击穿。文章详细讨论了在分布式情况下如何添加分布式锁来解决缓存击穿问题,提供了加锁和解锁的实现过程,并展示了使用JMeter进行压力测试来验证锁机制有效性的方法。
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
|
8天前
|
NoSQL Redis
Redis分布式锁如何实现 ?
Redis分布式锁通过SETNX指令实现,确保仅在键不存在时设置值。此机制用于控制多个线程对共享资源的访问,避免并发冲突。然而,实际应用中需解决死锁、锁超时、归一化、可重入及阻塞等问题,以确保系统的稳定性和可靠性。解决方案包括设置锁超时、引入Watch Dog机制、使用ThreadLocal绑定加解锁操作、实现计数器支持可重入锁以及采用自旋锁思想处理阻塞请求。
42 16
|
1月前
|
缓存 NoSQL Java
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
59 3
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
|
1月前
|
NoSQL Redis 数据库
计数器 分布式锁 redis实现
【10月更文挑战第5天】
47 1