e2nIEE / pandapower

Convenient Power System Modelling and Analysis based on PYPOWER and pandas
https://www.pandapower.org
Other
883 stars 484 forks source link

Integrate TDPF in overall FACTS structure #2328

Open rbolgaryn opened 4 months ago

rbolgaryn commented 4 months ago

Feature Checklist

Issue

        J = create_jacobian_matrix(Ybus+Ybus_ssc_not_controllable+Ybus_vsc_not_controllable, V, ref, refpvpq, pvpq, pq, createJ, pvpq_lookup, nref, npv, npq, numba, slack_weights, dist_slack)

        # if tdpf:
        #     # p.u. values for T, a1, a2, I, S
        #     # todo: distributed_slack works fine if sn_mva is rather high (e.g. 1000), otherwise no convergence. Why?
        #     J = create_J_tdpf(branch, tdpf_lines, alpha_pu, r_ref_pu, refpvpq if dist_slack else pvpq, pq, pvpq_lookup,
        #                       pq_lookup, tau, tdpf_delay_s, Vm, Va, r_theta_pu, J, r, x, g)

        if any_facts_controllable or tdpf:
            K_J = vstack([eye(J.shape[0], format="csr"),
                          csr_matrix((num_facts_controllable + len(tdpf_lines), J.shape[0]))], format="csr")
            J = K_J * J * K_J.T  # this extends the J matrix with 0-rows and 0-columns
        if tdpf:
            J_m_tdpf = create_J_tdpf(branch, tdpf_lines, alpha_pu, r_ref_pu, refpvpq if dist_slack else pvpq, pq, pvpq_lookup,
                              pq_lookup, tau, tdpf_delay_s, Vm, Va, r_theta_pu, J, r, x, g)
            J = J + J_m_tdpf
        if any_svc:
            J_m_svc = create_J_modification_svc(J, svc_buses, refpvpq if dist_slack else pvpq, pq, pq_lookup, Vm,
                                                x_control_svc, svc_x_l_pu, svc_x_cvar_pu, num_svc_controllable,
                                                svc_controllable)
            J = J + J_m_svc

Label

vogt31337 commented 3 days ago

@jwiemer112 is this done? And can the issue be closed?