在Matpower中,Bus有以下4种类型:
①PQ节点(负荷节点);
②PV节点(电压控制/发电机节点);
③平衡节点;
④孤岛节点;
由于Matpower的标准案例文件中不包含光伏发电机节点,因此需要在PV节点上接入光伏发电机。
1.加载和修改标准案例文件
function mpc = case9_with_pv()
% 加载标准测试案例
mpc = loadcase('case9');
% 修改第4个节点为光伏发电节点
% 节点编号 类型 PD QD GS BS 区域 VM VA 基准电压 区域 Vmax Vmin
mpc.bus(4, :) = [4 2 0 0 0 0 1 1.02 0 230 1 1.1 0.9]; % PV节点
% 添加光伏发电机
% 节点 PG QG Qmax Qmin VG 基准容量 状态 Pmax Pmin
mpc.gen = [
mpc.gen;
4 50 0 30 -30 1.02 100 1 50 0 0 0 0 0 0 0 0 0 0 0 0 % 光伏发电机
];
% 更新发电机成本数据
% 1 = piecewise linear, 2 = polynomial cost function
% 类型 启动成本 启动时间 成本项数 费用
mpc.gencost = [
mpc.gencost;
2 0 0 3 0 0 0 % 光伏发电机的成本数据
];
end
注意:添加的Bus、gen、gencost要与标准案例文件维数相同
2.运行并查看结果
clc;
clear;
close all;
%% 运行潮流计算
results = runpf(case9);
% 显示结果
printpf(results);
% 提取节点数据
bus = results.bus;
branch = results.branch;
% 提取节点位置(这里假设有预定义的位置数据)
% 你可以根据实际情况设定节点的 (x, y) 坐标
% 例如:bus_positions = [x1, y1; x2, y2; ...];
bus_positions = [
0, 0; % 节点 1
1, 1; % 节点 2
2, 0; % 节点 3
1, -1; % 节点 4
2, 1; % 节点 5
3, 0; % 节点 6
2, -1; % 节点 7
3, 1; % 节点 8
4, 0; % 节点 9
];
% 绘制节点
figure;
hold on;
scatter(bus_positions(:, 1), bus_positions(:, 2), 'filled');
text(bus_positions(:, 1), bus_positions(:, 2), num2str(bus(:, 1)), 'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'right');
% 绘制线路并显示潮流分布
for k = 1:size(branch, 1)
fbus = branch(k, 1); % 起始节点
tbus = branch(k, 2); % 终止节点
x = [bus_positions(fbus, 1), bus_positions(tbus, 1)];
y = [bus_positions(fbus, 2), bus_positions(tbus, 2)];
% 获取潮流数据
Pf = branch(k, 14); % 起始节点的有功功率
Qf = branch(k, 15); % 起始节点的无功功率
Pt = branch(k, 16); % 终止节点的有功功率
Qt = branch(k, 17); % 终止节点的无功功率
% 绘制线路
plot(x, y, 'k');
% 绘制有功潮流箭头
quiver(x(1), y(1), x(2)-x(1), y(2)-y(1), 'MaxHeadSize', 0.1, 'Color', 'r');
% 在箭头上标注潮流数据
mid_x = (x(1) + x(2)) / 2;
mid_y = (y(1) + y(2)) / 2;
text(mid_x, mid_y, sprintf('%.2f MW', Pf), 'Color', 'r', 'FontSize', 8);
end
% 设置图形属性
xlabel('X 坐标');
ylabel('Y 坐标');
title('电力系统潮流分布图');
grid on;
hold off;
标签:branch,接入,positions,发电机,光伏,bus,Matpower,节点,mpc
From: https://blog.csdn.net/weixin_48914190/article/details/139307049