Commit b7f82f9e by wzc-a

与matpower结果对比

parent 1a34fc70
......@@ -113,10 +113,10 @@ pub fn get_pf_nlp_variables(tns: &[u64]) -> String {
let mut variable = String::new();
// 生成变量名
for tn in tns {
variable.push_str(&format!("V_{tn}_A:[0/20000],D_{tn}_A:[-3.2/3.2],\
V_{tn}_B:[0/20000],D_{tn}_B:[-3.2/3.2],V_{tn}_C:[0/20000],D_{tn}_C:[-3.2/3.2],\
P_{tn}_A:[-200000/200000],P_{tn}_B:[-200000/200000],P_{tn}_C:[-200000/200000],\
Q_{tn}_A:[-200000/200000],Q_{tn}_B:[-200000/200000],Q_{tn}_C:[-200000/200000],"));
variable.push_str(&format!("V_{tn}_A:[0/99999999],D_{tn}_A:[-3.2/3.2],\
V_{tn}_B:[0/99999999],D_{tn}_B:[-3.2/3.2],V_{tn}_C:[0/99999999],D_{tn}_C:[-3.2/3.2],\
P_{tn}_A:[-99999999/99999999],P_{tn}_B:[-99999999/99999999],P_{tn}_C:[-99999999/99999999],\
Q_{tn}_A:[-99999999/99999999],Q_{tn}_B:[-99999999/99999999],Q_{tn}_C:[-99999999/99999999],"));
}
variable
}
......@@ -477,8 +477,8 @@ mod test {
let dyn_topo = vec![vec![1, 1], vec![2, 2]];
let dev_topo = vec![vec![1, 1, 1, 1], vec![2, 1, 1, 2], vec![3, 2, 2, 2], vec![4, 2, 2, 4]];
let mut dev_matrix = HashMap::new();
dev_matrix.insert(2, vec![array![[0.3465, 0.1560, 0.1580], [0.1560, 0.3375, 0.1535], [0.1580, 0.1535, 0.3414]],
array![[1.0179, 0.5017, 0.4236], [0.5017, 1.0478, 0.3849], [0.4236, 0.3849, 1.0348]]]);
dev_matrix.insert(2, vec![array![[0.3465, 0.1560, 0.1580], [0.1560, 0.3375, 0.1535], [0.1580, 0.1535, 0.3414]]*2000.0/5280.0,
array![[1.0179, 0.5017, 0.4236], [0.5017, 1.0478, 0.3849], [0.4236, 0.3849, 1.0348]]*2000.0/5280.0 ]);
// dev_matrix.insert(2, vec![array![[1.3425, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.3414]],
// array![[0.5124, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 1.0348]]]);
// dev_matrix.insert(2, vec![array![[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.3414]],
......@@ -486,7 +486,7 @@ mod test {
let input_tns = vec![1, 2, 2, 2, 2, 2, 2];
let input_phases = vec![MeasPhase::Total, MeasPhase::A, MeasPhase::A, MeasPhase::B, MeasPhase::B, MeasPhase::C, MeasPhase::C];
let input_types = vec![DataUnit::V, DataUnit::W, DataUnit::Var, DataUnit::W, DataUnit::Var, DataUnit::W, DataUnit::Var];
let input_values = vec![200.0, 1000.0, 100.0, 1100.0, 200.0, 900.0, 400.0];
let input_values = vec![12470.0, 1275000.0, 790174.0, 1800000.0, 871779.8, 2375000.0, 780624.7];
let constraints = get_pf_nlp_constraints(
&tns, dyn_topo, dev_topo, dev_matrix, input_tns, input_phases, input_types, input_values
);
......
% 测试ieee13配电网算例的单段导线
clc;
mpopt = mpoption('verbose',2);
mpc = loadcase('t_case3p_a_1');
run_pf(mpc,mpopt,'mpx',mp.xt_3p);
% 以下为手工计算结果
r = [ 0.3465 0.1560 0.1580 ; 0.1560 0.3375 0.1535 ; 0.1580 0.1535 0.3414 ];
x= [1.0179 0.5017 0.4236; 0.5017 1.0478 0.3849; 0.4236 0.3849 1.0348];
len = 2000/5280;
y = inv(r+1j*x)/len;
v1 = [complexd(7.1996,0.00) ; complexd(7.1996,-120.00) ; complexd(7.1996,120.00)].*1000;
v2 = [complexd(7.1769,-0.08) ; complexd(7.1396,-120.37) ; complexd(7.1500,119.25)].*1000;
i = y*(v2-v1);
abs(i)
rad2deg(angle(i))
pd = mpc.load3p(1,4:6);
pf = mpc.load3p(1,7:9);
qd = pd .* tan(acos(pf));
function mpc = t_case3p_a_1
% t_case3p_a - Four bus, unbalanced 3-phase test case.
%
% This data comes from ``4Bus-YY-UnB.DSS``, a modified version (with unbalanced
% load) of ``4Bus-YY-Bal.DSS`` [1], the OpenDSS 4 bus IEEE test case with
% grounded-wye to grounded-wye transformer.
%
% [1] https://sourceforge.net/p/electricdss/code/HEAD/tree/trunk/Distrib/IEEETestCases/4Bus-YY-Bal/4Bus-YY-Bal.DSS
%% MATPOWER Case Format : Version 2
mpc.version = '2';
%%----- Power Flow Data -----%%
%% system MVA base
mpc.baseMVA = 100;
mpc.bus = [];
mpc.gen = [];
mpc.branch = [];
mpc.gencost = [];
%%----- 3 Phase Model Data -----%%
%% system data
mpc.freq = 60; %% frequency, Hz
mpc.basekVA = 1000; %% system kVA base
%% bus data
% busid type basekV Vm1 Vm2 Vm3 Va1 Va2 Va3
mpc.bus3p = [
1 3 12.47 1 1 1 0 -120 120;
2 1 12.47 1 1 1 0 -120 120;
% 3 1 4.16 1 1 1 0 -120 120;
% 4 1 4.16 1 1 1 0 -120 120;
];
%% branch data
% brid fbus tbus status lcid len
mpc.line3p = [
1 1 2 1 1 2000/5280;
% 2 3 4 1 1 2500/5280;
];
%% transformer
% xfid fbus tbus status R X basekVA basekV
mpc.xfmr3p = [
% 1 2 3 1 0.01 0.06 6000 12.47;
];
%% load
% ldid ldbus status Pd1 Pd2 Pd3 ldpf1 ldpf2 ldpf3
mpc.load3p = [
1 2 1 1275 1800 2375 0.85 0.9 0.95;
% 1 4 1 1275 1800 2375 0.85 0.9 0.95;
];
%% gen
% genid gbus status Vg1 Vg2 Vg3 Pg1 Pg2 Pg3 Qg1 Qg2 Qg3
mpc.gen3p = [
1 1 1 1 1 1 2000 2000 2000 0 0 0;
];
%% line construction
% lcid R11 R21 R31 R22 R32 R33 X11 X21 X31 X22 X32 X33 C11 C21 C31 C22 C32 C33
mpc.lc = [
1 0.3465 0.1560 0.1580 0.3375 0.1535 0.3414 1.0179 0.5017 0.4236 1.0478 0.3849 1.0348 0 0 0 0 0 0
%1 0.457541 0.15594 0.153474 0.466617 0.157996 0.461462 1.078 0.501648 0.384909 1.04813 0.423624 1.06502 15.0671 -4.86241 -1.85323 15.875 -3.09098 14.3254
];
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论