EIS impedance calculation from measured data

조회 수: 29 (최근 30일)
Ruben Messner
Ruben Messner 2023년 8월 16일
댓글: Florian Bittner 2023년 9월 21일
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월 16일
Thx, it seems like it worked :)
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