Review of Impedance-Based Analysis Methods Applied to Grid-Forming Inverters in Inverter-Dominated Grids

: As the use of distributed generation with power electronics-based interfaces increases, the separation between DC and AC parts of the grid is reduced. In such inverter-dominated AC grids, impedance-based analysis methods are proving to be more powerful than traditional state-space-based analysis methods. Even the conventional parameters and standards used to estimate the stability of generators and stronger grids cannot fully capture the dynamics of weaker, inverter-dominated grids. It then stands to reason that system impedances that are commonly used to analyze DC systems will be useful in the analysis of grid-forming inverters in these hybrid systems. To understand the value of studying the impedances of inverters and other elements in weak AC grids, this article reviews and describes the various ways in which impedance-based analyses can be used to deﬁne, assess, and improve the performance of grid-forming inverter controllers. An exemplary case using the conventional P-f/Q-V droop control demonstrates the application of impedance-based analyses to determine the impact of the controller on the input and output stability of the inverter.


Introduction
The increased use of power electronic converters to interface loads and sources has led to a significant shift in the dynamics and behavior of various grid components. Not only are the response times faster, but the overall grid is also weaker with lower inertia and higher impedance, so the concerns and conditions used as the foundation for control design become less relevant in inverter-based grids [1,2]. Hence, the analysis methods developed for synchronous machines need to be replaced by a new paradigm for assessing system stability and calculating parameters for converter control [3]. Impedance-based analysis methods are better suited to capture the high-frequency dynamics and resonant interactions created by the presence of power electronic elements [4]. Grid-following (or grid-tied) inverters (as shown in Figure 1) are more commonly analyzed using impedance-based and other analysis methods than grid-forming inverters, which have only recently gained traction and interest [5][6][7][8]. Furthermore, the conclusions obtained from the analysis of grid-following inverters cannot be completely applied to grid-forming inverters because, in the absence of a stiff grid or synchronous generators the interaction of the inverter with other inverters, loads and grid elements becomes much more complicated [9,10]. Inverters controlled in a decentralized manner (which is the case for most grid-forming control strategies) are greatly affected by sudden load changes, which can cause power sharing instability in the low frequency range. The fast dynamics in the inner control loops and high order filters of parallel inverters interact with each other and cause harmonic resonance in the high frequency range [11]. Non-linearities of loads and inverters, as well as multiple resonance modes of network impedance, in inverter-based microgrids make power quality control more challenging [12]. Therefore, it is important to understand grid-forming inverter dynamics and control through the impedance lens as the separation between DC and AC parts of the grid diminishes. Most of the impedance-based analysis methods mentioned hereafter are commonly used in DC distribution systems [14,15] and are becoming increasingly applicable in inverter-based grid systems [16,17]. In such systems, the inverter is more affected by variations in the grid impedance than synchronous machines are [18], and inverter impedances are also significantly impacted by the inverter control design [19][20][21][22]. Hence, the effect of various control design decisions can be measured through the analysis of the inverter impedance. Conversely, impedance measurements can also inform controller requirements [23]. This introduction is followed by four sections. Grid-forming inverter control is further described in the second section. The third section describes the various uses of impedancebased analysis methods and reveals certain requirements for an effective grid-forming controller. The fourth section demonstrates how these methods can be used to analyze the most commonly used grid-forming control method: P-f/Q-V droop. Finally, the review is concluded with a summary and a list of controller requirements deduced from the second section.

