Exemplo n.º 1
0
def test_PTDF():
    net = nw.case9()
    pp.rundcpp(net)
    _, ppci = _pd2ppc(net)

    ptdf = makePTDF(ppci["baseMVA"],
                    ppci["bus"],
                    ppci["branch"],
                    using_sparse_solver=False)
    _ = makePTDF(ppci["baseMVA"],
                 ppci["bus"],
                 ppci["branch"],
                 result_side=1,
                 using_sparse_solver=False)
    ptdf_sparse = makePTDF(ppci["baseMVA"],
                           ppci["bus"],
                           ppci["branch"],
                           using_sparse_solver=True)

    if not np.allclose(ptdf, ptdf_sparse):
        raise AssertionError(
            "Sparse PTDF has differenct result against dense PTDF")
    if not ptdf.shape == (ppci["bus"].shape[0], ppci["branch"].shape[0]):
        raise AssertionError("PTDF has wrong dimension")
    if not np.all(~np.isnan(ptdf)):
        raise AssertionError("PTDF has NaN value")
Exemplo n.º 2
0
def test_LODF():
    net = nw.case9()
    pp.rundcpp(net)
    _, ppci = _pd2ppc(net)

    ptdf = makePTDF(ppci["baseMVA"], ppci["bus"], ppci["branch"])
    lodf = makeLODF(ppci["branch"], ptdf)
    if not lodf.shape == (ppci["branch"].shape[0], ppci["branch"].shape[0]):
        raise AssertionError("LODF has wrong dimension")
Exemplo n.º 3
0
def make_GSF(ppn, verify=True, using_sparse_solver=False):
    """
    Build the Generation Shift Factor matrix of a pandapower net.

    Parameters
    ----------
    ppn : pandapower.network.Network
        Pandapower network
    verify : bool
        True to verify the GSF with that from DC power flow
    using_sparse_solver : bool
        True to use a sparse solver for pandapower maktPTDF

    Returns
    -------
    np.ndarray
        The GSF array
    """

    from pandapower.pypower.makePTDF import makePTDF
    from pandapower.pd2ppc import _pd2ppc

    # --- run DCPF ---
    pp.rundcpp(ppn)

    # --- compute PTDF ---
    _, ppci = _pd2ppc(ppn)
    ptdf = makePTDF(ppci["baseMVA"],
                    ppci["bus"],
                    ppci["branch"],
                    using_sparse_solver=using_sparse_solver)

    # --- get the gsf ---
    line_size = ppn.line.shape[0]
    gsf = ptdf[0:line_size, :]

    if verify:
        _verifyGSF(ppn, gsf)

    return gsf