Dear Ray

Thank you for your help!

I was able to modify the code to work for my kundur file but I still have some 
questions to make sure i fully understand how the program works.

are my comments in the code correct:

define_constants;
mpopt = mpoption('opf.ac.solver', 'MIPS', 'verbose', 2);%choose which solver to 
use+which                                                             info to 
print
mpc = loadcase('case30');%load file
nb = size(mpc.bus, 1);%calculate number of busses in system
ng = size(mpc.gen, 1);
mpc.gencost = ones(ng, 1) * [2 0 0 2 1 0];%modify the gencost matrix in the 
case30file
r1 = runopf(mpc, mpopt);%runopf(wil give same result as pf because all cost are 
equal)

mpc.gencost(:, 5) = 0;%modify gen cost so all cost of generation is 0
mpc.N = [sparse(nb, nb) speye(nb, nb) sparse(nb, 2*ng)];
Because there are no new elements in the matrix x I would suspect N to be an 
eye matrix. I don't really understand what this formulation of N does and how 
the 3 matrix defined relate to each other.(does this isolate the Voltage from 
the x vector?)

mpc.fparm = ones(nb, 1) * [2 1 0 1];%define objective for each bus
mpc.Cw = 1000 * ones(nb, 1);% we multipy by 1000 to make the objective strong?
r2 = runopf(mpc, mpopt);%runopf

the cost funciton is (V-1)^2 so

The formula in matpower for the cost objective is:
fu(x; z) =1/2 w^THw + C^Tw
by default H is zero so the first part is gone. ?
C=Cw
Fparm=
    ?d=2 power
    r=1 shift
    k=0 no deadzone
    m=1 scale factor

w=(V-1)^2 because of fparm.

this is how we get the costfunction

I hope you find the time to look at my questions.
Kind regards
Robin



________________________________
Van: bounce-121034430-77121...@list.cornell.edu 
<bounce-121034430-77121...@list.cornell.edu> namens Ray Zimmerman 
<r...@cornell.edu>
Verzonden: maandag 28 november 2016 17:19
Aan: MATPOWER discussion forum
Onderwerp: Re: change objective OPF

Here is an example of how to do it for case30. The first run is a 
loss-minimization solution, the second minimizes the voltage deviations from 1 
p.u. using the objective you specified.

define_constants;
mpopt = mpoption('opf.ac.solver', 'MIPS', 'verbose', 2);
mpc = loadcase('case30');
nb = size(mpc.bus, 1);
ng = size(mpc.gen, 1);
mpc.gencost = ones(ng, 1) * [2 0 0 2 1 0];
r1 = runopf(mpc, mpopt);

mpc.gencost(:, 5) = 0;
mpc.N = [sparse(nb, nb) speye(nb, nb) sparse(nb, 2*ng)];
mpc.fparm = ones(nb, 1) * [2 1 0 1];
mpc.Cw = 1000 * ones(nb, 1);
r2 = runopf(mpc, mpopt);

norm(r1.bus(:, VM) - 1)
norm(r2.bus(:, VM) - 1)

Notice the reduction in voltage deviations from the first run.

   Ray




On Nov 24, 2016, at 10:46 AM, Robin Weckx 
<robin.we...@student.kuleuven.be<mailto:robin.we...@student.kuleuven.be>> wrote:

Dear,

I have implemented the two area kundur topology in the matpower software. I can 
successfully run a PF and OPF. My next goal is the change the objective of the 
OPF so that the voltages on the busses are as close to unity as possible 
independently from the cost of the generators. For this i modified my gencost 
matrix so that all the generators have the same cost. the next step is to add 
my objective while the constrains stay the same. Because i don't need to add 
any values because Vm is already in the x matrix this process should be quite 
straightforward but i keep failing.
My objective function is fmin=(Vm-1)^2 for all the voltages of the busses. How 
do i implement this?
i looked at the "add_costs" function but don't really know where i should use 
this function.
i tried the direct implementation method of cheaper 7. should i just but the 
values of the H,N,Cw,... in de Kundur file that I use to perform 
runopf('Kundur')?
or could i just modify the gencost matrix to make a "buscost" matrix where all 
the polynomial cost functions are as defined above?

Could you please give me some more directions on how to solve this problem?

thanks in advance
kind regards
Weckx Robin

Reply via email to