Grid-Forming Control
Voltage source inverters are generally used for interfacing distributed generation with the grid, while current source inverters are largely used in motor drive applications [24]. However, for grid-connected operation, voltage source inverters are transformed into current sources to feed active and reactive power to the grid. As a virtual current source, these inverters require a stiff grid and prior knowledge of system loads. Even gridsupporting inverters, which do not necessarily need a synchronous generator to impose a stiff frequency, are normally only used to balance the voltage and frequency of the grid [25]. Moreover, current-controlled inverters cannot respond instantly to load change. On the other hand, grid-forming inverters have some unique features that make them ideal for inverter-based grids [26]: • They control voltage source inverters as dispatchable voltage sources with independent control of voltage and frequency. The output current is then determined by the system loading conditions and the inverter current limits. Their ability to function as an "infinite bus" is limited by the size and strength of the DC source. • Since they do not rely on a stiff grid for synchronism, grid-forming inverters impose the grid voltage frequency and phase angle reference through their own controls and are capable of blackstart operation without a dedicated phase-locked loop (PLL).
• Grid-forming inverters are voltage-controlled and have a smaller output impedance compared to grid-following inverters, which makes them suitable for weak AC grids.
Generally, in isolated microgrids, there is only one grid-forming inverter to establish the grid voltage (as the leader), while the other inverters function in grid-following mode (as followers) [27,28]. This configuration lacks redundancy and the grid cannot be sustained in the absence of the single grid-forming inverter. To overcome this and ensure reliability, multiple grid-forming inverters should be used. Since grid-forming inverters are viewed as replacements for synchronous generation, several existing grid-forming control methods are derived from synchronous generators to induce the physical synchronization and stabilization mechanisms in inverters that are inherent in synchronous generators [29]. Some of the existing grid-forming controls are described in Table 1.
All of the grid-forming methods described here are sufficiently capable of controlling parallel inverters in inverter-based grids. Whether implicitly or explicitly, most of these methods introduce synthetic inertia into the controller to mimic the behavior of synchronous machines. They do so by embedding a synchronous generator model or the swing equation into the control law (synchronverter, matching control), emulating the frequencypower relationship inherent to synchronous machines (virtual synchronous generators), or simply applying traditional, synchronous control techniques (droop control) [30,31]. In the absence of synchronous generation and mechanical inertia, there is no natural coupling between the distributed generation and the grid. This means that the interaction between them, as well as the inverter response, is determined by the control scheme rather than the electromechanical properties. Therefore, there are certain details specific to inverter-based systems that should be considered when evaluating the performance of any grid-forming control [32]. Droop control is the most commonly used grid-forming control method in islanded or isolated microgrids. In fact, some authors even assume that any grid-forming control will have implicit droop characteristics [36]. Droop enables decentralized control of parallel inverters, thereby avoiding any need for communication between them. The premise is to linearly couple voltage and frequency to active and reactive power. This type of control enables inverters to be controlled similar to synchronous generators by programming droop characteristics into their controllers [37], as shown in Figure 2. It can be easily applied in grid-following mode, as well, and can switch between the two modes as needed. Droop control is easy to implement, avoids high complexity and cost, and facilitates plug-and-play operation. It is also supported by immense research efforts into developing adaptive schemes specific to low-voltage grids and microgrids [38]. Therefore, droop control is used in the analysis in the fourth section.

Impedance-Based Analysis for Controller Design
The two major analysis tools used for power electronics-based grids are the statespace method and impedance-based method [39]. These two tools have certain advantages and disadvantages and can be used in a complementary manner. The state-space model tends to be more comprehensive by providing deep insight into the dynamics of the whole system but requires extensive knowledge of the system and control parameters for model formulation and validation [40].The details for each component in (heterogeneous) inverter-based grids are not easily available to perform a global stability analysis in advance. State-space methods also do not allow the local analysis of individual elements to support controller development [41].
On the other hand, although impedance-based models cannot be used to identify the reasons for underdamped or unstable modes, they are easier to formulate and validate using direct measurements and without complete knowledge of the system [10]. Moreover, as the attention shifts towards higher frequency dynamics with the proliferation of more grid-forming inverters in the grid, impedance-based analysis will prove to be more useful than state-space methods as they are able to include the impact of interactions between inverter and grid impedances in the analysis [42].
The discussion in the remainder of this paper is primarily focused on grid-forming inverters that convert power from a DC source to feed an AC grid, i.e., the DC source is on the input side and the AC grid is on the output side of the inverter.

