Matlab|计及光伏电站快速无功响应特性的分布式电源优化配置方法

目录

[1 主要内容](#1 主要内容)

目标函数

约束条件

程序亮点

[2 部分代码](#2 部分代码)

[3 程序结果](#3 程序结果)

[4 下载链接](#4 下载链接)


1 主要内容

该程序复现博士文章《互动环境下分布式电源与电动汽车充电站的优化配置方法研究》第二章《计及光伏电站快速无功响应特性的分布式电源优化配置方法》,本章选取了光伏电站、微型燃气轮机两种典型的分布式电源进行优化配置问题的研究,通过构建加权电压支撑能力指标以表征配电系统中光伏电站对敏感负荷节点的电压支撑能力,并将其嵌入到分布式电源优化配置模型中以求解最优的分布式电源安装位置和安装容量。算例分析部分基于IEEE-33节点配电系统的优化结果,充分证明了本章研究的价值和意义。

目标函数

约束条件

程序亮点

本程序除了常规的33节点二阶锥模型的约束形式外,最大的特点是电压支撑能力指标,基于灵敏度分析理论求解该项指标,为原文增色不少!

2 部分代码

复制代码
Jz=inv(J);%求解雅可比矩阵逆矩阵
B4j=Jz(33:64,33:64);%求解得到B4j值,未考虑平衡节点
B4=[B4j,zeros(32,1);zeros(1,33)];%得到包含平衡节点的B4
%%
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)];
%计算负荷矩阵
Pload=busd(:,7);
Qload=busd(:,8);
P1=repmat(ploadz,33,1).*repmat(Pload,1,4*T)/100;%有功负荷矩阵
Q1=repmat(ploadz,33,1).*repmat(Qload,1,4*T)/100;%无功负荷矩阵
P2=zeros(33,4*T*N);
Q2=zeros(33,4*T*N);
for i=1:4*T%转化为4*T*N列矩阵
    for j=1:N
    P2(:,5*i+j-5)=P1(:,i);
    Q2(:,5*i+j-5)=Q1(:,i);
    end
end
%定义变量
V = sdpvar(nb,4*T*N);%电压的平方
I = sdpvar(nl,4*T*N);%电流的平方
P = sdpvar(nl,4*T*N);%线路有功
Q = sdpvar(nl,4*T*N);%线路无功
Pg = sdpvar(nb,4*T*N);%发电机有功
Qg = sdpvar(nb,4*T*N);%发电机无功
Npv = intvar(8,1);%光伏节点安装数量
%pv = sdpvar(nb,4*T*N);
qv = sdpvar(nb,4*T*N);
qv_h=sdpvar(8,4*T*N);
%sv = sdpvar(nb,4*T*N);
Ng = intvar(6,1);%燃气轮机安装数量
pg = intvar(nb,4*T*N);
Constraints = [];
%光伏处理
unitpv=10*1e-5;%单位光伏容量
pv_h=repmat(Npv,1,4*T*N).*repmat(dw_pv,8,4*T).*unitpv/10;
pv=[zeros(4,4*T*N);pv_h(1,:);zeros(5,4*T*N);pv_h(2,:);zeros(2,4*T*N);pv_h(3,:);zeros(1,4*T*N);pv_h(4,:);zeros(3,4*T*N);pv_h(5,:);zeros(2,4*T*N);pv_h(6,:);zeros(5,4*T*N);pv_h(7,:);zeros(1,4*T*N);pv_h(8,:);zeros(2,4*T*N)];
sv_h=unitpv.*repmat(Npv,1,4*T*N);
sv=[zeros(4,4*T*N);sv_h(1,:);zeros(5,4*T*N);sv_h(2,:);zeros(2,4*T*N);sv_h(3,:);zeros(1,4*T*N);sv_h(4,:);zeros(3,4*T*N);sv_h(5,:);zeros(2,4*T*N);sv_h(6,:);zeros(5,4*T*N);sv_h(7,:);zeros(1,4*T*N);sv_h(8,:);zeros(2,4*T*N)];
​
% Constraints = [Constraints,pv>=0,pv<=repmat(unitpv.*Npv,1,4*T*N)];
% Constraints = [Constraints,pv>=0,pv<=repmat(unitpv.*Npv,1,4*T*N)];
for i=1:33
    for t=1:T
        Constraints = [Constraints,cone([pv(i,t);qv(i,t)],sv(i,t))];
    end
end
qv=[zeros(4,4*T*N);qv_h(1,:);zeros(5,4*T*N);qv_h(2,:);zeros(2,4*T*N);qv_h(3,:);zeros(1,4*T*N);qv_h(4,:);zeros(3,4*T*N);qv_h(5,:);zeros(2,4*T*N);qv_h(6,:);zeros(5,4*T*N);qv_h(7,:);zeros(1,4*T*N);qv_h(8,:);zeros(2,4*T*N)];
Constraints = [Constraints,Npv>=0,Ng>=0,Npv<=100];
%微燃机处理

3 程序结果

4 下载链接

相关推荐
孤亭远见2 小时前
COMSOL with Matlab
matlab
Data跳动4 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark
图南楠4 小时前
simulink离散传递函数得到差分方程并用C语言实现
matlab
信号处理学渣5 小时前
matlab画图,选择性显示legend标签
开发语言·matlab
Java程序之猿5 小时前
微服务分布式(一、项目初始化)
分布式·微服务·架构
来一杯龙舌兰6 小时前
【RabbitMQ】RabbitMQ保证消息不丢失的N种策略的思想总结
分布式·rabbitmq·ruby·持久化·ack·消息确认
节点。csn8 小时前
Hadoop yarn安装
大数据·hadoop·分布式
NiNg_1_2349 小时前
基于Hadoop的数据清洗
大数据·hadoop·分布式
隔着天花板看星星10 小时前
Spark-Streaming集成Kafka
大数据·分布式·中间件·spark·kafka
技术路上的苦行僧14 小时前
分布式专题(8)之MongoDB存储原理&多文档事务详解
数据库·分布式·mongodb