阻尼弹簧质量系统 - 参数估计

信息处理 fft 信号分析 数字通信 参数估计 微分方程
2022-02-19 12:30:44

我试图计算形式的阻尼弹簧质量系统的参数

m y(t)+d y(t)+c y(t)=F(t)

但是我在确定系统的质量 m 时遇到了一些问题。

阻尼弹簧质量系统由 MATLAB 函数给出

y_out=mass_spring_system(F,Td) ,

其中F是输入力矢量,Td是采样周期。该函数的输出已经被噪声破坏了。

首先,我考虑了输入力的稳态解

F(t)=Bcos(ωt)

yp(t)=B(cmω)2+d2ω2cos(ωtθ).

我得到了最大的回应ω=ω0=cm,即自然共振频率。我使用功率谱密度估计了以下参数:

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));

其中F_n是高斯白噪声,y_mean是 500 次实现的整体平均值。最大值应对应于固有频率的共振ω0, 对?

第二步是均质溶液的确定:

y(t)=Ceγtcos(ωdt+φ)

对于同质解决方案,我创建了一个输入力向量

F = [30*ones(1000,1);zeros(1000,1)];

我估计ωd通过在平均输出后进行 FFTy(t). 参数γ我使用希尔伯特变换确定阻尼正弦信号的包络,取对数并使用 polyfit 执行最小二乘拟合。

使用公式
γ=d2m
ωd=ω02γ2
ω0=cm

我可以计算参数dmcm. 但是我如何获得质量 m 的值?

1个回答

我想我得到了答案:我看系统的阶跃响应。

H(s)=1ms2+ds+c

阶跃响应的极限等于我的参数1/c

y()=lims0s1sH(s)=1c

使用上述测量中的cc/mm

我希望这是正确的,但结果看起来很合理......