DC-Side Stability
Most analyses of AC power inverters connected to DC sources normally consider an infinite DC source behind the DC-link and completely ignore the DC-link dynamics. This leads such analyses to focus solely on the AC output behavior or the impact of the input impedance on the AC output, which results in an incomplete understanding of the inverter behavior, as well as an inefficient design. As more DC power system-based control and analysis methods are applied to AC grids, attention must also be paid to the DC dynamics behind the AC inverter.
The major impedance-based stability criteria used in DC power systems are described in Reference [43]. The most common stability issue in DC (micro)grids is the negative incremental resistance behavior of constant power loads [44][45][46]. The constant power loads usually analyzed in these studies are DC and AC motor loads connected to the grid through an inverter which is tightly controlled [47]. However, source inverters connected to DC sources, depending on the control feedback structure can also behave like constant power loads from the perspective of the upstream DC source. It is this behavior that causes unstable interactions between parallel inverters, even when each inverter is designed to be independently stable.
The most prevalent method used to analyze the stability of a DC distribution system is to separate it into a source subsystem and a load subsystem and apply one of the stability criteria mentioned in Reference [43] to the interface between the two subsystems. All of these criteria utilize the minor loop gain to determine stability boundaries for controller design. The minor loop gain is defined as: where Z s is the output impedance of the source subsystem, and Z l is the input impedance of the load subsystem. The application of minor loop gain-based stability criteria has also been extended beyond purely DC systems to any power system with power electronic converters, such as HVDC systems [48], hybrid DC/AC microgrids [49], or even between an inverter and a DC source [50] in AC microgrids, as shown in Figure 3. In other words, this stability criteria can be applied in cases with DC or AC systems on both source and load sides, as well as with an AC system on one side and a DC system on the other side. It does so by modeling and analyzing the AC system in DC terms. The source and load subsystems are usually separated by a DC-link capacitor on the DC side and by the output filter capacitor on the AC side. Since these analyses tend to focus on a single inverter controller, the impact of the rest of the grid (including loads and other parallel inverters) is included in the load subsystem. To study the impact of a DC/AC inverter on the DC-link stability (or even the upstream DC source and converter), the system can be separated into a source subsystem and a load subsystem (consisting of the DC/AC inverter), which can then be analyzed similarly to a DC grid system. This is particularly useful to gauge the impact of the converter controller on the stability of the DC-link between the converter and the DC source [51].
Many inverter controllers scale the Pulse Width Modulation (PWM) output to compensate for variations in the input DC voltage. Hence, the power output of the inverter can be considered independent of the input DC voltage. Reference [52] shows that this results in a negative input resistance, which can affect the stability of the DC-link, as well as that of the upstream DC source, by causing oscillations at the resonant frequency of the input filters.

AC-Side Stability
Current-controlled voltage source inverters commonly used for grid-tied operation are incapable of quickly responding to changes in load. This control is sufficient to extract a constant amount of power and make the inverter impervious to grid disturbances. However, trying to maintain the stability of an inverter during disturbances can also make the inverter unresponsive to changing load conditions. Maintaining stable operation while providing sufficient load support is a challenging task, especially for weak grids with poor grid stiffness. Although controllers with multiple feedback loops are employed for their ability to limit the output voltage and current, these loops tend to slow down the controller response, making them unable to achieve fast frequency or inertia response which are intrinsic to synchronous generators [53]. These types of controllers also need to be retuned with changing grid conditions to achieve the intended control characteristics which can be achieved using an impedance-based approach as described in Reference [54].
Just as the negative input resistance of DC/AC inverter can have a destabilizing effect on the DC-link, a negative output impedance can have a destabilizing effect on the grid by reducing system damping. Unlike the inverter input resistance, this phenomenon is widely studied for AC inverters, and is usually attributed to the use of synchronization loops [19] or feedforward control [55]. The study in Reference [17] shows that cascaded controllers used for maximum power output with PV systems also inherently have negative output impedance.
The frequency-domain passivity theory is another analysis tool that is increasingly being used to assess the stability of grid-connected inverters [56]. Impedance Z o is considered passive if it has a non-negative real part, i.e., According to the theory, if all grid components are passive, critical resonant interactions between the grid impedance and the inverter output impedance are damped. Otherwise, these resonant interactions can cause potentially destabilizing oscillations [57].
Traditional grid-tied inverters usually control voltage and current in a cascaded loop structure and essentially behave like current sources with large output impedances. The outer control loop in current-controlled voltage source inverters can either be a power control loop (for grid-following operation) or a voltage control loop (for grid-forming operation). When source inverters are used in grid-following mode in a stiff grid with high inertia and slower time scales (due to the presence of synchronous generators), these cascaded controllers perform well. However, when parallel grid-forming source inverters operate in an inverter-based grid with lower inertia and faster time scales, the cascaded controller cannot keep up with changing grid conditions. Higher controller flexibility is proportional to the number of feedback loops and can improve the inverter performance and provide resilience to abnormal conditions at the cost of control delays and slow response times. These delays can be further increased by the controller structure, i.e., the increase in control delay is proportional to the number of control loops [58]. Control delays from current control tend to cause resonances close to the fundamental frequency, while LC/LCL filters attached to the inverter reduce the passivity in the higher frequency range for grid-tied inverters.
Feedforward control can be used to shape the inverter output impedance characteristic to be more passive and independent of grid impedance variations [59,60]. However, the performance and stability of a controller with feedforward compensation deteriorate with reducing grid stiffness. This is attributed to the positive feedback effect of the feedforward signal which increases with increasing grid impedance (for weaker grids) and degrades the stability of the controller [61].

