matpower绘制电力系统的潮流分布图的代码
时间: 2023-08-14 09:06:35 浏览: 418
下面是一个简单的Matlab代码,用于绘制电力系统潮流分布图:
```
%% 读取潮流计算结果
mpc = loadcase('case9'); %导入电力系统数据
results = runpf(mpc); %进行潮流计算
%% 绘制电力系统潮流分布图
bus = results.bus; %获取节点信息
line = results.branch; %获取支路信息
bus_labels = cellstr(num2str(bus(:,1))); %节点名称
coord = [bus(:,2), bus(:,3)]; %节点坐标
% 画节点
scatter(coord(:,1), coord(:,2), 'filled');
text(coord(:,1), coord(:,2), bus_labels, 'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'right');
% 画支路
for i = 1:size(line, 1)
from = line(i, 1);
to = line(i, 2);
x = [coord(from,1), coord(to,1)];
y = [coord(from,2), coord(to,2)];
if line(i, 14) > 0 % 判断支路是否有潮流
lw = 2 + 2 * log10(abs(line(i, 14))); % 支路宽度与潮流大小相关
plot(x, y, 'r', 'LineWidth', lw);
else
plot(x, y, 'k');
end
end
% 标注电压和相角
for i = 1:size(bus, 1)
text(coord(i,1)+0.1, coord(i,2), sprintf('%.1f\\angle%.1f', bus(i,8), bus(i,9)), 'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'left');
end
% 设置图形属性
box on;
axis equal;
axis([-0.5, 1.5, -0.5, 1.5]);
xlabel('X');
ylabel('Y');
title('潮流分布图');
```
上述代码以case9为例,绘制了一个简单的电力系统潮流分布图。其中,`results`是潮流计算结果,包含了电力系统各节点的电压、相角和功率等参数。`bus`和`line`分别是节点和支路信息。`coord`是节点坐标,`bus_labels`是节点名称。支路的宽度与潮流大小相关,支路上标注了潮流大小。节点上标注了电压和相角。
阅读全文