Language & Conventions

Generally, variables are miniscule (e.g. u, i, ω) and parameters are capitalized (e.g. H, D, P, Ω). As it is common to use greek letters for modeling equations and Julia supports Unicode, greek letters are used within the Code, e.g. Ω and ω in PowerDynamics.SwingEq. If you don't want to use greek keyboard (which I am currently switching to) you can simply type the latex representating \Omega and Atom can complete it with Ω using Tab.

List of symbols and corresponding names

Symbol (Code)Symbol (Math)Name within PowerDynamics.jlCommon alternative names
nodebus, vertex
gridnetwork, power grid, power network
$y_{ab} = y_{ba}$admittance between nodes $a$ and $b$
LY$Y^L$admittance laplacian(nodal) admittance matrix
t$t$time
im$j$imaginary element$\sqrt{-1}$
u = v \cdot exp(im*φ)$u = v \cdot e^{jφ}$complex voltage
v$v$voltage magnitudeabsolute voltage
φ$\phi$voltage angle
i_c = i \cdot exp(im*δ)$i_c = i \cdot e^{j\delta}$nodal complex current
i$i$magnitude of the current
δ$\delta$angle of the current
s = p + im*q$s = p + jq$complex power
p$p$real poweractive power
q$q$imaginary powerreactive power

List of modeling conventions

  • Counting of nodes starts at 1.

  • Ranges of nodes are mathematical, i.e. they include the first and the last element. For example $\sum_{k=3}^6$ sums over $3$, $4$, $5$, and $6$.

  • For now, no selfadmittance is allowed, i.e. $y_{aa} = 0$ for all nodes $a$.

  • The admittance laplacian uses the following definition (convention from wikipedia)

    \[Y^L_{ab} = \begin{cases} \sum_{c} y_{ac} & \text{if } a=b, \\ -y_{ab} & \text{otherwise.} \end{cases}\]

  • The nodal complex current is calculated as

    \[{i_c}_a = \sum_{b} LY_{ab} u_b .\]

  • The complex power is calculated as (with $^*$ as complex conjugation)

    \[s_a = u_a \cdot {i_c}_a^*.\]