在Matpower中接入光伏发电

在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;
%% 加载case9数据
mpc = case9_with_pv();

% 运行潮流计算
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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值