Load Disturbance Compensation
Since the inner control loop removes disturbances in the output of the outer loop, a cascaded control structure can increase the stability and the response speed of the outer loop. Nevertheless, cascaded control cannot respond to any disturbance outside the control loop which creates errors in the control loop variable. Hence, feedforward control is normally added as a correcting signal to modulate the output of the control loop and cancel out the load disturbance [62]. In this way, the load disturbance compensation by feedforward control complements the supply disturbance compensation of the cascaded feedback loop control and improves its transient stability. In this case, the control system poles are determined by the feedback loop gains, while the zeros are determined by the feedforward loop gains.
The authors in Reference [63] demonstrated the use of feedforward control for load disturbance rejection. Since the output voltage of a grid-forming inverter is affected by the load current through the output impedance, reducing the output impedance will reduce the effect of changing load current on the inverter output voltage. This is achieved by using a proportional feedforward controller to set the DC component of the output impedance to be zero. Nevertheless, it is also noted that feedforward control not specifically designed for achieving passive output impedance but rather to improve disturbance rejection ability of the controller can render the control system non-passive in multiple frequency ranges. This issue exists for both single-loop and cascaded loop controllers and is overcome by suppressing the feedforward control in the non-passive regions.

Cross-Coupling in Different Domains
The Nyquist Stability Criterion is a minor loop gain-based analysis tool most commonly applied to power electronic systems. Nevertheless, its application is limited to linear time-invariant, single-input-single-output (SISO) systems, which makes it an infeasible tool for three-phase AC systems. An impedance-based model can be derived in the synchronous axes domain or the sequence domain, with both models comprising of coupling terms, making them multiple-input-multiple-output (MIMO) models [21]. The impedance can be described by: in the synchronous reference frame and for the sequence domain, where the off-diagonal elements represent the coupling terms. Cross-coupling in the synchronous domain is caused by asymmetrical control dynamics along the axes and the presence of inductance and capacitance in output filters and grid impedance whereas cross-coupling in the sequence domain is attributed to system imbalances in the positive or negative sequence domains and the mirror frequency effect [64]. Mirror frequency effect is defined as the phenomena when a harmonic disturbance at an arbitrary frequency induces a response at twice the frequency [65] and is usually caused by asymmetry of control loops between the d-axis and q-axis as in the DC-link voltage controller [66]. These coupling terms exist even in balanced systems and cannot be ignored in the stability analysis [67]. The impact of cross-coupling on the output impedance is more significant in weaker grids which have higher cross-coupling due to larger line impedances [68]. Therefore, the Generalized Nyquist Stability Criterion (GNC) has to be applied to the MIMO models in both domains [69].

Improved Power Sharing
The flow of circulating currents between inverters reduces their power sharing efficiency and can also lead to instability in severe cases. Circulating currents between inverters are usually a result of the mismatch at the output terminals of connected inverters, which can be a small difference in output voltage magnitude or frequency, disparate output/line impedance, or phase error between outputs. Active and reactive power sharing accuracy can be improved by adjusting or shaping the output impedance of each converter to minimize the circulating current between them [70]. Impedance analysis can also be used to determine power transfer stability limits for converters interfaced with DC sources like energy storage and solar arrays that are connected to weak AC grids [71].
In traditional, stronger grids, the output impedance of synchronous generators is dominated by large inductors (like transformers) connected to their output terminals, and the grid impedance is mostly inductive as a result of the long-distance lines. However, that is not the case for smaller and weaker inverter-based grids, where the inverter output filters consist of capacitive elements, and the grid impedance is more resistive. Since the inverter output impedance is also significantly influenced by the inverter controller, virtual impedance can also be added to the feedforward path of the voltage control loop of the inverter to improve its transient response and reduce circulating currents between parallel inverters, especially for droop control [72], as shown in Figure 4. According to Reference [73], if two parallel inverters are perfectly synchronized (have zero phase error) and have identical output impedances (R + jωL), then active and reactive circulating current can be calculated as: where V o1 and V o2 are the output voltage magnitudes of the two inverters. This shows that the active component of the circulating current is proportional to the output resistance, whereas the reactive component is proportional to the output inductance. Therefore, the output impedance can be adjusted to reduce the circulating currents between inverters.

