如何强制 MATPOWERs runpf 以保持流量限制?

问题描述 投票:0回答:1

在 Matlab 中,我给出了 MATPOWER 案例文件格式的网络(请参阅 MATPOWER 文档)。

我现在想检查一下是否可以使用交流电。为此,我雇用了

runpf
(请参阅 MATPOWER 文档):

define_constants;
mpc = loadcase(case_file_path);
results = runpf($mpc);

在我的大多数案例中,我得到的结果是可行的。现在我想检查不可行的分支违规。然而,我注意到那些标记为可行的分支也存在分支违规(对我来说,从物理 POV 来看这没有意义)。

我计算的违规行为如下:

pfs = results.branch(:, PF);
qfs = results.branch(:, QF);
pts = results.branch(:, PT);
qts = results.branch(:, QT);
Sfs = sqrt(pfs.^2 + qfs.^2);
Sts = sqrt(pts.^2 + qts.^2);
active = mpc_target.branch(:, 11) > 0.5;
rates = mpc_target.branch(:, 6); % the 6th column gives the rateA of the branch 
violations_n = sum((Sfs .* active > rates) | (Sts .* active > rates));

我的猜测是该函数不会强制执行网络中的限制,但这正是我所需要的。

到目前为止我尝试过的:

runpf
的描述中提到,
pf.enforce_q_lims
选项存在。我尝试将其设置为 true(希望这也能以某种方式导致遵守流量限制),但结果保持不变。

我发现了另一个功能

runcpf
。此功能有选项
cpf.enforce_flow_lims
。然而,该函数似乎执行连续功率流,我猜这不是我想要的,因为我需要一个基本情况和一个目标情况(我不是电气工程师,所以我的知识有限)。尽管如此,我运行了该函数(两种情况都是基本情况并且激活了上述选项),但结果仍然相同:发生了相同的违规行为。

我不确定如何继续。由于我不知道的限制,这对于 MATPOWER 来说是不可能的吗?然而,这对我来说似乎不切实际。

matlab matpower
1个回答
0
投票

您观察到的行为实际上是预期的 -

runpf
执行功率流计算以确定是否存在满足基尔霍夫定律和指定功率注入/需求的解决方案,但默认情况下它不会强制执行分支流限制。这是因为分支流量限制通常被视为操作约束而不是物理定律。

如果您需要找到一个尊重分支流量限制的解决方案,我建议您使用 MATPOWER 的 OPF 功能。 OPF 将尝试找到满足潮流方程、遵守支流限制、将电压保持在范围内、遵守发电机限制并最大限度降低发电成本的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.