I actually don't know how to do this since profit depends on the price, which depends on the objective (namely profit) ... i.e. it's circular. I don't know how formulate an optimization whose objective includes constraint shadow prices.
-- Ray Zimmerman Senior Research Associate 419A Warren Hall, Cornell University, Ithaca, NY 14853 phone: (607) 255-9645 On Oct 21, 2011, at 9:59 AM, Dailan Xu wrote: > Thank you so much for your help. > Just another question: > > If I want to maximize profit instead of minimizing cost what changes in the > objective function of MATPOWER and what m.files and where should be carried > out? > Best Regards > > D. Xu > > > > On Fri, Oct 21, 2011 at 15:46, Ray Zimmerman <[email protected]> wrote: > If you call runmarket as ... > > define_constants; > [QUANTITY, PRICE, FCOST, VCOST, SCOST, PENALTY] = idx_disp; > [r, co, cb, f, dispatch, success, et] = runmarket(mpc, offers, bids, mkt, > mpopt); > > There are two equivalent ways to get the cost ... > > cost = totcost(r.gencost, r.gen(:, PG)); > cost = dispatch(:, FCOST) + dispatch(:, VCOST); > > And the profit (for generators) or benefit (for loads) is simply the revenue > minus the cost ... > > profit = dispatch(:, QUANTITY) .* dispatch(:, PRICE) - cost; > > Regarding the transformer, I had in mind something like ... > > voltage_not_ok = 1; > while voltage_not_ok > r = runpf(mpc, mpopt); % or runmarket or whatever > if <voltage in r.bus(k, VM) too low> > <increase tap in mpc.branch(i, TAP)> > elseif <voltage in r.bus(k, VM) too high> > <decrease tap in mpc.branch(i, TAP)> > else > voltage_not_ok = 0; % exit the loop > end > end > > That's just the overall idea. Obviously, you would have to make sure that > your tap update scheme does not result in cycling, etc. > > Hope this helps, > > -- > Ray Zimmerman > Senior Research Associate > 419A Warren Hall, Cornell University, Ithaca, NY 14853 > phone: (607) 255-9645 > > > > > On Oct 21, 2011, at 9:10 AM, Dailan Xu wrote: > >> Thank you.But my mean is this: where can I find the generator costs, profit >> and benefits in the runmarket results? I don't have problem in MATLAB >> programming. >> >> Could you please explain clearer the following sentence: you could call the >> power flow in a loop that adjusts the taps based on the voltages in the >> solution. >> >> >> Best Regards >> >> D. Xu >> >> >> >> On Fri, Oct 21, 2011 at 15:03, Ray Zimmerman <[email protected]> wrote: >> 1. This is a very general question. Since I can't guess exactly what you are >> having trouble with, it comes across as a general Matlab programming >> question to me. If so, go find a good book on Matlab programming and spend >> some time with it. If you have a specific MATPOWER-related question (for >> example, where can I find the generator cost in the OPF results?), then >> check the manual first and if you can't find the answer I'll be happy to try >> to answer it for you. >> >> 2. The power flow routine in MATPOWER does not automatically control the >> taps on transformers to regulate voltage (see the last sentence before >> section 4.1 in the manual). However, you could call the power flow in a loop >> that adjusts the taps based on the voltages in the solution. >> >> Best regards, >> >> -- >> Ray Zimmerman >> Senior Research Associate >> 419A Warren Hall, Cornell University, Ithaca, NY 14853 >> phone: (607) 255-9645 >> >> >> >> On Oct 21, 2011, at 7:52 AM, Dailan Xu wrote: >> >>> Dear Dr. Zimmerman >>> >>> 1. I have different kinds of loads and generations and I want to have >>> profit, cost and Lamba (or market summary) in a separate matrix (each of >>> them). Could you please let me know how can I do it? >>> >>> 2. I want to use an OLTC to centrally control the voltage of the slack bus. >>> Is it possible in MATPOWER? >>> >>> Best Regards >>> >>> D. Xu >>> >>> >> >> > >