Synchronization Stability
Impedance-based analysis is also utilized in assessing the impact of synchronization loops on controller stability and performance. For grid-following inverters, impedancebased stability analysis is most commonly used to study how various types of PLL shape the inverter impedance in both synchronous reference frames [74,75] and stationary reference frames [76]. For grid-forming inverters, [77] uses an impedance modeling approach to incorporate the frequency contribution of the droop control loop in the impedance model which can be employed to analyze the impact of droop-based synchronization on the output impedance.
It is often found through the analysis of the inverter output impedance that the asymmetrical structure of the PLL (in both synchronous and stationary reference frames) causes the output impedance to behave as a negative resistance in the PLL bandwidth [20,78], which can lead to unstable interactions with the grid impedance. The PLL also causes coupling between the positive and negative sequences in the phase domain (even in balanced systems), which needs to be considered for an accurate stability analysis [67].

Harmonic Stability
Impedance-based analysis can also be used to assess harmonic stability [42]. With higher integration of inverter-based generation (and loads) into the grid, increasing harmonic distortion significantly deteriorates its power quality. This increased harmonic distortion is a combination of high-frequency harmonic injection from the inverter and harmonic resonance between the inverter output impedance with the grid impedance [79].
These resonant dynamics can be damped using passive or active damping techniques [80]. Passive damping involves modifying the output filter or adding more passive elements, while active damping techniques alter the controller structure or parameters [81]. A seriesparallel virtual impedance is used in Reference [82] to improve the ability of the inverter to reject grid harmonics. A feedforward DC voltage regulator is able to reduce the nonlinearities for a grid-connected PV system and efficiently control the DC-link voltage and reduce the harmonic distortion in the grid current in Reference [83]. The authors in Reference [84] demonstrate that an inverter with a capacitive output impedance can achieve lower harmonic distortion in its output.
In most cases of impedance-based analysis of AC stability for grid-tied inverters, the model is limited to the study of a single inverter connected to a stiff grid or load through an output filter. For a single-inverter system, the resonance frequencies are determined by the filter parameters and the grid impedance. However, if more than one inverter is present in the grid, this analysis is incomplete because it ignores the coupling between inverters and its impact on the stability and performance of each inverter. When n similar inverters are connected in parallel with grid impedance being Z g , then the effective grid impedance seen by each inverter becomes n × Z g as a result of the coupling between the parallel inverters [85], as shown in Figure 5. This coupling effect can also be modeled as circulating resonant currents between the paralleled inverters which cause multiple resonances at various frequencies [86]. Therefore, the interaction between paralleled inverters produces different resonant characteristics compared to a single-inverter system. Disregarding this interaction between inverters can create resonances in a multi-inverter system even if each inverter individually satisfies the power quality standards [87]. This applies to interconnected microgrids, as well, wherein any stability analysis needs to consider the coupling effect among inverters, as well as the interaction between microgrids in a cluster, for an accurate assessment of the system [88].

