I ran Matpower 4.1 on the included cases and ran into a couple of
things which might be bugs or features. I included examples below.
Jovan Ilic
1) ENFORCE_Q_LIMS = 1 in mpopt does not work if there is only one PV bus
( guessing the reason)
Example:
>> mpopt4 = mpoption(mpopt, 'OUT_ALL', 0, 'VERBOSE',0, 'ENFORCE_Q_LIMS', 0);
>> mpopt = mpoption(mpopt, 'OUT_ALL', 0, 'VERBOSE',0, 'ENFORCE_Q_LIMS', 1);
>> case4gs = loadcase('case4gs');
>> case4gsSolved = runpf(case4gs,mpopt4);
>> case4gsSolved = runpf(case4gs,mpopt)
Attempted to access pv(1); index out of bounds because numel(pv)=0.
Error in bustypes (line 61)
ref = pv(1); %% use the first PV bus
Error in runpf (line 291)
[ref, pv, pq] = bustypes(bus, gen);
>>
2) ENFORCE_Q_LIMS = 1 in mpopt can set slack bus to PQ bus type
I am not sure if this is what we want. You should be careful to set it
back to slack bus if using the solved case to run runpf again.
Example:
>> mpopt = mpoption(mpopt, 'OUT_ALL', 0, 'VERBOSE',0, 'ENFORCE_Q_LIMS', 1);
>> case300 = loadcase('case300')
case300 =
version: '2'
baseMVA: 100
bus: [300x13 double]
gen: [69x21 double]
branch: [411x13 double]
gencost: [69x7 double]
>> case300Solved = runpf(case300,mpopt);
>> sum(case300.bus(:,2)==3)
ans =
1
>> sum(case300Solved.bus(:,2)==3)
ans =
0