I chose to use complex matrix methods to form Ybus and the matrices of derivatives because Matlab is much faster at matrix manipulation than at executing loops (or at least it used to be). In the end, MATPOWER ends up computing all of the same values, just using complex matrices rather than real scalar formulae.
For details on the derivations of the matrix forms of the derivatives, see the MATPOWER Technical Note 2, AC Power Flows, Generalized OPF Costs and their Derivatives using Complex Matrix Notation, referenced in the Documentation section of the MATPOWER home page. -- Ray Zimmerman Senior Research Associate B30 Warren Hall, Cornell University, Ithaca, NY 14853 phone: (607) 255-9645 On Nov 10, 2013, at 5:27 PM, GengXinbo <[email protected]> wrote: > Hi, I'm reading matpower source code these days, and find the calculation > method of Y matrix in AC power flow is very different from what I learnt from > textbooks. > > According to the manual and paper on IEEE transactions on power systems, in > matpower, the method is: > Build matrices $C_f$ and $C_t$, $Y_{ff}$, $Y_{ft}$, $Y_{tf}$, $Y_{tt}$, and > then use: > Y_f = [Y_{ff}]*C_f + [Y_{ft}]*C_t > Y_t = [Y_{tf}]*C_f + [Y_{tt}]*C_t > Y_{bus} = (C_f)T*Y_f + (C_t)T*Y_t + [Y_{sh}] > to calculate $Y_{bus}$. > > This method is clear and easy to use when programming in matlab (in matrix > form). But I have questions about this method: > 1. Why did Dr.Ray Zimmerman choose this method to calculate AC pwoer flow? > (Hope Dr.Zimmerman could answer me this question :) > 2. Is there any theoretical background knowledge about this method? > 3. Also, I find in dSbus_dV.m, Dr.Zimmerman used matrix form to calculate > dP/d|V| , dP/dδ,dQ/d|V| , dQ/dδ. It's amazing and I wonder if there is > theoretical background knowledge about it. > > Thank you!
