
MATLAB环境下基于随机减量技术(RDT)的结构阻尼比识别方法——直接运行的程序与
参考文献
最近在振动信号分析中发现个挺有意思的技术——随机减量法(Random Decrement Technique),这
东西在工程振动监测中特别实用。咱们今天用MATLAB手搓一个阻尼比识别程序,顺便聊聊实际应用中的小
技巧。
先看个直观的例子,假设有个单自由度振动系统,受白噪声激励产生的响应信号长这样:
```matlab
% 系统参数
m = 100; % 质量kg
k = 25000; % 刚度N/m
c = 150; % 阻尼Ns/m
wn = sqrt(k/m); % 固有频率
zeta = c/(2*sqrt(m*k)); % 真实阻尼比
% 生成白噪声激励响应
fs = 200; % 采样率
t = 0:1/fs:20;
rng(0); % 固定随机种子
force = 0.1*randn(size(t)); % 白噪声激励
[~,x] = ode45(@(t,x) sys(t,x,m,k,c,force,fs), t, [0 0]);
x = x(:,1); % 位移响应
```
这段代码的关键在于ODE45求解器的调用,注意这里用线性插值实现了激励信号的连续输入。生成
的数据会带着环境噪声的特征,更接近真实工况。
接下来进入RDT处理的核心环节:
```matlab
function [rd_curve] = rdt_processor(x, fs, trigger_level)
% 触发条件设置
crossings = find(diff(x > trigger_level)); % 过阈值点
seg_len = round(0.5*fs); % 截取500ms数据段