资讯详情

Matlab模态参数识别实战:从振动信号到固有频率与阻尼比

📅 2026/9/15 23:56:15 | 华诺云谱 👁 阅读
Matlab模态参数识别实战:从振动信号到固有频率与阻尼比
结构振动信号测了一大堆存了十几个文件然后呢我最早做模态测试时就卡在这个问题上。传感器布点、采样、导出数据只是第一步真正的难点在于如何处理这些时间序列把结构的固有频率、阻尼比、模态振型从里面“挖”出来。这一整套流程就是常说的Matlab模态参数识别与振动信号分析也是实验模态分析EMA和运行模态分析OMA的核心内容。这篇文章我用Matlab做主线把信号预处理、频响函数/功率谱估计、频域识别法峰值拾取、FDD、时域识别法SSI、ERA完整串起来每个环节给出代码思路和实测中容易踩的坑。适合正在做结构动力学试验、桥梁或风机健康监测、故障诊断或者刚入门想搞懂算法背后逻辑的同学。1. 模态参数识别在解决什么为什么振动信号里能读出结构固有属性1.1 固有频率、阻尼比、振型结构的“身份证”一个线性结构在任意激励下的响应可以由模态叠加原理表示把结构等效成多个单自由度系统叠加每个单自由度系统对应一阶模态用固有频率、阻尼比和模态振型三个参数描述。模态参数识别的目标就是利用实测振动信号把这三样东西估计出来。为什么识别出来的参数可信因为这些参数由结构质量、刚度、阻尼分布决定与激励大小没有关系在小变形线性假设范围内。换句话说你用锤子敲和用激振器扫识别出的频率应该一致。这是后续做结果校验的底层逻辑。事实上我给不少项目做复核时都会先用两次不同激励方式做交叉验证频率差控制在0.5%以内才敢把结果交付。还有一个容易混淆的点时域波形本身不是模态。波形受到激励作用方式、初始状态、噪声的直接影响但模态参数是结构自身的属性。好比你用不同力度拨动吉他弦声音大小不同可音高不变这个“音高”就相当于固有频率。模态参数识别本质上就是反推结构系统的特征值问题。1.2 EMA与OMA的分工实验模态分析EMA使用已知的激励信号和响应信号可以计算频响函数FRF。FRF的峰值直接对应固有频率虚部相位和幅值可以用来辅助识别振型而且FRF支持质量归一化振型也就是能把振型幅值换算成对单位激励的绝对响应程度。运行模态分析OMA则只有环境激励下的响应激励信号不可测只能利用响应的自谱和互谱在激励近似为白噪声的假设下做识别。OMA的振型结果不能做质量归一化但用于结构健康监测完全够用。在现场大型结构如桥梁、海上平台、风力发电机塔筒上很难施加可控激励所以OMA非常常见。很多商用运行模态测试设备底层就是OMA理论。选择哪条路线取决于你能拿到什么数据。有激励信号优先做EMAFRF的信息量比自谱大只有环境振动数据就做OMA。有时现场条件很尴尬——设备在运行不能停机只能在机座上贴几个加速度计连续采一周这时候OMA几乎是唯一选择。1.3 用Matlab做这件事的合理姿势Matlab的信号处理工具箱提供了tfestimate、pwelch、svd这些底层函数官方也确实有modalfrf、modalfit、modalsd这样的现成功能。我个人的建议是以手动实现为主官方函数交叉验证为辅。手动实现的好处是能真正理解算法边界。比如FDD到底怎么用SVD分解互谱矩阵SSI的Hankel矩阵为什么要这样堆叠你写过一遍代码才能在识别结果异常时找到问题出在哪个环节。否则黑盒调用出问题根本无从下手。我自己早期就是直接调工具箱遇到模态漏识别只能干着急后来把底层算法重写了一遍才彻底搞明白。数据量不大时Matlab矩阵运算非常顺手可视化调试也方便。本文涉及的核心代码都不依赖额外工具箱用基本函数就能跑通。2. 数据质量是第一关振动信号预处理与谱估计要点2.1 采样之前就要定好的三件事很多人拿到数据直接就开始跑算法结果识别出来的频率总是对不上后来发现是采样参数定得不对。采样率、数据长度、参考点位置这三件事必须在采集方案阶段就想清楚。采样率至少要满足关心最高频率的2.56倍以上不能只按奈奎斯特的2倍来定因为真实采集系统需要为抗混叠滤波器留出过渡带。比如你关心0.5~200Hz的模态采集速率取512Hz是底线取1024Hz更稳。如果关心的是高频局部模态采样率不够高频模态在采集阶段就已经被抹掉后面的识别算法再强也救不回来。数据长度直接决定频率分辨率。频率分辨率Δf等于采样率除以FFT点数也就是Δf fs / nfft。如果两阶模态相差只有3Hz分辨率至少要小于1Hz最好0.5Hz以下否则两峰在频谱里直接融成一个包络任何峰值搜索算法都分不开。对于OMA场景环境激励响应需要很长的数据来平均通常要采集十几分钟甚至更久。参考点是用来衡量其他测点相位与幅值关系的基准绝对不能让参考点落在关心模态的节点上。否则该阶模态在互谱里被“抹平”后续识别必然漏掉。一个稳妥的做法是提前做有限元粗算或者先用一个临时参考点做锤击预试验确定哪些位置是节点再正式布点。2.2 预处理四板斧去均值、去趋势、滤波、重采样拿到原始加速度信号后我一般会先做四步预处理首先是去均值加速度计会有直流偏置直接用detrend(x, constant)处理。然后是去线性趋势温漂和线缆摆动会造成基线漂移用detrend(x, linear)。做这两步之前务必先看时域波形如果信号里出现削波、传感器松动的瞬时冲击那种数据段该剔除就剔除不能指望后续滤波把它抹掉。然后是带通滤波。选Butterworth滤波器加filtfilt零相位滤波原因是filtfilt不会产生相位偏移模态频率位置不会被扭曲。滤波器阶数6阶足够阶数过高会引入数值不稳定。滤波范围要覆盖整个关心频带边缘留一点余量防止模态频率正好落在过渡带上被衰减。最后是重采样。高采样率的数据如果只关心低频段可以先低通滤波再降采样既减少数据量又能让同一FFT长度下频率分辨率更高。Matlab的resample函数内部自带抗混叠滤波可以直接用。% 信号预处理示例 fs 1024; % 原始采样率 acc detrend(acc_raw, constant); acc detrend(acc, linear); % 带通滤波 0.5~200 Hz [b, a] butter(6, [0.5 200]/(fs/2), bandpass); acc filtfilt(b, a, acc);滤波之后一定要肉眼检查滤波前后频谱确认关心频带内没有幅值畸变。我用filtfilt踩过一次坑滤波器阶数设到10阶低频段出现轻微振铃结果某阶低频模态的频响曲线在峰附近出现波浪状半功率带宽法直接失效。2.3 频响函数和互谱密度估计加窗、平均、H1估计预处理做完下一步就是把时间信号转换到频域得到频响函数FRF或功率谱密度矩阵。EMA场景下FRF用H1估计最常用H1(f) G_fx(f) / G_ff(f)。G_ff是力信号的自功率谱G_fx是力与响应之间的互功率谱。H1估计的假设是噪声主要集中在响应端能较好抑制响应噪声。如果力信号本身噪声大就需要考虑H2估计或者Hv估计。锤击试验中力信号是脉冲形状用力窗保证力信号完整且窗内无泄漏时H1估计通常工作得很好。纯响应OMA场景则用互谱密度函数。用cpsd计算每一对通道之间的互谱形成一个多通道互谱矩阵这个矩阵就是后面FDD的输入。估计时加汉宁窗重叠率取50%~75%平均次数越多谱曲线越平滑但频率分辨率会随窗口长度变化需要在两者之间权衡。nfft 8192; win hanning(nfft); noverlap ceil(nfft * 0.75); % FRFH1估计输入力信号force输出响应acc_1 [frf, f] tfestimate(force, acc_1, win, noverlap, nfft, fs); % 互谱矩阵OMA场景 Nch size(acc, 2); Pxx zeros(length(f), Nch, Nch); for ii 1:Nch for jj 1:Nch [Pxx(:, ii, jj), f] cpsd(acc(:, ii), acc(:, jj), win, noverlap, nfft, fs); end end注意这里的窗函数是针对随机激励的情况。锤击激励的加窗策略完全不同我放到第5章详细说因为那是一个非常容易踩坑的细节。3. 频域方法实战峰值拾取与频域分解实现3.1 峰值拾取法是最简单的方法但别迷信它峰值拾取法的思路非常直接在FRF或自谱幅值曲线上找局部峰值峰值对应的频率就是固有频率阻尼比用半功率带宽法计算。对于模态稀疏、阻尼小、频谱峰分离良好的结构这个方法效率很高几行代码就能得到一个初步结果。但它的局限也很明显模态密集时相邻峰值会发生重叠拾取出来的峰位置会偏向中间频率误差可能超过5%阻尼比较大时峰本身变得扁平峰值位置和3dB带宽都很难准。所以我通常只把峰值拾取当作预分析用来快速确认大概有几阶模态、大概在什么频段然后再用更鲁棒的方法做正式识别。3.2 FDD的核心对功率谱密度矩阵做SVD频域分解法FDD是峰值拾取的升级版它解决的核心问题是频谱峰重叠时怎么把不同模态的贡献分离开。思路很巧妙在每一个频率点上把多通道互谱矩阵当作一个矩阵对它做奇异值分解。当某个频率接近某阶模态时互谱矩阵的主奇异值会明显大于其他奇异值对应的左奇异向量就是该阶模态振型的估计。换句话说FDD利用不同模态在空间上的正交性把信号投影到振型空间里去分离模态而不是只盯着单个通道的自谱看峰值。这带来的实际好处是即使两个模态频率很接近只要它们的振型不是完全一样SVD也能在频率附近的奇异值曲线上把两个峰分开。这一点在对称结构或轴向对称的壳体结构中特别有用这类结构经常出现成对的密集模态。3.3 FDD的Matlab实现与自动峰值搜索FDD的代码实现并不复杂。上面已经用cpsd构建了互谱矩阵Pxx接下来对每个频率点做SVDs1 zeros(size(f)); U1 zeros(Nch, numel(f)); for k 1:numel(f) S squeeze(Pxx(k, :, :)); % 当前频率点的互谱矩阵 S (S S) / 2; % 确保矩阵为 Hermitian 对称 [U, D, ~] svd(S); s1(k) D(1, 1); U1(:, k) U(:, 1); end第一奇异值曲线s1就是FDD的核心输出。真实模态会在s1曲线上形成明显峰值峰值对应的左奇异向量U1(:, k)就是振型系数。峰值搜索用findpeaks即可但阈值参数要结合信噪比调整s1dB 10 * log10(s1); [pks, locs] findpeaks(s1dB, MinPeakProminence, 6); fn f(locs);MinPeakProminence设为6~10dB比较常见。设太小会拾取一堆噪声毛刺设太大会漏掉弱模态。先画s1dB曲线看一遍再回来调这个参数是标准调试流程。3.4 从奇异值曲线估计阻尼比半功率带宽法阻尼比估计最常用的还是半功率带宽法。公式很简单ζ (f2 - f1) / (2 f0)其中f0是峰频率f1、f2是峰值两侧功率衰减一半-3dB处的频率。关键是要搞清楚量纲。奇异值曲线来自互谱矩阵的特征值是功率量纲所以半功率点应该取峰值线性值的1/2也就是显示成dB时的-3dB位置。如果手头是幅值谱则取峰值的1/√2。% 对第i阶峰做半功率带宽估计 f0 fn(i); [~, id0] min(abs(f - f0)); pkVal s1(id0); thr pkVal / 2; % 功率谱阈值 % 左侧找阈值交点 lo id0; while lo 2 s1(lo-1) thr lo lo - 1; end fl interp1([s1(lo-1), s1(lo)], [f(lo-1), f(lo)], thr, linear); % 右侧找阈值交点 hi id0; while hi numel(f)-1 s1(hi1) thr hi hi 1; end fr interp1([s1(hi1), s1(hi)], [f(hi1), f(hi)], thr, linear); zeta (fr - fl) / (2 * f0);这里有一个非常重要的问题半功率带宽法对频率分辨率极其敏感。如果Δf太大峰顶会被“削平”3dB带宽明显变宽阻尼比被高估。所以我一般会在峰附近局部加密频率轴或者用曲线拟合替代简单的插值。另外搜索范围的限制也很重要如果相邻模态离得很近阈值交点容易跨到旁边模态的曲线上必须在峰附近限制搜索带宽例如只用f0两侧±5个频率采样点的范围。4. 时域方法实战随机子空间SSI与ERA补充4.1 频域方法搞不定的情况密集模态、大阻尼、连续激励FDD虽然比峰值拾取强但面对极密集的模态和比较大的阻尼时仍会吃力。本质原因在于频域法的分辨率受FFT窗口长度限制谱泄漏会把相邻峰之间的谷填起来。时域法绕开了这个限制直接在时间维用原始响应序列拟合状态空间模型不经过加窗平均也就不存在泄漏和分辨率损失的问题。代价是计算量更大、模型阶次不好选。时域法的输出往往伴随着大量虚假模态必须配合稳定图筛选。这也是为什么我会先跑FDD摸个底再决定要不要上SSI和ERA如果FDD的奇异值曲线峰分得开时域法不是必须的如果峰黏在一起直接上时域法。4.2 随机子空间法的核心思路与Matlab框架随机子空间法SSI把结构系统建模成离散状态空间x(k1) A x(k) w(k)y(k) C x(k) v(k)其中x是内部状态y是实测响应A和C是待估计的系统矩阵。识别出A之后对A做特征值分解特征值对应系统极点再换算成频率和阻尼比。协方差驱动SSICov-SSI的逻辑更直观先用输出数据计算协方差序列再构造成块Toeplitz矩阵对它做SVD得到可观矩阵最后利用移位结构估计系统矩阵A。数据驱动SSIData-SSI则直接对Hankel矩阵做投影精度更高但公式更复杂。下面给的是协方差驱动SSI的框架代码适合理解原理% 协方差驱动SSI框架示意 N size(y, 2); % y: Nch × N 通道响应矩阵 Nch size(y, 1); maxLag 30; % 计算各通道间协方差序列 R_lag R_lag zeros(Nch, Nch, maxLag1); for lag 0:maxLag y1 y(:, 1:end-lag); y2 y(:, 1lag:end); R_lag(:, :, lag1) y1 * y2 / size(y1, 2); end % 构造块Toeplitz矩阵 T (r×r块) r maxLag 1; T zeros(r*Nch, r*Nch); for i 1:r for j 1:r T((i-1)*Nch1:i*Nch, (j-1)*Nch1:j*Nch) R_lag(:, :, abs(i-j)1); end end [U, S, V] svd(T, econ); n 20; % 模型阶次实际需要用稳定图扫描 Un U(:, 1:n); Sn S(1:n, 1:n); O Un * sqrtm(Sn); % 可观矩阵尺寸 (r*Nch) × n % 利用移位结构估计系统矩阵 A O1 O(1:end-Nch, :); O2 O(Nch1:end, :); A pinv(O1) * O2; C O(1:Nch, :); % 特征值分解并转成频率/阻尼 [Vd, Dd] eig(A); lambda_d diag(Dd); lambda_c log(lambda_d) * fs; % 连续域极点 freq abs(lambda_c) / (2*pi); zeta -real(lambda_c) ./ abs(lambda_c);注意这只是一个教学级框架真实工程实现还有大量细节比如协方差序列的长度选择、块数r的确定、模型阶次n的扫描范围、稳定图的聚合逻辑。如果你要做批量数据处理光靠这段代码是不够的需要对照教材把完整算法补全或者找一个经过验证的SSI工具包做交叉验证。4.3 ERA与随机减量技术怎么从随机响应里“抠”出自由衰减特征系统实现算法ERA的输入要求是脉冲响应函数或自由衰减响应。如果只有环境激励响应可以先用随机减量技术RDT提取自由衰减信号设定一个触发阈值当参考通道信号从下方穿越阈值时截取一段固定长度的响应把大量这样的片段做总体平均。随机成分在平均中趋于零剩下的就是确定性自由衰减响应。随机减量技术在老一代土木结构模态测试中大量使用现在看起来有点“土”但在处理长段环境数据时仍然很实用。得到自由衰减信号后构造Hankel矩阵再做SVD降阶就是标准的ERA流程。核心思路和SSI类似也是从系统矩阵的特征值中求频率和阻尼。Hankel矩阵的构造大概是% 自由衰减/脉冲响应 h(k)构造块Hankel矩阵 % h(k) 是 p×1 向量p为测点数k0..M r 20; c 20; H0 zeros(r*p, c*p); for i 1:r for j 1:c H0((i-1)*p1:i*p, (j-1)*p1:j*p) h(:, ij-1); end end % 再构造H1h从第2个点开始 % 对H0做SVD截断到2n阶由H1求离散系统矩阵AERA的优势在于能用较短的响应数据得到较稳定的结果适合冲击响应或雷击激励等瞬态场景。但环境激励场景下随机减量提取的质量直接决定ERA的识别精度如果平均次数不够自由衰减曲线里残留噪声识别阻尼比会明显偏大。4.4 稳定图筛选虚假模态的照妖镜无论SSI还是ERA都会在模型阶次设置不当时产生大量虚假模态。解决办法是稳定图把模型阶次n从2扫描到60或者更高每个阶次都会识别出一组频率和阻尼。然后把所有结果画在坐标图上横轴是频率纵轴是阶次。真实模态在不同阶次下会反复出现频率基本不变虚假模态则随阶次乱跑。稳定图的判断标准一般是连续多个阶次下频率变化小于1%、阻尼比变化小于5%或绝对值差小于0.01就认为该点是稳定点。稳定点在不同阶次上连成一条竖线这个位置就是真实模态。Matlab画稳定图很简单figure; hold on; for n 2:2:60 [f_n, zeta_n] run_ssi(y, n); % 自实现的SSI识别函数 % 与已确认的稳定模态比较判断后画点 for k 1:length(f_n) if 是稳定点 plot(f_n(k), n, b.); else plot(f_n(k), n, r.); end end end xlabel(频率 / Hz); ylabel(模型阶次 n);实际识别中低频段往往比高频段更容易稳定因为高频模态信噪比低、阻尼识别波动大。我非常建议在看稳定图时结合FDD奇异值曲线一起看奇异值曲线上有明显峰的位置再去看稳定图上有没有稳定点与之对应这样能极大减少漏判和误判。5. 实测中最常见的坑泄漏、噪声、模态遗漏与阻尼偏差5.1 加窗不是越平滑越好锤击和随机激励要区别对待这是很多新手最容易忽略的地方。随机激励下加汉宁窗没有问题因为随机信号本身是无限长的加窗是为了压低FFT的泄漏旁瓣。但锤击激励完全不同。锤击的力信号是近似脉冲能量集中在很短时间内。如果力信号也加汉宁窗有效信息会被直接削掉FRF幅值严重失真。正确做法是力信号加矩形窗或者干脆不加窗。响应信号则要看衰减情况如果锤击后结构响应在采集窗口内已经衰减到噪声水平响应信号也可以不加窗如果到窗口末端还在振动就必须加指数窗让尾部落到零附近。指数窗会人为引入额外阻尼使阻尼比估计偏大。这是锤击试验中阻尼测不准的主要原因之一。应对办法是指数窗的时间常数一定要比结构自身衰减时间长得多同时在报告中注明加窗修正情况。如果你发现同一结构用锤击法和激振器法测出的阻尼比差了一大截先怀疑指数窗设置。5.2 参考点落在节点模态直接消失这个坑看起来很简单但几乎每个人都踩过。模态节点是振型里位移为零的位置如果参考点恰好落在某阶模态的节点上该测点的响应幅值接近零互谱里这阶模态几乎不会被看到。实际工程中节点位置并不直观。我给一个旋转对称的圆盘结构做过测试一阶二阶模态频率只差0.8Hz振型是空间上互相垂直的两个方向。参考点放在某个角度后第二阶模态在FRF上完全消失当时一度以为是算法问题后来把参考点换到45度方向两阶模态同时出现。如果你有有限元模型一定要先查看关心模态的振型图把节点位置标出来参考点远离这些位置。没有有限元模型时就用两三个不同位置参考点各做一遍模态能稳定出现的那组参考点才可靠。5.3 阻尼比为什么总测不准噪声、分辨率、激励幅值阻尼比是模态参数里最难测准的。半功率带宽法在噪声影响下经常高估阻尼因为噪声底抬高了谱峰两侧的曲线让3dB带宽看起来更宽。频率分辨率太粗会把峰削平同样导致高估。所以半功率带宽法得到的阻尼比我都当作参考值不直接用于工程设计。更可靠的思路是在峰附近用单自由度理论曲线做最小二乘拟合用整个峰的形状来反演阻尼而不是只依赖两个3dB交点。即便如此阻尼识别结果仍然有较大的分散性。同一根悬臂梁我用5次锤击试验分别识别阻尼比从0.8%到1.5%都很正常。这是结构本身的非线性、环境和测量系统共同作用的结果。如果你发现阻尼比识别结果很不稳定先检查激励幅值。大激励幅值下结构的非线性阻尼会更明显同一结构的阻尼比可能随激励增大而上升。报告阻尼比时必须注明测试时的激励条件和传感器位置否则这个数据没法复现。5.4 虚假模态和遗漏模态的判断套路虚假模态和遗漏模态是识别结果里最常见的问题。我的判断套路有四条第一看相干函数。FRF估计中在模态峰附近的相干值应该接近1如果相干值明显低于0.9这个峰的可信度很低。第二看多通道一致性。真实模态会在几乎所有相关通道的FRF或奇异值曲线上同时形成峰而噪声峰通常只在个别坏通道上出现。第三看振型连续性。把振型按结构几何位置画出来看起来应该是一条平滑曲线如果有突然的跳变多半是某个测点传感器松了或者测点坐标填错。第四看奇异值多阶曲线。FDD时不要只看第一奇异值第二条和第三条奇异值也在某个频段同时隆起往往是重根模态或密集模态的信号只盯第一奇异值会漏掉它们。判断真假模态时还有一个容易被忽略的因素传感器对结构的质量载荷效应。小试件上装了几个几十克的加速度计高频模态的频率会明显下降这属于传感器附加质量改变了结构属性不是识别算法能解决的。低频结构影响小高频细部模态要认真评估。6. 从识别结果到工程决策验证与延伸6.1 用MAC矩阵检查振型区分度频率和阻尼识别完之后还要验证振型。模态置信准则MAC是标准工具它计算两个振型向量之间的空间相关性取值0到1。同一个模态与自身比较时MAC应该接近1不同模态之间的MAC应该接近0。n_modes size(phi, 2); % phi: 测点数 × 模态数 的振型矩阵 MAC zeros(n_modes); for ii 1:n_modes for jj 1:n_modes MAC(ii, jj) abs(phi(:, ii) * phi(:, jj))^2 / ... (norm(phi(:, ii))^2 * norm(phi(:, jj))^2); end end如果两个不同模态之间的MAC值很高比如超过0.8说明测点布局不足以区分这两个振型最直接的解决办法是增加测点密度。设备和测点不够、无法补测时就只能如实说明当前测点无法分辨这对模态。MAC对角线值低通常意味着该阶振型在大多数测点上响应幅值很弱识别结果同样不可靠。6.2 模态参数拿去做有限元模型修正和健康监测识别出的模态参数在工程上有几个很常见的下游用途。有限元模型修正是其中之一。初始有限元模型的刚度、边界条件和材料参数往往和实测有偏差通过优化这些参数让有限元计算的固有频率和振型尽量贴近实测值修正后的模型才能用于后续响应预测和载荷计算。结构健康监测则利用频率漂移来指示刚度退化。桥梁某处出现裂缝局部刚度下降对应某几阶固有频率会下降。连续监测环境振动并做OMA识别用频率变化趋势作为预警指标是目前大型土木结构健康监测的主流方案之一。故障诊断领域也经常和模态分析挂钩。旋转机械在转速变化过程中如果激励频率比如齿轮啮合频率刚好与结构某阶固有频率重合就会发生共振振动和噪声急剧放大。识别出设备的各阶固有频率后可以在设计阶段避开共振转速或者在运行阶段快速定位异常共振。6.3 与官方工具箱交叉验证自写算法和modalsd怎么配合自写算法跑完之后我强烈建议用Matlab官方的modalsd做一次交叉验证。modalsd直接接收多通道响应数据和频率轴输出稳定图底层实现用的是类似FDD配合自动化筛选的方法在多数常规结构上表现稳定。交叉验证时重点对比两件事一是主峰频率是否一致频率差在1%以内算正常二是稳定点的数量和分布是否接近。如果自写算法和工具箱在频率上差了很多说明数据预处理环节可能出了问题比如滤波频带设置、窗函数类型、参考通道选取有误先回去检查数据而不是调算法。如果两者结果一致你再对峰值处做半功率带宽或拟合得到阻尼比整条识别链路才算走完。我个人习惯是在跑任何识别算法之前先把时域波形、自谱、相干函数这三张图全部画出来看一遍。花不了几分钟但能提前发现传感器松动、削波、参考点节点这些低级问题。模态参数识别本质上是个“数据进、参数出”的工程问题算法再精巧也架不住输入数据本身有问题。所以别急着堆高层方法先把数据底子打扎实后面识别结果自然稳。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。