Equivalent Circuit Modeling Using the Gamry Electrochemical Impedance Spectroscopy Software
Electrochemical Impedance Spectroscopy (EIS) is a very powerful tool for the analysis of complex electrochemical systems. See the Basics of EIS application note for a comprehensive introduction to EIS. For the most part, information in that Application Note will not be repeated here.
This Note is a practical discussion of the most common method for EIS data analysis. It should provide even a novice with the basic approach for converting an EIS spectrum into meaningful insights into the physical processes in his electrochemical cell. It intentionally avoids most of the complex math associated with EIS data analysis.
In EIS, you measure an electrochemical cell's complex impedance over a wide range of AC frequencies. Typically, several cell elements and cell characteristics contribute to the system's EIS spectrum. A partial list of possible elements includes:
- Electrode Double Layer Capacitance
- Electrode Kinetics
- Diffusion Layer
- Solution Resistance
Unfortunately, the system's impedance at any given frequency usually depends on more than one cell element. This greatly complicates the analysis of EIS spectra.
The most common method used to analyze EIS spectra is equivalent circuit modeling. You simulate the cell incorporating the elements mentioned above. The behavior of each element is then described in terms of "classical" electrical components (resistors, capacitors, inductors) plus a few specialized electrochemical elements (such as Warbug diffusion elements).
The first step in the process is an educated guess. You predict the system elements that you feel will play a part in the cell's impedance. You then build these elements into an Equivalent Circuit Model. The arrangement of the elements into logical series and parallel combinations is critical to the success of the modeling effort.
Each element in the model has a known impedance behavior. The impedance of the element depends on the element type and the value(s) of the parameter(s) that characterize that element. For example, the impedance of a capacitor excited by a sine wave at frequency f is described by the formula:
Zc is the complex impedance, j is the √-1, f is the frequency in Hertz and C is the capacitor's value in Farads. When you formulate a model of the system, you generally do not know the value of the parameters for the elements in the system. For example, you know that a painted metal has a coating capacitance but you do not know the value of that capacitance.
Graphical Model Editor
The Gamry Instruments Echem Analyst Software included with the EIS300 Electrochemical Impedance Software includes a graphical Model Editor. You can use the Model Editor to visually build an equivalent circuit model. Figure 1 shows the Model Editor editing the Paint Model supplied with the EIS300. This model represents one possible assignment of the circuit elements to physical phenomena in a failing paint film on a metal surface. See the EIS Primer mentioned above for a description of this model.
You can use the graphical Model Editor to make up quite complicated circuits. One advantage of this approach is that you do not have to deal with the confusing circuit descriptor codes that some older modeling programs use.
Figure 1. Model Editor
The second example in this Application Note deals with the problem of fitting EIS data to a model when the model is not known a priori. Prior to this, we will discuss the easier case of fitting data to a known model.
Fitting the Model to your Data
Once you have a model that you feel represents your chemical system, you use a non-linear least squares fitting program to fit the model to the experimental data. This program attempts to minimize the deviation between the spectrum of the model and the experimental data spectrum.
Two fitting algorithms are included in the Echem Analyst -- The Levenberg-Marquardt algorithm and the Simplex algorithm. Both of these algorithms automatically adjust the parameter values of the elements in the model to find the best fit. The mathematical details of the fitting process are well beyond the scope of this application note.
One of the more difficult tasks in equivalent circuit modeling is determining the initial values for the model's parameters. The either optimization algorithm needs to start with values (often called seed values) for all parameters. If the initial values are far from the optimal values, the optimization program may be unable to find the best fit. The first example in this applications note demonstrates this problem.
Example #1: Dummy Data Matching the Coated Metal Model
This example discusses fitting a model to data when the form of the model is known. In order to insure a good fit, the data was recorded on an electronic dummy cell made up from electronic components. The components were arranged in the topology of the paint model seen in Figure 1.
Figure 2 shows the original EIS spectrum in a Bode format. Gamry recommends that the initial estimate for fitting parameters be tested in the Bode format âÄì the lack of frequency information in the Nyquist format makes it difficult to estimate capacitor values.
Figure 2. Original Spectrum of Paint Model Dummy Cell
If you fit the Paint Model to this data without adjusting the parameter "seed values" ( or press Reset to Default Values), you may get a Math Error message or a very poor fit (Figure 3). Neither the magnitude (blue) nor the phase (green) agrees well with the data.
This error is caused by poor initial values for the model's parameters. The fitting algorithms in the Echem Analyst EIS analysis require initial values that are within a decade or two of their final values before it can fit properly. The inability to fit when the seed values are far from the optimal values is not unique to the EIS300. Other EIS model fitting programs require the same accuracy in the initial values.
So how do you estimate initial values? It takes a calculator and a little understanding of the behavior of the elements in the circuit. Basically, we try to find areas in the EIS curve where the model's impedance is dominated by one element and calculate the approximate value for that element at that frequency.
Examine the model in Figure 1. Remember that the impedance of a capacitor approaches zero at high frequency and approaches infinity at low frequency. At low frequency, the impedance of the capacitors in the model is very high. Both Cc and Cf are in parallel with a resistor. When the capacitors impedance is high, the resistor's impedance dominates. At the lowest frequency in Figure 1, the impedance magnitude is about 107 ohms and the phase is near 0° (indicative of a resistor) . This is the sum of Ru, Rp, and Rf. Assuming that Rf > Rp > Ru, you can estimate that Rf is 107 ohms. You have your first seed value!
Figure 3. Fitting With All Seed Values Reset to the Defaults
The drop in magnitude above 1 Hz is due to Cf. At 10 Hz, the impedance of the system is about 106 ohms. Use this in the equation for the impedance of a capacitor, ignoring the j in the equation and using f = 10 Hz:
This is the second seed value.
The area in the middle of the spectrum where the magnitude plot approaches a horizontal line looks like another resistor. This must be Rp and we can assign a seed value of about 100 kΩ.
The high frequency region appears to be capacitive. The impedance at 10 kHz looks to be about 10 kΩ. Following the procedure above, but with 104 ohms at 104 Hz, you get a capacitance value of about 10-9 Farads. This is the seed value for Cc.
The high frequency data never becomes resistive, indicated by a constant value of impedance. Ru must be smaller than the impedance magnitude at the highest frequency used. Therefore, use 1Ω for the seed value.
Now that we have a set of seed values, try the fit again. Type the seed values into the parameter fields. You can enter the capacitors in E format, e.g., enter 10-9 as 1E-9. Press the Preview button. You see a plot similar to that in Figure 4.
Notice that the shape of the magnitude and phase plots are similar for the seed curves and the experimental data. In general, whenever these shapes are similar and the seed values are within a factor of 100 of the optimal value, the model will fit.
When you press Calculate, you see that the fit is indeed excellent (Figure 5). Table 1 shows the parameter values calculated by the fitter, versus the values of the components used to make the dummy cell. Both the Levenberg-Marquadt and Simplex algorithms give the same result.
20.12 E± 0.17
21.55 E± 0.14
996. E± 7
418. E± 30
Table 1. Fit Values and Component Values
Notice the large uncertainty in the fit value for Ru and the poor agreement between the real Ru value and the fit value. This is easily explained. Remember that the impedance curve never became resistive at high frequency. In fact, a slight phase shift at high frequency is the only indication that Ru is present. As a rule of thumb, if an element's impedance is not a significant factor in the cell impedance in the fit's frequency range, the parameter value for that element will be poor and the uncertainty in its value will be large.
Figure 4. Seed Values — Paint Model
Figure 5. Final Fit — Paint Model
Both algorithms report a "Goodness of Fit" number. A value of this number of 0.0001 (1E-4) indicates a pretty good fit, one with about a 1% difference between the measured and calculated impedances. A value of 0.01 is seen for a "fair" fit, one with about 10% error. A poor fit gives a value of 0.1 (30% measurement errors) or higher. This is the result when an inappropriate model is chosen, one that does not agree well with the experimental data. You should explore other hypotheses and other models to explain your data.
Example 2: Rechargeable Alkaline Battery
In this example, the model is unknown prior to starting EIS data analysis. The sample is a commercial AA rechargeable alkaline battery. Spectra were recorded using Gamry's Hybrid EIS mode after each cycle of a repeated charge/discharge cycle. The EIS spectra from the charged state were more interesting than the discharged state spectra, so one of the charged state spectra was chosen for this example.
The spectrum recorded following the first charge cycle is seen in Figure 6 (Bode format) and Figure 7 (Nyquist format). The Bode plot shows behavior very different from the previous example, so it has been transformed to show linear impedance magnitudes instead of the more common log magnitudes. The impedance magnitude changes by less than 30% as the frequency is varied from by more than 3 decades! A variation this small displayed on a log scale is very confusing, so a linear scale was chosen. The variation in phase is also very small — less than 5° of phase change occurred.
Figure 6. Bode Plot of Charged Battery
The Nyquist plot (Figure 7) shows a depressed semi-circle, typical of a Randles element. At low frequency, the plot shows a well-developed diagonal line at an angle of 45°, indicative of a Warburg impedance.
Figure 7. Nyquist Plot of Charged Battery
What is a good starting point for a model of this system?
We know that the sample is a battery measured in a two-electrode mode, so it has two electrode/electrolyte interfaces.
Figure 8. First Cut Model — Battery Data
We can assume that each interface has a double layer capacitance and a charge transfer resistance. Let's assign the Warburg impedance to only one interface.
We also know that there is a resistance in the solution path between the electrodes. This is the battery's equivalent series resistance (esr). Putting these facts and assumptions into a model, we get the diagram shown in Figure 8.
Once again, we need seed values before the fit will converge (a mathematical term meaning a good fit will be obtained!). Looking at the model (and temporarily ignoring the Warburg impedance), the limiting impedance at high frequency is Resr. Examining the Bode plot, you see that the impedance at high frequency is about 0.7 W. Use this as an initial value for Resr.
The low frequency impedance (at 10 Hz) is about 0.85 Ω. Still ignoring the Warburg impedance, this is the sum of R1, R2 and Resr. Since our estimate for Resr is 0.7 Ω, our estimate for R1 plus R2 is 0.15 Ω. We have no good way of dividing up the contributions of the two resistors, so we will assign each a seed value of 0.075 Ω.
We also cannot visually separate the contributions from C1 and C2. Between about 6000 Hz and 100 Hz, the cell impedance changes by about 0.15 Ω Plugging the "mid-point" of 1000 Hz into the capacitive impedance equation given above, C1 and C2 in series have a value of about 1 mF. Capacitors in series combine similarly to resistors in parallel so we can use a seed value of 2 mF each for C1 and C2.
When you preview the seed curve using these values plus a value of 1.0 for the Warburg coefficient, you get a plot that looks like Figure 9.
Figure 9. Preview of Seed Curve — Rough Estimates
The shape of both the magnitude and phase curves looks similar to the shape of the data curves, so we're safe if we select the Calculate button.
If we want to improve the initial values, we can note that the Warburg element causes the low frequency increase in impedance. Lowering the Warburg coefficient will make the increase smaller at any given frequency. Figure 10 shows the seed value curve with the Warburg coefficient raised to 3.
Figure 10. Seed Curve with Warburg Coefficient 3
With either set of seed values, selecting Calculate results in the plot shown in Figure 11.
Figure 11. Fit with Initial Model
The fit is not bad, but there are significant errors, especially in the phase. Let's try replacing both capacitors with constant phase elements (CPE). The new model is shown in Figure 12.
Figure 12. Battery Model with CPEs
We can use the values found in the previous fit to calculate seed values for the new CPE components. The previous fit values can be seen in a table in Figure11. Remember that the first CPE parameter is equivalent to capacitance. Therefore, the seed value for Y2 is 0.075 and the seed value for Y1 is 0.0027. Use 1.0 as the seed value for both CPE's alpha parameters.
When we enter these new seed values into the new model and press Calculate, we see the plot in Figure 13.
Figure 13. Fit with a Second Cut Model
A careful comparison of Figure 11 and Figure 13 shows that the CPE elements have slightly improved the phase fit in the region between 10 Hz and 100 Hz. The improvement may not be large enough to justify the inclusion of the CPEs and their arbitrary alpha parameter. We can quantify this somewhat if we look at the "Goodness of Fit" numbers for each model. These are listed in the last row of the fit results tables shown below.
Table 2. Comparing the Goodness of Fit for Two Circuit Models
The "Goodness of Fit" for both models is quite good: Both values are under the 1e-4 criterion for a good fit. However, both values are nearly identical: They differ by only about 10%. As a rule of thumb, two models can be deemed "indistinguishable" if the "Goodness of Fit" numbers differ by less than a factor of three. The CPE model should only be considered if its "Goodness of Fit" value were less than 12e-6 or (37e-6)/3.
Note that one cannot distinguish between the anode and cathode interfaces of a battery when only a two terminal EIS measurement is available. If a reference electrode can be placed in the cell, the impedance of a single interface can be measured.
Fitting an EIS model to experimental data can be a fairly straight forward task. It requires a little knowledge of the cell being studied and its mechanisms and a basic understanding of the behavior of cell elements.
If you do not have a model, start by examining the data. Look for valleys in the phase that indicate inflection points in the data. Use your knowledge of the cell and the experimental data to propose a model. In many cases, the standard models provided with the EIS300 will provide either a final model or a good starting point for development of your own model.
Gamry does not recommend that you add elements to a model until all visible errors in the fit are eliminated. Models that include elements with no basis in the chemical processes in the cell may provide a pretty fit, but offer no practical information about the cell's behavior.
Once you have established a model, first estimate the resistor values. Look for horizontal regions on a Bode plot and assign them to individual resistors or series combinations of resistors. Estimate the value of capacitors in the model as demonstrated above. It is not necessary to be too accurate when you make these estimates. Any value within a factor of ten of the true value is a good starting point.
Finally, use the Preview feature to check your estimates. At this time, you can fine-tune the initial values for Warburg impedances in the model. In general, the fit algorithm will converge whenever the shape of the seed curve is similar to the shape of the data curve. If the two curves have a different shape, the fitting routine may fail.
Finally, perform the fit and examine the result. If the fit does not look good, you may have to adjust the model and repeat the procedure.