Learning Topology of Distribution Grids using only Terminal Node Measurements
Distribution grids include medium and low voltage lines that are involved in the delivery of electricity from substation to end-users/loads. A distribution grid is operated in a radial/tree-like structure, determined by switching on or off lines from an underling loopy graph. Due to the presence of limited real-time measurements, the critical problem of fast estimation of the radial grid structure is not straightforward. This paper presents a new learning algorithm that uses measurements only at the terminal or leaf nodes in the distribution grid to estimate its radial structure. The algorithm is based on results involving voltages of node triplets that arise due to the radial structure. The polynomial computational complexity of the algorithm is presented along with a detailed analysis of its working. The most significant contribution of the approach is that it is able to learn the structure in certain cases where available measurements are confined to only half of the nodes. This represents learning under minimum permissible observability. Performance of the proposed approach in learning structure is demonstrated by experiments on test radial distribution grids.
The power grid is operationally divided hierarchically into transmission and distribution grids. While the transmission grid connects the generators and includes high voltage lines, the distribution grid comprises of medium and low voltage lines that connect the distribution substation to the end users/loads. Aside from low voltages, distribution grids are structurally distinguished from the transmission side by their operational radial structure. A distribution grid is operated as a tree with a substation placed at the root node/bus that is connected via intermediate nodes and lines to the terminal end nodes/households. This radial operational structure is derived from an underlying loopy network by switching on and off some of the lines (network edges) . The specific structure may be changed from one radial configuration to another, by reversing the switch statuses. Fig. 1 presents an illustrative example of a radial distribution grid derived from an underlying graph.
Historically, the distribution grid has had limited presence of real time devices on the lines, buses and feeders . Due to this, real-time monitoring of the operating radial structure and the states of the resident buses on the distribution side is not straightforward. These estimation problems, previously neglected, have become of critical importance due to introduction of new devices like batteries and electric vehicles, and intermittent generation resources like rooftop solar panels. Optimal control in today’s distribution grid requires fast topology and state estimation, often from limited real-time measurements. In this context, it needs to be mentioned that smart meters, micro-PMUs , frequency measurements devices (FNETs) and advanced sensors (internet-of-things) capable of reporting real-time measurements are being deployed on the distribution side. However, in the current scenario, such devices are often limited to households/terminal nodes as their primary purpose for installation is services like price controllable demand and load monitoring. A majority of the intermediate lines and buses that connect the distribution substation to the terminal nodes do not have real-time measurement devices and are thus unobserved in terms of their structure and state. This hiders real-time topology and state estimation.
This paper is aimed at developing a learning framework that is able to overcome the lack of measurements at the intermediate nodes. Specifically, the primary goal of our work is to propose an algorithm to learn the operating radial topology using only real-time voltage magnitude measurements from the terminal nodes. The reliance only on measurements from terminal nodes is crucial as it makes our work applicable to realistic deployment of smart devices in today’s distribution grids. Further, our learning algorithm is able to tolerate a much higher fraction of missing nodes (with unavailable data) compared to prior work in this area. Our approach is based on provable relations in voltage magnitudes of triplets and pairs of terminal nodes that are used to discover the operational edges iteratively. Computationally, the algorithm has polynomial complexity in the number of nodes in the system.
I-a Prior Work
Topology learning in radial distribution grids has received attention in recent times. Learning techniques in this area vary, primarily based on the operating conditions and measurements available for estimation. The authors of  use a Markov random field model for nodal phases to identify faults in the grids.  uses conditional independence tests to identify the grid topology in radial grids.  uses signs of elements in the inverse covariance matrix of nodal voltages to learn the operational topology. Signature/enevelope based identification of topology changes is proposed in . Such comparison based schemes are used for parameter estimation in [9, 10]. In contrast with nodal voltage measurements, line flow measurements are used in a maximum likelihood based scheme for topology estimation in . In previous work [1, 12], authors have analyzed topology learning schemes that rely on trends in second moments of nodal voltage magnitudes. Further, a spanning tree based topology learning algorithm is proposed in . This line of work [1, 12, 13] is close in spirit to machine learning schemes [14, 15] developed to learn the structure of general probabilistic graphical models . A major limitation of the cited literature is that they assume measurement collection at most, if not all, nodes in the system. To the best of our knowledge, work that discuss learning in the presence of missing/unobserved nodes [12, 13] assume missing nodes to be separated by greater than two hops in the grid. As discussed earlier, distribution grids often have real-time meters only at terminal nodes and none at intermediate nodes that may be adjacent (one hop away).
I-B Contribution of This Work
In this paper, we discuss topology learning in the radial distribution grid when measurements are limited to real-time voltage readings at the terminal nodes (end-users) alone. All intermediate nodes are unobserved and hence assumed to be missing nodes. We analyze voltages in the distribution grid using a linear lossless AC power flow model [1, 12] that is analogous to the popular [17, 18] LinDistFlow equations. For uncorrelated fluctuations of nodal power consumption, we construct functions of voltage magnitudes at a pair or triple of terminal nodes such that their values depend on the edges that connect the group of nodes. These functions provide the necessary tool to develop our learning scheme that iteratively identifies operational edges from the leaf onward to the substation root node. We discuss the computational complexity of the learning scheme and show that it is a third order polynomial in the number of nodes. In comparison to existing work, our approach is able to learn the topology and thereby estimate usage statistics in the presence of much greater fraction of missing/unobserved nodes. In fact, in limiting configurations, our learning algorithm is able to determine the true structure and statistics even when half of the nodes are unobserved/missing. We demonstrate the performance of our algorithm through experiments on test distribution grids.
The rest of the manuscript is organized as follows. Section II introduces notations used in the paper and describes the grid topology and power flow models used for analysis in later sections. Section III mentions assumptions made and describes important properties involving voltage measurements at terminal nodes. Our algorithm to learn the operating radial structure of the grid is discussed in Section IV with detailed examples. We detail the computational complexity of the algorithm in Section V. Simulation results of our learning algorithm on test radial networks are presented in Section VI. Finally, Section VII contains conclusions and discussion of future work.
Ii Distribution Grid: Structure and Power Flows
Radial Structure: We denote the underlying graph of the distribution grid by the graph , where is the set of buses/nodes and is the set of all undirected lines/edges. We term nodes by alphabets (, ,…). An edge between nodes and is denoted by . An illustrative example is given in Fig. 1. The operational grid consisting of one tree with nodes and operational edge set as shown in Fig. 1. Our results are immediately extended to the case . In tree , denote the set of edges in the unique path from node to the root node (reference bus). A node is called a descendant of node if the path from node to the root passes through , i.e., . We use to denote the set of descendants of and include node in by definition. If edge and is a descendant of , we term as parent and as its child node. Further, as discussed in the Introduction, terminal nodes/leaf nodes in the tree represent end-users or households that are assumed to be equipped with real-time nodal meters. The remaining intermediate nodes (not terminal nodes) are not observed and hence termed as missing nodes. These definitions are illustrated in Fig 1. Next we describe the notation used in the power flow equations.
Power Flow Models: We use to denote the complex impedances of line () where and represent the line resistance and reactance respectively. Let real valued scalars, , , and denote the voltage magnitude, voltage phase, active and reactive power injection respectively at node . At each node , Kirchhoff’s law of power flow relate them as follows:
Note that Eq. (1) is nonlinear and non-convex. Under realistic assumption that losses of both active and reactive power losses on each line of tree is small, we can neglect second order terms in Eq. (1) to achieve the following linearized form [1, 12, 7]:
As shown in , Eqs. (2),(3) are equivalent to the LinDistFlow equations for power flow in distribution grid [17, 18, 19], when deviations in voltage magnitude are assumed to be small. Similar to LinDistFlow model, Eqs. (2),(3) are lossless with sum power equal to zero (). Further, note that both active and reactive power injections are functions of difference in voltage magnitudes and phases of neighboring nodes. Thus, the analysis of the system can be reduced by one node termed as reference node with voltage magnitude and phase at all other nodes being measured relative to this node. In our case, we take the substation/root node as the reference node with voltage magnitude and phase respectively. The reference node’s injection also balances the power injections in the remaining network. Inverting Eqs. (2),(3) for the reduced system (without the reference node), we express voltages as a function of nodal power injections in the following vector form:
We term this as the Linear Coupled Power Flow (LC-PF) model where , , and are the vectors of real power, reactive power injections, voltage magnitudes and phase angles respectively at the non-substation nodes. and are the reduced weighted Laplacian matrices for tree where reciprocal of resistances and reactances are used respectively as edge weights. The reduction is achieved by removing the row and column corresponding to the reference bus in the original weighted Laplacian matrix. We denote the mean of a random vector by . For two random vectors and , the covariance matrix is denoted by . Using Eq. (5), we can relate the means and covariances of voltage magnitudes with those of active and reactive injection as follows:
Using these statistical quantities, we discuss useful identities that arise in radial distribution grids in the next section that form the basis of our learning algorithms.
Iii Properties of Voltage Magnitudes in Radial Grids
First, we make the following assumption regarding statistics of power injections at the non-substation grid nodes, under which our results hold.
Assumption : Fluctuations of active and reactive powers at different nodes are uncorrelated. Thus, non-substation nodes, .
As considered in prior literature [7, 12], this assumption is reasonable over short time-intervals where fluctuations in nodal power usage at households/terminal nodes are independent and hence uncorrelated. Intermediate nodes that do not represent end-users are uncorrelated if they have independent usage patterns. Specifically, for intermediate nodes involved in separation of power into downstream lines and without any major nodal usage, the net power injection is contributed by leakage or device losses and hence uncorrelated from the rest. Note that Assumption does not specify the class of distributions that can model individual node’s power injection. It is applicable when nodal injections are negative (loads), positive (due to local generation) or a mixture of both. In future work, we will relax this assumption and discuss learning in the presence of positively correlated end-user injection profiles.
Next, we mention an analytical statement relating the inverse of the reduced Laplacian matrix for a radial graph that we use in our later results.
In other words, the entry in is equal to the sum of line resistances of edges common to paths from node and to the root. For example, in Fig. 1, . Using Eq. (8) it follows immediately that if node is the parent of node , then
Next, consider the function defined over two nodes and as . represents the variance of the difference in voltage magnitudes at nodes and . Using Eq. (7) we can write in terms of power injection statistics in tree as follows
Let node be the parent of nodes and in such that and are operational edges (see Fig. 2). Then
Observe Lemma 1. As and are operational edges, the only nodes such that are either descendants of (set ) or of (set ). Further and are disjoint. When , , while when , . Using this in the formula for in Eq. (11) gives us the relation. The equality is verified by plugging values in Eq. (11) for , and . ∎
A few points are in order. First, note that the only operational lines whose impedances appear on the right side of Eq. (12) are and . For the special case where and are terminal nodes with parent , the relation reduces to the following:
If the covariance of injections at and are known, the above condition can be checked for each potential parent node ‘’ in linear time to identify the true parent. Second, the equality in Eq. (13) is true only when . It is replaced by a strict inequality for other configurations that we omit discussing as they are outside the scope of our learning conditions. The next theorem gives a result that relates the voltages at three terminal nodes.
Let terminal nodes and have common parent node . Let be another terminal node such that and for some intermediate node (see Fig. 2). Let and denote the sum of resistance and reactance respectively on lines on the path from node to node , i.e., , . Define , etc. in the same way. Then
As and are terminal nodes with same parent , for each node , the paths from , and to the root follow . Using Lemma 1, we thus have , and
As and are descendants of node and ,
where etc. are defined in the statement of the theorem. Similar relations can be written for terms as well. We now expand and using Eq. (11). Using Eq. (16,18,19) in the expression for gives Eq. (15). ∎
Observe that the lines whose impedances appear on the right side of Eq. (15) are and the ones on the path from node to . If this path is known till the penultimate node before (see Fig. 2), then Eq. (15) can be used to learn edge through a linear search among candidate nodes for . In the next section, we discuss the use of this relation to learn the path from terminal pairs with common parent (here and ) to the root iteratively. Further, note that the value of is independent of injections at intermediate nodes and at terminal node as long as is a descendant of . Thus, Eq. (15) only helps identify ’s relative position in the graph with respect to . As shown in the next section, we are able to locate ’s parent using a post-order node traversal  in the grid graph.
Iv Algorithm to learn topology using terminal node measurements
Using the relations described in the previous section, we discuss our algorithm to learn the operational topology of the radial distribution grid. As mentioned in the Introduction, voltage measurements are available only at the terminal/leaf nodes. The observer also has access to power injection statistics (variances) at the terminal nodes. These statistics are either known from historical data or computed empirically from power injection measurements collected at the terminal nodes. All intermediate nodes are missing and their voltage measurements and injection statistics are not observed/available. Further, we assume that impedances of all lines (open or operational) in for the underlying loopy graph are available as input. The task of the learning algorithm is to identify the set of operational edges in the radial grid . The substation root node in tree is assumed to be connected to a single intermediate node. Otherwise each sub-tree connected to the substation node can be considered as a disjoint tree. First, we make the following restriction regarding the degree of missing intermediate nodes.
Assumption 2: All missing intermediate nodes are assumed to have a degree greater than .
This assumption is necessary as without it, the solution to the topology learning problem will not be unique. As an example, consider the test distribution grid given in Fig. 3 where the path from leaf node to node passes through two intermediate nodes and of degree each. Both configuration (operations edges ) and configuration (operations edges ) are feasible operational topologies if voltage and power injection measurements are available only at the terminal node . In other words, different values of injection covariances at nodes and can be taken such that relations between voltage and injections are satisfied in either configuration. Similar assumptions for uniqueness in learning general graphical models are mentioned in . For radial configurations that respect Assumption , Algorithm learns the topology using measurements of voltage magnitudes and information of injection statistics at terminal nodes.
Working: Algorithm learns the structure of operational tree iteratively from leaf node pairs up to the root. Set represents the current set of terminal nodes/leaves with unknown parents, while set represents the set of all missing intermediate nodes. Note that for each node , denotes its identified parent while denotes a set of two leaf nodes that are its descendants. represents the empty set. The two sets ( and ) are used to keep track of the current stage of the learnt graph. There are three major stages in the edge learning process in Algorithm .
First, we build edges between leaf nodes pairs to their common missing parent node in Steps 3 to 6. Here the relation for derived in Theorem 1 and Eq. (14) is used to identify the true missing parent in set . Note that only parents with two or more leaf nodes as children can be identified at this stage. Parents that have at most one leaf node as child (other children being missing intermediate nodes) are not identified by this check.
Second, we remove nodes with discovered parents from the set of leaf nodes then iteratively learn the edges between intermediate nodes in Steps 10 to 24. At each stage of the iteration, denotes the set of intermediate nodes with unknown parents whose descendants () were discovered in the previous iteration, while denotes the set of all intermediate nodes with unknown parent () and known descendants. Clearly . The parent of each node in is identified by using relation Eq. (15) in Theorem 2 for its descendants and . There are two cases considered for candidate parent : (A) belongs to and has known descendant (Step 15), and (B) belongs to and has no discovered descendant (Step 18). For the second case, the algorithm tries to find some leaf node that is potentially an undiscovered descendant of by checking for the relation specified in Eq. (15). If the relation holds, node is denoted as the parent of . As it is not clear if leaf is an immediate descendant (child) of , no edge to is added. The iterations culminate when no additional edge between intermediate nodes is discovered.
Third, in Steps 29 to 36, the parents of the remaining leaf nodes in are identified. Note that Eq. (15) also holds for non-immediate descendant of , hence it cannot be used directly to identify ’s location. To overcome this, for each in , we first check at descendants of before . This is ensured by creating a post-order traversal list  in Step 28. In post-order traversal , each potential parent is reached only after all its descendants have been reached. The node which satisfies Eq. (15) in Step 32 now gives the true parent of leaf . The algorithm terminates after searching for all leaves in .
Note: Empirically computed second moments of voltages may differ from their true values and hence may not satisfy relations from Theorems 1 and 2 exactly. Hence we use tolerances and to check the correctness of Eq. (14) and Eq. (15) respectively in Algorithm . We defer the selection of optimal thresholds to future work.
We discuss the operation of Algorithm through a test example given in Fig. 4. As described in the previous paragraph, in the first step, the common parents of leaf node pairs are discovered. In the next step, edges between intermediate nodes are discovered iteratively. Finally, positions of leaf nodes that do not have common parent with any other leaf node are located by a post-order traversal and then the substation connects to the node with no parent.
V Computational Complexity and Performance
Consider the original loopy graph to be complete (all node pairs belong to ). We compute the computational complexity of operational tree in terms of the number of nodes .
Algorithm Complexity: To measure the computational complexity, we focus on the iteration steps. Let the number of leaves in tree be . Detecting edges between leaf pairs and their common parent (Steps 3 to 6) takes comparisons, which takes the form in the worst case. Next we analyze the complexity of identifying edges between intermediate nodes. Let the number of ‘new’ intermediate nodes with unknown parents (set ) in each iteration of (Steps 10 to 24) be . Each ‘new’ node is compared with the set of all intermediate nodes with unknown parents () first. As addition of a ‘new’ node leads to removal of its children () from , the size of never increases more than its initial value () giving this step a worst case complexity of . Comparison of nodes in with missing nodes in and leaf nodes in (Step 18) has worst case complexity . Using as and , the computational complexity of all iterations in Steps 10 to 24 is thus . Finally composing the post-order tree traversal and checking at node location () for each leaf () has complexity less than or equal to . The overall complexity of the algorithm is thus .
Maximum Missing Node Fraction: Consider the two radial graphs given in Fig. 5 that satisfy the condition in Assumption . The first is a binary tree of depth . All nodes till depth are missing. The second graph has the structure of a line graph with one additional leaf node connected to each intermediate node on the line. In either graph, as the number of nodes increases, the fraction of missing nodes increases to . In other words, configurations exist such that Algorithm is able to learn the grid structure with approximately half the nodes missing/unobserved.
This is crucial because fraction of missing nodes represents the threshold beyond which state estimation is not possible even in the presence of knowledge of the operational topology. This is because the LC-PF Eqs. (4) cannot be solved if less than half the nodes are observed.
Here we demonstrate performance of Algorithm . We consider a radial network [23, 24] (Fig. 6) with nodes and one substation. Out of those nodes, are terminal/leaf nodes while are intermediate nodes which are missing. In each of our simulation runs, we construct complex power injection samples at the non-substation nodes from a multivariate Gaussian distribution that is uncorrelated between different nodes as per Assumption . Next we use LC-PF Eqs. (5) to generate nodal voltage magnitude measurements. To understand the performance of our algorithm, we introduce additional edges (at random) to construct the loopy edge set . The additional edges are given impedances comparable to those of operational lines. The input to the observer consists of voltage magnitude measurements and injection statistics at the terminal nodes and impedances of all the lines within the loopy edge set . The average fraction errors (number of errors/size of the operational edge set) in reconstructing the grid structure is shown in Fig. 7 for different sizes of terminal voltage magnitude measurements used. Different curves in the plot depict different values of tolerances and to check the correctness of Eq. (14) and Eq. (15) in Algorithm . Note that the average fractional errors decreases steadily with increase in the number of measurements as empirical second moment statistics used in Algorithm get more accurate. The values of tolerance to achieve the most accurate results are selected manually. We plan to develop a theoretical selection of the optimal tolerance values in future work.
Topology learning is an important problem in distribution grids as it influences several other control and managements applications that form part of the smart grid. The learning problem is complicated by the low placement of real-time measurements in the distribution grid, primarily being placed at terminal nodes that represent end-users or households. In this paper, we study the problem of learning the operational radial structure from a dense underlying loopy grid graph in this realistic regime where only terminal node (end-user) voltage measurements and injection statistics are available as input and all other nodes are unobserved/missing. We use a linear-coupled power flow model and show that voltages terminal node pairs and triplets satisfy relations that depend on their individual injection statistics and impedances on the lines connecting them. We use these properties to propose a learning algorithm that iteratively learns the grid structure from the leaves onward towards the substation root. We show that the algorithm has polynomial time complexity comparable to existing work, despite being capable of tolerating much greater and realistic fraction of missing nodes. For specific cases, this algorithm is capable of learning the structure with unobserved nodes, beyond which state estimation is not possible even in the presence of topology information. We demonstrate performance of the learning algorithm through experiments on distribution grid test case. Computing the sample complexity of the learning algorithm and optimizing the selection of tolerance values based on the number of samples are directions of our future research in this area. Further, we plan to expand this learning regime to cases with correlated injections.
-  D. Deka, S. Backhaus, and M. Chertkov, “Structure learning and statistical estimation in distribution networks - part i,” arXiv preprint arXiv:1501.04131, 2015.
-  R. Hoffman, “Practical state estimation for electric distribution networks,” in Power Systems Conference and Exposition, 2006. PSCE’06. 2006 IEEE PES. IEEE, 2006, pp. 510–517.
-  A. von Meier, D. Culler, A. McEachern, and R. Arghandeh, “Micro-synchrophasors for distribution systems,” in Innovative Smart Grid Technologies Conference (ISGT). IEEE, 2014, pp. 1–5.
-  Z. Zhong, C. Xu, B. J. Billian, L. Zhang, S.-J. S. Tsai, R. W. Conners, V. A. Centeno, A. G. Phadke, and Y. Liu, “Power system frequency monitoring network (fnet) implementation,” Power Systems, IEEE Transactions on, vol. 20, no. 4, pp. 1914–1921, 2005.
-  M. He and J. Zhang, “A dependency graph approach for fault detection and localization towards secure smart grid,” Smart Grid, IEEE Transactions on, vol. 2, no. 2, pp. 342–351, 2011.
-  D. Deka, S. Backhaus, and M. Chertkov, “Estimating distribution grid topologies: A graphical learning based approach,” in Power Systems Computation Conference (accepted), 2016.
-  S. Bolognani, N. Bof, D. Michelotti, R. Muraro, and L. Schenato, “Identification of power distribution network topology via voltage correlation analysis,” in Decision and Control (CDC), 2013 IEEE 52nd Annual Conference on. IEEE, 2013, pp. 1659–1664.
-  G. Cavraro, R. Arghandeh, A. von Meier, and K. Poolla, “Data-driven approach for distribution network topology detection,” arXiv preprint arXiv:1504.00724, 2015.
-  J. Peppanen, J. Grimaldo, M. J. Reno, S. Grijalva, and R. G. Harley, “Increasing distribution system model accuracy with extensive deployment of smart meters,” in PES General Meeting— Conference & Exposition, 2014 IEEE. IEEE, 2014, pp. 1–5.
-  J. Peppanen, M. J. Reno, M. Thakkar, S. Grijalva, and R. G. Harley, “Leveraging ami data for distribution system model calibration and situational awareness,” 2015.
-  R. Sevlian and R. Rajagopal, “Feeder topology identification,” arXiv preprint arXiv:1503.07224, 2015.
-  D. Deka, S. Backhaus, and M. Chertkov, “Structure learning and statistical estimation in distribution networks - part ii,” arXiv preprint arXiv:1502.07820, 2015.
-  ——, “Learning topology of the power distribution grid with and without missing data,” in European Control Conference (accepted), 2015.
-  P. Ravikumar, M. J. Wainwright, J. D. Lafferty et al., “High-dimensional ising model selection using â1-regularized logistic regression,” The Annals of Statistics, vol. 38, no. 3, pp. 1287–1319, 2010.
-  A. Anandkumar, V. Tan, and A. S. Willsky, “High-dimensional graphical model selection: tractable graph families and necessary conditions,” in Advances in Neural Information Processing Systems, 2011, pp. 1863–1871.
-  M. J. Wainwright and M. I. Jordan, “Graphical models, exponential families, and variational inference,” Foundations and Trends® in Machine Learning, vol. 1, no. 1-2, pp. 1–305, 2008.
-  M. Baran and F. Wu, “Optimal sizing of capacitors placed on a radial distribution system,” Power Delivery, IEEE Transactions on, vol. 4, no. 1, pp. 735–743, Jan 1989.
-  ——, “Optimal capacitor placement on radial distribution systems,” Power Delivery, IEEE Transactions on, vol. 4, no. 1, pp. 725–734, Jan 1989.
-  ——, “Network reconfiguration in distribution systems for loss reduction and load balancing,” Power Delivery, IEEE Transactions on, vol. 4, no. 2, pp. 1401–1407, Apr 1989.
-  J. Resh, “The inverse of a nonsingular submatrix of an incident matrix,” IEEE Transactions on Circuit Theory, vol. 10, p. 131.
-  T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Introduction to Algorithms. The MIT Press, 2001.
-  J. Pearl, Probabilistic reasoning in intelligent systems: networks of plausible inference. Morgan Kaufmann, 2014.
-  U. Eminoglu and M. H. Hocaoglu, “A new power flow method for radial distribution systems including voltage dependent load models,” Electric Power Systems Research, vol. 76, no. 1â3, pp. 106 – 114, 2005.
-  “Reds: Repository of distribution systems,” accessed: 2016-05-20. [Online]. Available: http://www.dejazzer.com/reds.html