% A flat, free-edged plate held at its center, struck near the rim: a flat % cymbal or gong. Units are SI. % % The plate's stiffness comes from bending triplets (three beads in a row % resist bending, sys.bends), not from tension: the springs carry no load % at rest and only resist stretching. Stretching is what makes the plate % nonlinear, once the motion is comparable to the plate's effective % thickness, about a*sqrt(kb/k) (here 4 mm). The center is clamped by % pinning the middle bead and its six neighbours; with a single pinned bead % the plate could tilt and spin freely. R = 0.2; % radius (m) a = 0.012; % bead spacing (m) sigma = 8.9; % mass per area (kg/m^2), about 1 mm of bronze kb = 7e5; % bending stiffness of each triplet (N/m); sets the pitch thick = 0.1; % kb/k: larger is "thicker", nonlinear only at larger motion [pos, tri, rim, trip] = bp_hexdisk(R, a); E = bp_edges(tri); sys.pos = pos; sys.mass = sigma * (sqrt(3)/2) * a^2; sys.pinned = bp_near(pos, [0 0 0], 1.05 * a); % the mount sys.springs = bp_springs(pos, E, kb / thick, 0); % no tension at rest sys.bends = [trip, kb * ones(size(trip, 1), 1)]; sys = bp_decay(sys, [100 2.5; 5000 1.2]); % A stick on the edge: a sharp 0.3 ms push on the beads within 2 cm of the % rim point. The plate is mildly nonlinear at this force (14% from the % small-strike reference by 0.3 s); at 4x it differs by 14% within 10 ms % and 93% by 0.3 s. A longer, softer push mostly rocks the plate on its % mount. hit.t = 0; hit.beads = bp_near(pos, [0.18 0 0], 0.02); hit.force = [0 0 -150]; % peak force per bead (N) hit.duration = 3e-4; sys.hits = hit; sys.listen = struct('beads', bp_near(pos, [-0.1 0.06 0], 0), 'dir', [0 0 1]); sys.duration = 2.5; fprintf('%d beads, %d springs, %d bending triplets, %d struck\n', ... size(pos, 1), size(E, 1), size(trip, 1), numel(hit.beads));