Application of Impedance Analysis to Droop Control
The impedance analysis of a droop-controlled grid-forming inverter along with simulation results will demonstrate the application of the aforementioned impedance-based analysis methods to judge different aspects of the controller performance and its interaction with the load in the absence of any influence from an additional parallel inverter. The system simulated and analyzed is a P-f/Q-V droop controlled 3-phase inverter which powers a ZIP load (30% Z-load, 30% I-load, and 40% P-load) through an LCL filter. A higher percentage of constant power load is modeled to represent the significant amount of power electronic loads present in inverter-based systems. The system model is presented in Figure 6 and the parameters are provided in Table 2. The X/R ratio of the grid is set as 1 to represent a low-voltage grid with low inertia. The droop controller consists of a power-droop loop, an outer voltage control loop and an inner current control loop. The inner control loop uses d-q decoupling but no feedforward compensation. The controller is analyzed using MATLAB and then simulated in an inverter-load system using Simulink.   Figure 7 shows the equivalent circuit model of a grid-forming inverter in the d-q reference frame. Here, C is the DC-link capacitor, r f and L f represent the L-filter resistance and inductance, respectively, and ω s is the nominal frequency. The closed-loop input impedance and output admittance for a nested-loop controller with droop regulation can then be derived from Figure 8 as: where Z in = [Z in ] is the open-loop input impedance, G ci = G ci_d G ci_q is the inner control loop gain, is the decoupling gain with L f as the filter inductance and ω s as the nominal frequency, 5T s s is the control delay with T s as sampling period, is the droop gain including the droop coefficients (m p , m q ) and the measurement filter gain,  The impedance transfer functions are analyzed and plotted in Matlab using the parameters in Table 2. The bode plots for the input and output impedances of the inverters are shown in Figures 9 and 10, respectively. Figure 9 shows that the input impedance is nonpassive in the region between the fundamental frequency and the controller bandwidth which can cause any load disturbance to affect the DC-link. This effect is revealed by the simulation results in Figure 11 where a sudden load increase from 0.75 p.u. to 0.9 p.u. creates oscillations in the DC-link voltage (that, in turn, affects the output modulation). Hence, the inverter does not sufficiently isolate the DC source from the AC grid.  On the other hand, the output impedance in the higher frequency range is very small in Figure 10 (output admittances Ydd and Yqq have large magnitudes) which makes the AC voltage magnitude impervious to the sudden load change, as shown in Figure 11. Similar to PLLs, P-f droop can also create a negative resistance region in the inverter output impedance [90]. This effect is also revealed by the Ydd and Yqq plots in Figure 10 with the phase reaching 180 • in the droop loop bandwidth.  To analyze the harmonic stability of the inverter output, the ZIP load is replaced by a rectifier load, which is connected to the droop inverter at 0.15 s. The non-passive nature of the output impedance in Figure 10 is demonstrated by the harmonics introduced in the output voltage of the inverter when the rectifier load is connected as shown by the simulation results in Figure 12. The large dq and qd output admittance values (Ydq and Yqd) in Figure 10 represent low d-q coupling in the AC output as a result of using d-q decoupling in the current control loop. This is demonstrated by changing the active power load setpoint and checking the impact on the reactive power output, and vice versa. The simulation results for this case in Figure 13 confirm the low d-q coupling in the AC output through the unaffected output reactive power when load active power is increased (Figure 13a), as well as the unaffected output active power when load reactive power is increased (Figure 13b).

Conclusions
Impedance-based models are capable of representing controller dynamics, resonant behavior, and interactions with grid elements for a grid-forming inverter, thus simplifying the system analysis on both DC and AC sides. These modeling and analysis techniques can help identify desirable input and output impedance characteristics. This enables a localized analysis of inverter controllers by characterizing the impacts of and interactions with other grid elements, unlike state-space-based analysis methods. From this review, it can be concluded that to have an effective grid-forming converter for parallel operation: 1.
The input impedance should not behave as a negative resistance and remain in the passive region.

2.
The output impedance should also be passive to prevent resonant oscillations in the AC output.

3.
The output impedance should be small enough to not only reduce circulating currents and improve power sharing accuracy but to also reduce the effect of gridside/load disturbances. 4.
The impact of synchronization control on inverter impedances should be included for a comprehensive analysis.

5.
Couplings among paralleled inverters which create resonant interactions should be compensated.
The input and output impedances of an inverter can be actively shaped by varying the control structure, using feedforward compensation, and adding virtual impedance in the control loop to damp resonances and enhance disturbance rejection. While passive impedance shaping techniques increase the overall cost of the system, active shaping methods can add control delays and decrease the robustness of the controller. Besides, the objectives of different active shaping techniques may conflict with each other. The impact of these shaping techniques on each other, as well as on the control dynamics, can also be studied by impedance-based methods. Impedance-based modeling and analysis are, thus, powerful tools in inverter control design which is illustrated by applying these methods to analyze a droop controller in a low-voltage inverter-based grid.
Funding: This work was supported primarily by the ERC Program of the National Science Foundation and DOE under NSF Award Number EEC-1041877 and the CURENT Industry Partnership Program.