交直流混合配电网潮流计算(统一求解法)

目录

1 主要内容

算例模型

统一求解法迭代方程

算法流程图

2 部分代码

3 程序结果

4 程序链接


主要内容

该程序为matlab代码,采用统一求解法对交直流混合配电网进行潮流计算,统一迭代法又称统一求解法,其思路是将混联系统中的交流网络方程与直流 网络方程进行联立,对联立后的方程组进行各未知量的求解,目前已有众多学者 在对交直流混合配电网的研究中,证明了这一方法具备较好的收敛性。该代码有非常详实的文献资料,方便对照研究学习!

  • 算例模型

  • 统一求解法迭代方程

  • 算法流程图

部分代码

kk=1;%迭代次数
​
line=size(Line.con,1);%支路数目
​
n=max(Bus.con(:,1));%找出第1列的最大值,即节点数
​
T=0.00001;
TT=ones(n,1)*T;%收敛误差设置
​
Y=zeros(n);%创建导纳矩阵Y
U=ones(n,1);
dU=zeros(n,1);
U(PV.con(:,1))=PV.con(:,5);%提取PV节点的电压幅值
U(SW.con(:,1))=SW.con(:,4);%提取平衡节点的电压幅值
th=zeros(n,1);
dth=zeros(n,1);
Pg=zeros(n,1);
Pl=zeros(n,1);
Ql=zeros(n,1);
Qg=zeros(n,1);
Pg(PV.con(:,1))=PV.con(:,4);%提取PV节点的有功功率
Pl(PQ.con(:,1))=PQ.con(:,4);%提取PQ节点的有功功率
Ql(PQ.con(:,1))=PQ.con(:,5);%提取PQ节点的无功功率
% 计算导纳矩阵
for m=1:line
    a=Line.con(m,1);%首节点a
    b=Line.con(m,2);%末节点b
    z=Line.con(m,8)+1i*Line.con(m,9);%节点ab间的阻抗
    y2=1i*Line.con(m,10)/2;%导纳/2
    if real(z)==0
        k=Line.con(m,7)*Bus.con(b,2)/Bus.con(a,2);%变比K
    else
        k=1;
    end
    Y(a,b)=-1/k/z;%ab间互导纳
    Y(b,a)=Y(a,b);
    Y(a,a)=Y(a,a)+y2+(k-1)/(k*z)+1/k/z;%求自导纳
    Y(b,b)=Y(b,b)+y2+(1-k)/k^2/z+1/k/z;
%     C(a)=data(m,7);%输入节点a,b的补偿电容导纳
%     C(b)=data(m,8);
end
 
%将节点导纳的实虚部分开
B=imag(Y);
G=real(Y);
disp('节点导纳矩阵:')
disp(Y);
​
%判断PQ、PV、平衡节点的个数
PQn=size(PQ.con,1);
PVn=size(PV.con,1);
SWn=size(SW.con,1);
​
DCn=Hvdc.con(:,[1 2])';%直流节点编号%取出Hvdc.con第1,2列元素赋值给DCn
ACn=setdiff(1:n,union(DCn,SW.con(1,1)))';%除去1,7,8后排序
Ndc=size(DCn,1);%直流节点个数
Nac=size(ACn,1);%交流节点个数
pn=setdiff(1:n,SW.con(1,1))';
qn=setdiff(pn,PV.con(:,1));
Pn=intersect(ACn, pn);%交流节点P方程节点
Qn=intersect(ACn, qn);%交流节点Q方程节点
p=size(Pn,1);   %交流节点P方程个数
q=size(Qn,1);   %交流节点Q方程个数

程序结果

以下是一个简单的交直流混合配电网潮流计算的示例MATLAB代码: ```matlab % 定义网络参数 % 交流部分参数 Z_ac = [0.1+0.2i, 0.05+0.1i; 0.05+0.1i, 0.2+0.1i]; % 交流支路阻抗矩阵 Y_ac = inv(Z_ac); % 交流支路导纳矩阵 % 直流部分参数 R_dc = 0.1; % 直流支路电阻 L_dc = 0.05; % 直流支路电感 G_dc = 1/(R_dc + j*2*pi*50*L_dc); % 直流支路导纳 % 负荷功率 P_load = [100; 200]; % 两个节点的有功负荷 Q_load = [50; 100]; % 两个节点的无功负荷 % 发电机功率 P_gen = [150; 0]; % 两个节点的有功发电机出力 Q_gen = [50; 0]; % 两个节点的无功发电机出力 % 构建节点注入功率向量 P_inj = P_gen - P_load; Q_inj = Q_gen - Q_load; S_inj = P_inj + j*Q_inj; % 潮流计算 V = ones(2,1); % 初始化节点电压幅值为1 pu delta = zeros(2,1); % 初始化节点相角为0 V_old = V; delta_old = delta; max_iter = 100; % 最大迭代次数 tolerance = 1e-6; % 收敛容忍度 for iter = 1:max_iter % 更新节点注入功率 S_inj = P_inj + j*Q_inj; for i = 1:2 % 计算节点注入电流 I_inj(i) = conj(S_inj(i)/conj(V(i))); % 交流部分潮流计算 V_ac(i) = V(i) - Y_ac(i,:)*V + Y_ac(i,i)*V(i); % 直流部分潮流计算 V_dc(i) = V(i) - G_dc*V(i) - I_inj(i)*R_dc; end % 更新节点电压幅值和相角 V = abs(V_ac) .* exp(1j*angle(V_dc)); delta = angle(V_ac); % 判断是否收敛 if max(abs(V - V_old)) < tolerance && max(abs(delta - delta_old)) < tolerance fprintf('潮流计算已收敛,迭代次数:%d\n', iter); break; end V_old = V; delta_old = delta; end % 输出结果 fprintf('节点电压幅值:\n'); disp(V); fprintf('节点相角:\n'); disp(delta); ``` 请注意,这只是一个简单的示例代码,仅用于演示交直流混合配电网潮流计算的基本思路。实际应用中,您可能需要根据具体的网络拓扑和参数进行相应的修改和优化。希望这个示例对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电力程序小学童

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值