Ask Your Question

Will that possible to adjust generator dispatch levels inside ACCC?

asked 2014-08-19 11:23:14 -0600

ypwang gravatar image


I guess my question is flawed. Apparently, there is no parameter in ACCC module that can adjust generator dispatch levels for me. You may ask why not adjust the generator levels before running a ACCC instead of interfering the ACCC process. Good question. Basically, I want to perform the following steps: 1) Create a generator contingency 2) Adjust the other online generators proportionally to compensate the generation of the lost generator 3) run a power flow

Obviously (correct me if I am mistaken), without step 2), this process is purely what ACCC does for one of its contingency.

The reason why I add step 2) is because, without any adjustment, there is a clear imbalance between generation and load so PSEE frequently reports "no solution: blown up".

I would like to search a solution based ACCC, due to the following two reasons: (1) I could not find a API that can create a single generator (or branch) contingency for the final purpose of running power flow after that created contingency. I know one module called "dist_branch_trip" that can only used in a dynamic simulation case, which I assume is different from running power flow. Please correct me if I am wrong.

(2)To my best knowledge, PSS\E doesn't provide result retrieval modules for regular power flow solution as it does for ACCC (ie. pssarrays.accc_solution). I post this question just with a hope that some very skilled PSS\E python users can give me a hint how to work around this problem.

P.S. I would like to state my understand of ACCC procedure even though this might not closely related to my question itself. I suppose that what ACCC basically does is that it first disable the element(s) (either branch or generator) as you describe in one of your contingency list specified in .con file, then run a regular power flow, then reset those just disabled elements back to their normal state, and then it continues to process the next defined contingency if there is any. Correct me if I am wrong.

Thanks so much!

edit retag flag offensive close merge delete

2 answers

Sort by » oldest newest most voted

answered 2014-08-20 02:39:03 -0600

rimux gravatar image

updated 2014-08-20 02:43:58 -0600

I think that after tripping of one generator during ACCC process generation from lost generator would be replaced by increased generation from swing bus, so balance between generation and load in the whole system will be correct and you should not get "blown up" type problem. One fast solution I can propose to you is to try to set up swing bus (type 3 instead of 2) that it should be or the biggest unit in your system or some big hydro unit used to be fast reserve source in your system. You can have many swing buses in the system, e.g. one per area.

How to change production from all generators proportionally during ACCC process I didn't try to do by myself, but maybe you should start to investigate if it is possible not from analyzing API commands in python but trying to do this directly in PSS/E. In ACCC dialog window I see option ''Dispatch mode" and it has options "Subsystem machines (Reserve)" and "Subsystem machines (Pmax)". Maybe this is what you are looking for. From documentation I found description for e.g. "Pmax" option as following:

Participating machines are connected to dispatch subsystem buses and have positive active power generation. Each machine's participation factor is its maximum active power generation with positive values. If a Unit Inertia and Governor Data file is specified, maximum machine active power limits are taken from it; otherwise, the maximum machine active power limits in the working case are used. PT is adjusted by the rules discussed in Dispatch Mode of Machine Reserve.

So you should go and dig deeper and find in documentation about format of Unit Inertia and Governor Data file mentioned before. If you will find that it works, than in python you will need probably acccwithdsp_3 (for PSSE 33) command.

edit flag offensive delete link more


Rimux, many many thanks for taking time to answer my question in such in-depth way. I am restricted to use the way of changing the other generators production proportionally. You suggestion sounds very helpful. I will keep you updated after I find anything interesting following your path.

ypwang gravatar imageypwang ( 2014-08-20 09:35:47 -0600 )edit

If I read the options of "accc_with_dsp" carefully enough, I should not have overlooked the option of dispatch mode. Thanks very much again for pointing this out. If I knew that before, I would ask "how to make use of either unit inertia or governor dispatch to adjust generation proportionally?"

ypwang gravatar imageypwang ( 2014-08-20 12:29:26 -0600 )edit

I examined both "unit inertia" and "governor dispatch" options. A small example on P429 of POM.pdf showed that inertia will set generators' new dispatch even higher than the Pmax, but governor dispatch somehow can lead to reasonable results kind of proportionally to available capacity of generators.

ypwang gravatar imageypwang ( 2014-08-20 12:35:05 -0600 )edit

It seems that "unit inertia" only depends on the Machine inertia, which can be purely user-defined. I am not sure if my .raw data will contain this parameter. But since it can be set to any number around 4. I wonder how to relate the inertia values to the remaining capacity of each machine.

ypwang gravatar imageypwang ( 2014-08-20 12:50:46 -0600 )edit

answered 2014-08-20 20:00:23 -0600

ypwang gravatar image

I tried to use "ACCC_WITH_DSP_2" to allow unit inertia dispatch to compensate a lost generator (in .con file, I created 4 N-1 generator contingency). Note that somehow "ACCC_WITH_DSP_3" doesn't seem to work, since I got no print-outs for some of "print" commands after "ACCC_WITH_DSP_3" procedure, while everything was fine for version 2. I have no idea why this happened to me. But anyway, one thing I would like to confirm here is to check both before-ACCC and after-ACCC dispatch levels so that I know what exact changes occurred to each online generator. You know, to check this change, we can perform N-R power flow solution with inertia /governor dispatch using API called "INLF_2". However, I don't know to outage a machine in python before running "INLF_2". Well, based on my need, running "ACCC_WITH_DSP_2" with dispatch mode on would be a perfect choice for me. But the problem with "ACCC_WITH_DSP_2" with dispatch mode is that it does not provide me the new re-dispatched levels for online generators (maybe yes, but so far I haven't found any option in "ACCC_SOLUTION" can provide this info). After finish running "ACCC_WITH_DSP_2", I used "psspy.amachcplx(0, 4, 'PQGEN')" to fetch the current dispatch level of each generator to see if any changes occurred at least for the very last one-generator contingency I specified in the .con file fed into "ACCC_WITH_DSP_2". But no changes at all compared to the original base case generator levels. My guess is that between each contingency processed by "ACCC_WITH_DSP_2"',"ACCCWITHDSP_2"' automatically reset the "new" dispatched levels back to the original working case so that the next machine contingency can start from the same base point.

From the output of "ACCC_WITH_DSP_2"'s process, I noticed that every contingency actually had a generation dispatch amount either equal to or close to the real power of lost generator. So I am sure the ACCC with dispatch mode actually worked properly.

edit flag offensive delete link more


Try "ACCC_parallel" instead of "ACCC_with_dsp_2" if you want to take advantage of the multiple core-processor, which will make your running time shorter especially when you try a large instance.

ypwang gravatar imageypwang ( 2014-08-20 20:02:41 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

[hide preview]

Question Tools


Asked: 2014-08-19 11:23:14 -0600

Seen: 1,192 times

Last updated: Aug 20 '14