Ask Your Question
0

Line closure distribution factor-PSS/E

asked 2018-10-30 03:17:36 -0500

Eddiewen gravatar image

Does anyone know PSS/E can calculate Line closure distribution factor(LCDF) or Line outage distribution factor(LODF)? or how can use OTDF to transfer? Thanks!

edit retag flag offensive close merge delete

2 answers

Sort by ยป oldest newest most voted
0

answered 2018-10-30 09:24:01 -0500

jconto gravatar image

A good discussion about these linear factors can be found at "https://www.powerworld.com/files/TrainingI11LinearAnalysis.pdf"

does someone have a related python code, besides the "sensitivity_factors.py" posted at the example folder?

edit flag offensive delete link more
0

answered 2018-10-30 15:53:50 -0500

knucklehead gravatar image

I have found that looping through the contingencies in the .acc file, then looping through the branches for each contingency, then comparing to the "BASE CASE" contingency is the best approach. if you find that one of the distribution factors satisfies some criteria, then you can do what you like with the branch, outage, flow, df, information. (version 34) Here is a snippet that effectively does this. 3phaseee.com

# -- GET CONTINGENCY LABELS, BRANCHES AND BUSES FROM SUMMARY ------------------------------
accobject = arrbox.accc_pp.CONTINGENCY_PP(n1accfnames[j])
accsummary = accobject.summary()
conlabels = accsummary.colabel
branches = list(accsummary.melement)
buses = list(accsummary.mvbuslabel)

# -- GET N-0 RESULTS ----------------------------------------------------------------------
n0results = accobject.solution('BASE CASE')
n0volts = n0results.volts
n0flows = list(n0results.ampflow)

# -----------------------------------------------------------------------------------------
# -- CHECK N-1 RESULTS FOR IMPACTED BUSES AND BRANCHES ------------------------------------
# -----------------------------------------------------------------------------------------
for prilabel in conlabels[1:]:
    results = accobject.solution(prilabel)
    pridesc = list(results.codesc)
    n1volts = results.volts
    n1flows = list(results.ampflow)

    if not results.cnvflag: continue
    for f in range(len(branches)):
        getcon = False
        if n1flows[f] == 0.0:
            continue
        df = abs((n1flows[f] - n0flows[f]) / n0flows[f])
        if df > screenDF:
            getcon = True
        if not getcon:
            getcon = True in [abs(n1volts[v] - n0volts[v]) > screenVF for v in range(len(buses))]
        if getcon:   ....................
edit flag offensive delete link more

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

1 follower

Stats

Asked: 2018-10-30 03:17:36 -0500

Seen: 738 times

Last updated: Oct 30 '18