How to find damping ratio from halfpower method?
11 views (last 30 days)
Show older comments
xout=acc_u_2(:,1);
fs=20;
m = [length(xout), 2^(nextpow2(length(xout)))];
N = 12000;
xdft = fft(xout,N);
xdft = xdft(1:N/2+1);
psdx = (1/(fs*N)) * abs(xdft).^2;
psdx(2:end-1) = 2*psdx(2:end-1);
freq = 0:(fs/N):(fs/2);
plot(freq,10*log10(psdx))
xlabel('Frequency [Hz]', 'FontSize', 12)
ylabel('PSD [V$^2$/Hz]', 'FontSize', 12)
grid on
fr1=psdx(2:1201); fr2=psdx(1202:2401); fr3=psdx(2402:3601); fr4=psdx(3602:4801); fr5=psdx(4802:6001);
psd_peaks=[max(10*log10(fr1)) max(10*log10(fr2)) max(10*log10(fr3)) max(10*log10(fr4)) max(10*log10(fr5))];
index = [find(10*log10(psdx)==psd_peaks(1)) find(10*log10(psdx)==psd_peaks(2)) find(10*log10(psdx)==psd_peaks(3)) find(10*log10(psdx)==psd_peaks(4)) find(10*log10(psdx)==psd_peaks(5))];
freq_true = freq(index) %given frequencies from the peaks
The above code gives me the following PSD plot and i have calculated the natural frequencies. I now need to use the half power method to calculate the damping ratio;
from the documentation i used the following code lines
bw = powerbw(psdx,freq_true)
bw = powerbw(10*log10(psdx),freq_true)
However they produced input errors, any help would be appreciated.
3 Comments
dpb
on 1 May 2019
Well, it tells you the BW for whichever peak it worked on (the maximum I presume if you passed the full spectrum) is 0.0025 Hz. Given the sharp nature of the peaks, for -3 dB that doesn't look unreasonable number from your plot.
If you return the additional optional outputs, it'll also tell you the low/high frequencies it calculated and the power contained therein...
Read the documentation carefully to undersrtand the inputs/outputs and read the Algorithm section to understand what it's actually doing behind the scenes...
Answers (0)
See Also
Categories
Find more on Parametric Spectral Estimation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!