EIS impedance calculation from measured data

119 次查看(过去 30 天)
Hi,
I want to create a EIS nyquist plot for a measured fuel cell. I excited it with a squarewave and measured voltage and current in time domain. How could I calculate a nyquist plot out of this? I tried to use FFT but the results are not plausible.
impedance = voltage_fft./current_fft;
figure;
plot(real(impedance), imag(impedance));
Appreciate any help, thx in advance!
Ruben
  1 个评论
Florian Bittner
Florian Bittner 2023-9-21
Hi Ruben, is there a chance to share your final code including filter ? Im trying to create Nyquistplots for validation purpose. But my Nyquistplot looks really useless. Aim of my investigations is to find a way to extract model parameter for battery characterisation. But even this isnt working yet. Thanks.

请先登录,再进行评论。

采纳的回答

Ruchika
Ruchika 2023-8-16
Hi, to create a Nyquist plot from the measured voltage and current data obtained in the time domain, you need to perform a Fourier Transform to convert the data into the frequency domain. However, simply taking the FFT of the voltage and current signals might not provide accurate impedance values for a fuel cell.
You may consider the following approaches to calculate the Nyquist plot from your measured data:
  1. Preprocess the data:
  • Ensure that the voltage and current signals have the same length and are properly aligned.
  • Apply any necessary filtering or preprocessing techniques to remove noise or artifacts from the signals.
2. Perform a Fourier Transform:
  • Use a suitable Fourier Transform method, such as the Fast Fourier Transform (FFT), to convert the voltage and current signals from the time domain to the frequency domain.
  • Apply a windowing function if needed to reduce spectral leakage.
3. Calculate impedance:
  • Divide the voltage spectrum by the current spectrum to obtain the complex impedance at each frequency bin.
  • Note that impedance can be calculated as impedance = voltage_fft ./ current_fft, assuming the signals are properly scaled and aligned.
4. Plot the Nyquist plot:
  • Create a scatter plot using the real and imaginary parts of the impedance values.
  • Use the plot function to plot real(impedance) on the x-axis and imag(impedance) on the y-axis.
Following is an example code snippet illustrating the steps mentioned above:
% Assuming you have voltage and current signals in the time domain: voltage and current
% Perform Fourier Transform
voltage_fft = fft(voltage);
current_fft = fft(current);
% Calculate impedance
impedance = voltage_fft ./ current_fft;
% Plot Nyquist plot
figure;
plot(real(impedance), imag(impedance), 'o');
xlabel('Real Part');
ylabel('Imaginary Part');
title('Nyquist Plot');
  6 个评论
Ruben Messner
Ruben Messner 2023-8-18
Hi again,
do you also have an idea how it's done with this code? He used sth like tfestimate...

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Spectral Measurements 的更多信息

产品


版本

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by