I've tried to calculate the parameters of a damped spring mass system of the form
$m~ y''(t)+d~y'(t)+c~y(t)=F(t)$
but I have some problems determining the mass m of the system.
The damped spring mass system is given by a MATLAB function
y_out=mass_spring_system(F,Td),
where F is the input force vector and Td the sampling period. The output of the function is already corrupted by noise.
First, I considered the steady state solution for an input force of
$ F(t) = B\cdot \cos(\omega t)$
$\Rightarrow y_p(t) = \frac{B}{\sqrt{(c-m \omega)^2+d^2\omega^2}}\cos(\omega t-\theta)$.
I get the largest response for $\omega=\omega_0=\sqrt{\frac{c}{m}}$, which is the natural resonance frequency. I estimated this parameter the following using the Power Spectral Density:
NDFT = 2^10;
h = hann(NDFT);
[Pxx,W] = pwelch(F_n,h,NDFT/2,NDFT);
[Pyy,W] = pwelch(y_mean,h,NDFT/2,NDFT);
Ha = sqrt(Pyy./Pxx);
Ha_dB = 20*log10(abs(Ha));
where F_n is white Gaussian noise and y_mean is the ensemble average for 500 realizations. The maximum value should correspond to resonance at the natural frequency $\omega_0$, right?
The second step is the determination of the homogeneous solution:
$y(t) = C\cdot e^{-\gamma t} \cos(\omega_d t + \varphi)$
For the homogenous solution I created an input force vector of
F = [30*ones(1000,1);zeros(1000,1)];
I estimated $\omega_d$ by taking the FFT after averaging the output $y(t)$. The parameter $\gamma$ I get from determining the envelope of the damped sinusoidal signal using Hilbert transform, taking the log and performing a least square fit using polyfit.
Using the formulas
$\gamma = \frac{d}{2m}$
$\omega_d = \sqrt{\omega_0^2-\gamma^2}$
$\omega_0 = \sqrt{\frac{c}{m}}$
I can calculate the parameters $\frac{d}{m}$ and $\frac{c}{m}$. But how do I get a value for the mass m?