Thanks for the explanation ☺

You are right, I’ve checked fixed_gencost matrix and found all constant terms 
there. However, I’m calculating the pure generation cost in each time period in 
the following way (deterministic, no contingency, linear cost curve):

for t = 1:nt
mpc = mdo.flow(t).mpc;
total_gen0(t) = sum(totcost(mpc.gencost, mpc.gen(:,PG)));
total_gen1(t) = sum(mpc.gencost(:,5).*mpc.gen(:,PG) + mpc.gencost(:,6)); %Here 
mpc.gencost(:,6)==0
total_gen2(t) = sum(mpc.gencost(:,5).*mpc.gen(:,PG) + mpc.fixed_gencost(:,6));
end

Then I got following relationship:
sum(total_gen0) = sum(total_gen1) < f < sum(total_gen2)
Based on my understanding, sum(total_gen2) should be the correct total 
generation cost, however, it turns out to be greater than the value of 
objective function, f, which includes other costs as well. I’m confused about 
this result.

Best,
Bainan


From: [email protected] 
<[email protected]> On Behalf Of Ray Zimmerman
Sent: Tuesday, March 20, 2018 7:47 AM
To: MATPOWER discussion forum <[email protected]>
Subject: Re: Calculating pure generation cost and assign load profile for each 
bus

a) It would take some time for me to dig into the details (Carlos, maybe you 
remember more off the top of your head), but it has to do with the fact that 
the constant term (“no-load cost" is only included in the cost if the unit is 
committed, so it is actually removed from the part that is a function of Pg and 
handled separately. I believe, if I am not mistaken, the constant term for 
generator i in period t, scenario j, contingency k, can be found in 
mdo.flow(t,j,k).mpc.fixed_gencost(i). And I believe the probability-weighted 
"no-load" cost for generator i in period t can be found in  mdo.UC.c00(i,t).

b) It is possible. Simply change the col field of the profile from CT_TAREALOAD 
to CT_TLOAD. See Table 9-2 in the MATPOWER User’s 
Manual<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.pserc.cornell.edu_matpower_docs_MATPOWER-2Dmanual-2D6.0.pdf&d=DwMFaQ&c=f_hce7QtucnhnFZbRZTIlH6nx5mag1_14FtEFKPmHCI&r=GT1sxYZuEA8wCoyfVcH4pg&m=nDAUs7Zt5c8XGhApWD8dwQ-Yn_zlRfVdHY8ZvGcYNrc&s=7Bk8BJVY8-xxq7m8t2Ry24uNowPTLbJI8LwQdHvivZE&e=>,
 in the description of MATPOWER’s 
apply_changes()<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.pserc.cornell.edu_matpower_docs_ref_matpower6.0_apply-5Fchanges.html&d=DwMFaQ&c=f_hce7QtucnhnFZbRZTIlH6nx5mag1_14FtEFKPmHCI&r=GT1sxYZuEA8wCoyfVcH4pg&m=nDAUs7Zt5c8XGhApWD8dwQ-Yn_zlRfVdHY8ZvGcYNrc&s=HHDbKVYEzqHiE5eUMhW71E3WNb9CI1g33Zf4R9vyh6Y&e=>
 function, which is used to implement the profiles in MOST.

Hope this helps,

    Ray



On Mar 19, 2018, at 8:09 PM, Bainan Xia 
<[email protected]<mailto:[email protected]>> wrote:

Hi guys,

I’ve got following two questions when solving multi-period UC problem.

a)       Given the result structure ‘mdo’, I’m calculating the total generation 
cost for time period t in following way:
mpc = mdo.flow(t).mpc;
total_cost = sum(totcost(mpc.gencost, mpc.gen(:, PG)));
However, I found the total cost is much less than my expectation. Then I 
compared mdo.flow(t).mpc.gencost and mpc.gencost and found all the constant 
terms (in my case, cost curves are quadratic and last column defines the 
constant term) are zero in the previous matrix, which is different from the 
base case mpc structure. I’m wondering what causes the issue.

b)      Previously, from the example cases (ex_load_profile), I’ve learned how 
to assign the time series load profile for each area/load zone. Now, I would 
like to assign specific time series load profile for each bus and cannot find 
an example doing so. I’m wondering whether there is a way to do that. 
Otherwise, I may use the naïve method: making the #area/#load zone the same as 
the #bus, so that I could assign the load profile in the old way.

Thanks for the help!

Best,
Bainan


Reply via email to