The problem is that case14 already includes a non-zero BS for one of the buses 
in the original data, so you have to add your constant impedance load to what 
is already there. Try this …

define_constants
opt = mpoption('out.all' , 0, 'verbose', 2);
solved = runpf(case14(), opt);
solved2 = solved;
solved2.bus(:,GS) = solved2.bus(:,GS) + solved.bus(:, PD)./ (solved.bus(:, 
VM).^2);
solved2.bus(:,BS) = solved2.bus(:,BS) - solved.bus(:, QD)./ (solved.bus(:, 
VM).^2);
solved2.bus(:,PD) = 0;
solved2.bus(:,QD) = 0;
solved2 = runpf(solved2, opt);
norm(solved.bus(:, VM)-solved2.bus(:, VM))

You may also want to look at the experimental options for ZIP load handling in 
MATPOWER 6, namely exp.sys_wide_zip_loads.pw and exp.sys_wide_zip_loads.pw. For 
example …

solved = runpf(case14(), opt);
total_load(solved, 'all', [], opt)
solved2 = solved;
solved2.bus(:,PD) = solved.bus(:, PD) ./ (solved.bus(:, VM).^2);
solved2.bus(:,QD) = solved.bus(:, QD) ./ (solved.bus(:, VM).^2);
opt = mpoption(opt, 'exp.sys_wide_zip_loads.pw', [0 0 1], 
'exp.sys_wide_zip_loads.qw', [0 0 1]);
solved2 = runpf(solved2, opt);
total_load(solved2, 'all', [], opt)

One advantage to doing it this way is that it’s still listed as “load” in the 
output.

   Ray



> On Jul 6, 2016, at 10:49 PM, Georgiadis Dionysios 
> <[email protected]> wrote:
> 
> I see, subtle point but it is my fault for not noticing in the documentation. 
> Thank you.
> 
> Still however, the issue persists. Here is a minimal ingredients example:
> 
> opt = mpoption('out.all' , 0);
>  
> solved = runpf(case14(), opt);
>  
> solved2 = solved;
>  
> solved2.bus(:,GS) = solved.bus(:, PD)./ (solved.bus(:, VM).^2);
> solved2.bus(:,BS) = -solved.bus(:, QD)./ (solved.bus(:, VM).^2);
>  
> solved2.bus(:,PD) = solved2.bus(:,PD).*0;
> solved2.bus(:,QD) = solved2.bus(:,QD).*0;
>  
> solved2 = runpf(solved2, opt);
> norm(solved.bus(:, VM)-solved2.bus(:, VM))
> 
> One may notice not only that the solver iterates but also that the norm in 
> the final row is nonzero, proving that a new solution is obtained (which is 
> slightly different). 
> 
> From: <[email protected] 
> <mailto:[email protected]>> on behalf of Jose Luis 
> Marín <[email protected] <mailto:[email protected]>>
> Reply-To: MATPOWER discussion forum <[email protected] 
> <mailto:[email protected]>>
> Date: Wednesday, 6 July 2016 6:57 pm
> To: MATPOWER discussion forum <[email protected] 
> <mailto:[email protected]>>
> Subject: Re: Replacing constant power with constant impedance loads
> 
> 
> I think that you have to invert the sign of QD.  From 
> http://www.pserc.cornell.edu//matpower/docs/ref/matpower6.0b1/idx_bus.html 
> <http://www.pserc.cornell.edu//matpower/docs/ref/matpower6.0b1/idx_bus.html>:
> columns 1-13 must be included in input matrix (in case file)
>     1  BUS_I       bus number (positive integer)
>     2  BUS_TYPE    bus type (1 = PQ, 2 = PV, 3 = ref, 4 = isolated)
>     3  PD          Pd, real power demand (MW)
>     4  QD          Qd, reactive power demand (MVAr)
>     5  GS          Gs, shunt conductance (MW demanded at V = 1.0 p.u.)
>     6  BS          Bs, shunt susceptance (MVAr injected at V = 1.0 p.u.)
>     7  BUS_AREA    area number, (positive integer)
>     8  VM          Vm, voltage magnitude (p.u.)
>     9  VA          Va, voltage angle (degrees)
>     10 BASE_KV     baseKV, base voltage (kV)
>     11 ZONE        zone, loss zone (positive integer)
>     12 VMAX        maxVm, maximum voltage magnitude (p.u.)
>     13 VMIN        minVm, minimum voltage magnitude (p.u.)
> 
> -- 
> Jose L. Marin
> Grupo AIA
> 
> 
> 2016-07-06 12:07 GMT+02:00 Georgiadis Dionysios 
> <[email protected] <mailto:[email protected]>>:
> Dear all,
> 
> 
> After some quick calculations one can see that it is possible to replace a 
> constant power load with a constant impedance load of exactly equal power 
> consumption.
> 
> Here is an example, say bus 1 absorbs S1 MVAs under V1 volts. Bus 1 is 
> constant power.
> This would be equal to a constant impedance load, with impedance 
> conjugate(Z1) = (Vn/V1)^2 * S1, where Vn is the nominal voltage.
> 
> Thus, we can set the PD and QD entries of the case to zero, and replace them 
> with the right values for GS and BS.
> 
> Specifically, after solving a case with all constant power loads we will 
> obtain the Vm vector (voltage amplitudes) and the Pd and Qd vectors. Then, we 
> can set all PD and QD values to zero and place (1/Vm).^2 * Pd and (1/Vm).^2 * 
> Qd in the GS and BS columns respectively.
> 
> From my understanding the output should be exactly the same. The solved case 
> should remain a perfectly good solution to the PF equations. Yet, when I do 
> so, the solver iterates.
> 
> Can someone shed light on this? I apologise if I am asking the question in 
> the wrong place.
> 
> 
> Best regards,
> Dionysios Georgiadis
> 

Reply via email to