1function [zeta, Q] = plate_damping(freqs, support_part, params, P)
2% PLATE_DAMPING Modal damping ratios from three losses.
3%
4% [zeta, Q] = plate_damping(freqs, support_part, params, P) combines, for
5% each mode of frequency f,
6% material loss 1 / Q_material (params.material.Q)
7% air loading 1 / Q_air, Q_air = 1100 / sqrt(f / 1 kHz), floored at 50 Hz
8% thread dashpot c phi_hole^2 / omega, the dashpot c at the hole acting on
9% the mass-normalized mode's displacement phi_hole there
10% into 1/Q = sum of the three; zeta = min(0.08, 1 / (2 Q)) is the damping
11% ratio and Q the total quality factor. Rigid-body modes (below 20 Hz, the
12% finite-element method keeps three) get zeta = 0.01 so that momentum can
13% flow into them during the collision without their being clamped.
14%
15% These are the constants of the simulators this lab follows: order-of-
16% magnitude figures, not measurements of a particular plate.
18freqs = freqs(:)';
19support_part = support_part(:)';
20omega = 2 * pi * freqs;
21q_air = 1100 ./ sqrt(max(freqs / 1000, 0.05));
22inv_q = 1 / params.material.Q + 1 ./ q_air;
23inv_q = inv_q + params.thread.dashpot * support_part.^2 ./ max(omega, 1);
24zeta = min(0.08, 0.5 * inv_q);
25zeta(freqs < 20) = 0.01;
26Q = 1 ./ inv_q;
27end