[READ-ONLY] Mirror of https://github.com/jmrplens/PyOctaveBand. [Python3] Octave-Band and Fractional Octave-Band filter. For signal in time domain. jmrplens.github.io/PyOctaveBand/
acoustics audio filter frequency frequency-analysis frequency-domain octave python3 signal time-domain
0

Configure Feed

Select the types of activity you want to include in your feed.

feat: dynamic transfer stiffness of resilient elements (ISO 10846)

Add the ISO 10846 dynamic transfer stiffness k2,1 = F2,b/u1 of resilient
elements (vibration isolators, mounts, bellows, hoses) — the quantity
that characterises their vibro-acoustic transmission (Part 1, clause 5).
This is the third PR of the structural vibroacoustics series (#16) and
feeds ISO 9611, EN 15657 and EN 12354-5.

New module `transfer_stiffness`:
- `transfer_stiffness_level` Lk = 20 lg(|k2,1|/k0) re k0 = 1 N/m
(Parts 2/3, 3.17) and `loss_factor` eta = Im/Re (Part 1, 3.8).
- `transfer_stiffness_direct` k2,1 = F2,b/u1 (direct method, Part 2).
- `transfer_stiffness_indirect` k2,1 = -(2 pi f)^2 (m2 + mf) T from the
vibration transmissibility and a blocking mass (indirect method,
Part 3, Formula 1), plus `base_transmissibility` for the ideal
mass-loaded Kelvin-Voigt element used in examples and the figure.
- `TransferStiffnessResult` (`.level`, `.loss_factor`, `.magnitude`,
`.to("impedance"/"apparent_mass")`, `.plot()`) and
`indirect_transfer_stiffness_result`.

The dynamic stiffness is the reciprocal receptance of the FRF family, so
k = jw Z = -w^2 m_eff reuse the mechanical-mobility convert_frf pivot
(Part 1, Annex A / Table A.2).

Conformance is anchored on the standard's closed-form definitions: the
level of a decade of stiffness (120 dB re 1 N/m), the indirect inertia
relation, and the Table-A.2 identity k = jw Z (129/129).

Adds the module figure, the EN/ES guides, the docs index and
api-reference rows, and the sidebar entry.

José M. Requena Plens (Jul 11, 2026, 6:14 PM +0200) 048d03bc 15355ef8

+4021 -4
+765
.github/images/transfer_stiffness.svg
··· 1 + <?xml version="1.0" encoding="utf-8" standalone="no"?> 2 + <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 3 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4 + <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="713.0875pt" height="438.916562pt" viewBox="0 0 713.0875 438.916562" xmlns="http://www.w3.org/2000/svg" version="1.1"> 5 + <metadata> 6 + <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 7 + <cc:Work> 8 + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> 9 + <dc:format>image/svg+xml</dc:format> 10 + <dc:creator> 11 + <cc:Agent> 12 + <dc:title>Matplotlib v3.11.0, https://matplotlib.org/</dc:title> 13 + </cc:Agent> 14 + </dc:creator> 15 + </cc:Work> 16 + </rdf:RDF> 17 + </metadata> 18 + <defs> 19 + <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> 20 + </defs> 21 + <g id="figure_1"> 22 + <g id="patch_1"> 23 + <path d="M 0 438.916562 24 + L 713.0875 438.916562 25 + L 713.0875 0 26 + L 0 0 27 + z 28 + " style="fill: #ffffff"/> 29 + </g> 30 + <g id="axes_1"> 31 + <g id="patch_2"> 32 + <path d="M 47.289844 398.913437 33 + L 705.8875 398.913437 34 + L 705.8875 28.318125 35 + L 47.289844 28.318125 36 + z 37 + " style="fill: #ffffff"/> 38 + </g> 39 + <g id="patch_3"> 40 + <path d="M 47.289844 398.913437 41 + L 383.909074 398.913437 42 + L 383.909074 28.318125 43 + L 47.289844 28.318125 44 + z 45 + " clip-path="url(#pcaaa32d4c0)" style="fill: #e0e0e0; opacity: 0.12; stroke: #e0e0e0; stroke-linejoin: miter"/> 46 + </g> 47 + <g id="matplotlib.axis_1"> 48 + <g id="xtick_1"> 49 + <g id="line2d_1"> 50 + <path d="M 318.82399 398.913437 51 + L 318.82399 28.318125 52 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 53 + </g> 54 + <g id="line2d_2"> 55 + <defs> 56 + <path id="m3d27035b55" d="M 0 0 57 + L 0 3.5 58 + " style="stroke: #000000; stroke-width: 0.8"/> 59 + </defs> 60 + <g> 61 + <use xlink:href="#m3d27035b55" x="318.82399" y="398.913437" style="stroke: #000000; stroke-width: 0.8"/> 62 + </g> 63 + </g> 64 + <g id="text_1"> 65 + <!-- $\mathdefault{10^{2}}$ --> 66 + <g transform="translate(310.02399 415.313438)"> 67 + <text> 68 + <tspan x="0" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'">1</tspan> 69 + <tspan x="6.362305" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'">0</tspan> 70 + <tspan x="12.820312" y="-4.804688" style="font-size: 7px; font-family: 'DejaVu Sans'">2</tspan> 71 + </text> 72 + </g> 73 + </g> 74 + </g> 75 + <g id="xtick_2"> 76 + <g id="line2d_3"> 77 + <path d="M 605.042621 398.913437 78 + L 605.042621 28.318125 79 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 80 + </g> 81 + <g id="line2d_4"> 82 + <g> 83 + <use xlink:href="#m3d27035b55" x="605.042621" y="398.913437" style="stroke: #000000; stroke-width: 0.8"/> 84 + </g> 85 + </g> 86 + <g id="text_2"> 87 + <!-- $\mathdefault{10^{3}}$ --> 88 + <g transform="translate(596.242621 415.313438)"> 89 + <text> 90 + <tspan x="0" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'">1</tspan> 91 + <tspan x="6.362305" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'">0</tspan> 92 + <tspan x="12.820312" y="-4.804688" style="font-size: 7px; font-family: 'DejaVu Sans'">3</tspan> 93 + </text> 94 + </g> 95 + </g> 96 + </g> 97 + <g id="xtick_3"> 98 + <g id="line2d_5"> 99 + <path d="M 118.765752 398.913437 100 + L 118.765752 28.318125 101 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 102 + </g> 103 + <g id="line2d_6"> 104 + <defs> 105 + <path id="md1b22fa4b4" d="M 0 0 106 + L 0 2 107 + " style="stroke: #000000; stroke-width: 0.6"/> 108 + </defs> 109 + <g> 110 + <use xlink:href="#md1b22fa4b4" x="118.765752" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 111 + </g> 112 + </g> 113 + </g> 114 + <g id="xtick_4"> 115 + <g id="line2d_7"> 116 + <path d="M 169.166351 398.913437 117 + L 169.166351 28.318125 118 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 119 + </g> 120 + <g id="line2d_8"> 121 + <g> 122 + <use xlink:href="#md1b22fa4b4" x="169.166351" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 123 + </g> 124 + </g> 125 + </g> 126 + <g id="xtick_5"> 127 + <g id="line2d_9"> 128 + <path d="M 204.926145 398.913437 129 + L 204.926145 28.318125 130 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 131 + </g> 132 + <g id="line2d_10"> 133 + <g> 134 + <use xlink:href="#md1b22fa4b4" x="204.926145" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 135 + </g> 136 + </g> 137 + </g> 138 + <g id="xtick_6"> 139 + <g id="line2d_11"> 140 + <path d="M 232.663597 398.913437 141 + L 232.663597 28.318125 142 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 143 + </g> 144 + <g id="line2d_12"> 145 + <g> 146 + <use xlink:href="#md1b22fa4b4" x="232.663597" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 147 + </g> 148 + </g> 149 + </g> 150 + <g id="xtick_7"> 151 + <g id="line2d_13"> 152 + <path d="M 255.326744 398.913437 153 + L 255.326744 28.318125 154 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 155 + </g> 156 + <g id="line2d_14"> 157 + <g> 158 + <use xlink:href="#md1b22fa4b4" x="255.326744" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 159 + </g> 160 + </g> 161 + </g> 162 + <g id="xtick_8"> 163 + <g id="line2d_15"> 164 + <path d="M 274.488163 398.913437 165 + L 274.488163 28.318125 166 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 167 + </g> 168 + <g id="line2d_16"> 169 + <g> 170 + <use xlink:href="#md1b22fa4b4" x="274.488163" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 171 + </g> 172 + </g> 173 + </g> 174 + <g id="xtick_9"> 175 + <g id="line2d_17"> 176 + <path d="M 291.086539 398.913437 177 + L 291.086539 28.318125 178 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 179 + </g> 180 + <g id="line2d_18"> 181 + <g> 182 + <use xlink:href="#md1b22fa4b4" x="291.086539" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 183 + </g> 184 + </g> 185 + </g> 186 + <g id="xtick_10"> 187 + <g id="line2d_19"> 188 + <path d="M 305.727344 398.913437 189 + L 305.727344 28.318125 190 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 191 + </g> 192 + <g id="line2d_20"> 193 + <g> 194 + <use xlink:href="#md1b22fa4b4" x="305.727344" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 195 + </g> 196 + </g> 197 + </g> 198 + <g id="xtick_11"> 199 + <g id="line2d_21"> 200 + <path d="M 404.984383 398.913437 201 + L 404.984383 28.318125 202 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 203 + </g> 204 + <g id="line2d_22"> 205 + <g> 206 + <use xlink:href="#md1b22fa4b4" x="404.984383" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 207 + </g> 208 + </g> 209 + </g> 210 + <g id="xtick_12"> 211 + <g id="line2d_23"> 212 + <path d="M 455.384983 398.913437 213 + L 455.384983 28.318125 214 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 215 + </g> 216 + <g id="line2d_24"> 217 + <g> 218 + <use xlink:href="#md1b22fa4b4" x="455.384983" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 219 + </g> 220 + </g> 221 + </g> 222 + <g id="xtick_13"> 223 + <g id="line2d_25"> 224 + <path d="M 491.144777 398.913437 225 + L 491.144777 28.318125 226 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 227 + </g> 228 + <g id="line2d_26"> 229 + <g> 230 + <use xlink:href="#md1b22fa4b4" x="491.144777" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 231 + </g> 232 + </g> 233 + </g> 234 + <g id="xtick_14"> 235 + <g id="line2d_27"> 236 + <path d="M 518.882228 398.913437 237 + L 518.882228 28.318125 238 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 239 + </g> 240 + <g id="line2d_28"> 241 + <g> 242 + <use xlink:href="#md1b22fa4b4" x="518.882228" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 243 + </g> 244 + </g> 245 + </g> 246 + <g id="xtick_15"> 247 + <g id="line2d_29"> 248 + <path d="M 541.545376 398.913437 249 + L 541.545376 28.318125 250 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 251 + </g> 252 + <g id="line2d_30"> 253 + <g> 254 + <use xlink:href="#md1b22fa4b4" x="541.545376" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 255 + </g> 256 + </g> 257 + </g> 258 + <g id="xtick_16"> 259 + <g id="line2d_31"> 260 + <path d="M 560.706794 398.913437 261 + L 560.706794 28.318125 262 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 263 + </g> 264 + <g id="line2d_32"> 265 + <g> 266 + <use xlink:href="#md1b22fa4b4" x="560.706794" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 267 + </g> 268 + </g> 269 + </g> 270 + <g id="xtick_17"> 271 + <g id="line2d_33"> 272 + <path d="M 577.30517 398.913437 273 + L 577.30517 28.318125 274 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 275 + </g> 276 + <g id="line2d_34"> 277 + <g> 278 + <use xlink:href="#md1b22fa4b4" x="577.30517" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 279 + </g> 280 + </g> 281 + </g> 282 + <g id="xtick_18"> 283 + <g id="line2d_35"> 284 + <path d="M 591.945975 398.913437 285 + L 591.945975 28.318125 286 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 287 + </g> 288 + <g id="line2d_36"> 289 + <g> 290 + <use xlink:href="#md1b22fa4b4" x="591.945975" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 291 + </g> 292 + </g> 293 + </g> 294 + <g id="xtick_19"> 295 + <g id="line2d_37"> 296 + <path d="M 691.203015 398.913437 297 + L 691.203015 28.318125 298 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 299 + </g> 300 + <g id="line2d_38"> 301 + <g> 302 + <use xlink:href="#md1b22fa4b4" x="691.203015" y="398.913437" style="stroke: #000000; stroke-width: 0.6"/> 303 + </g> 304 + </g> 305 + </g> 306 + <g id="text_3"> 307 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: middle" x="376.588672" y="429.314219" transform="rotate(-0 376.588672 429.314219)">Frequency [Hz]</text> 308 + </g> 309 + </g> 310 + <g id="matplotlib.axis_2"> 311 + <g id="ytick_1"> 312 + <g id="line2d_39"> 313 + <path d="M 47.289844 396.727124 314 + L 705.8875 396.727124 315 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 316 + </g> 317 + <g id="line2d_40"> 318 + <defs> 319 + <path id="mef640d9f3a" d="M 0 0 320 + L -3.5 0 321 + " style="stroke: #000000; stroke-width: 0.8"/> 322 + </defs> 323 + <g> 324 + <use xlink:href="#mef640d9f3a" x="47.289844" y="396.727124" style="stroke: #000000; stroke-width: 0.8"/> 325 + </g> 326 + </g> 327 + <g id="text_4"> 328 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end" x="40.289844" y="400.525952" transform="rotate(-0 40.289844 400.525952)">90</text> 329 + </g> 330 + </g> 331 + <g id="ytick_2"> 332 + <g id="line2d_41"> 333 + <path d="M 47.289844 335.539868 334 + L 705.8875 335.539868 335 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 336 + </g> 337 + <g id="line2d_42"> 338 + <g> 339 + <use xlink:href="#mef640d9f3a" x="47.289844" y="335.539868" style="stroke: #000000; stroke-width: 0.8"/> 340 + </g> 341 + </g> 342 + <g id="text_5"> 343 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end" x="40.289844" y="339.338696" transform="rotate(-0 40.289844 339.338696)">100</text> 344 + </g> 345 + </g> 346 + <g id="ytick_3"> 347 + <g id="line2d_43"> 348 + <path d="M 47.289844 274.352613 349 + L 705.8875 274.352613 350 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 351 + </g> 352 + <g id="line2d_44"> 353 + <g> 354 + <use xlink:href="#mef640d9f3a" x="47.289844" y="274.352613" style="stroke: #000000; stroke-width: 0.8"/> 355 + </g> 356 + </g> 357 + <g id="text_6"> 358 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end" x="40.289844" y="278.151441" transform="rotate(-0 40.289844 278.151441)">110</text> 359 + </g> 360 + </g> 361 + <g id="ytick_4"> 362 + <g id="line2d_45"> 363 + <path d="M 47.289844 213.165357 364 + L 705.8875 213.165357 365 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 366 + </g> 367 + <g id="line2d_46"> 368 + <g> 369 + <use xlink:href="#mef640d9f3a" x="47.289844" y="213.165357" style="stroke: #000000; stroke-width: 0.8"/> 370 + </g> 371 + </g> 372 + <g id="text_7"> 373 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end" x="40.289844" y="216.964185" transform="rotate(-0 40.289844 216.964185)">120</text> 374 + </g> 375 + </g> 376 + <g id="ytick_5"> 377 + <g id="line2d_47"> 378 + <path d="M 47.289844 151.978101 379 + L 705.8875 151.978101 380 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 381 + </g> 382 + <g id="line2d_48"> 383 + <g> 384 + <use xlink:href="#mef640d9f3a" x="47.289844" y="151.978101" style="stroke: #000000; stroke-width: 0.8"/> 385 + </g> 386 + </g> 387 + <g id="text_8"> 388 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end" x="40.289844" y="155.776929" transform="rotate(-0 40.289844 155.776929)">130</text> 389 + </g> 390 + </g> 391 + <g id="ytick_6"> 392 + <g id="line2d_49"> 393 + <path d="M 47.289844 90.790846 394 + L 705.8875 90.790846 395 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 396 + </g> 397 + <g id="line2d_50"> 398 + <g> 399 + <use xlink:href="#mef640d9f3a" x="47.289844" y="90.790846" style="stroke: #000000; stroke-width: 0.8"/> 400 + </g> 401 + </g> 402 + <g id="text_9"> 403 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end" x="40.289844" y="94.589674" transform="rotate(-0 40.289844 94.589674)">140</text> 404 + </g> 405 + </g> 406 + <g id="ytick_7"> 407 + <g id="line2d_51"> 408 + <path d="M 47.289844 29.60359 409 + L 705.8875 29.60359 410 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 411 + </g> 412 + <g id="line2d_52"> 413 + <g> 414 + <use xlink:href="#mef640d9f3a" x="47.289844" y="29.60359" style="stroke: #000000; stroke-width: 0.8"/> 415 + </g> 416 + </g> 417 + <g id="text_10"> 418 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end" x="40.289844" y="33.402418" transform="rotate(-0 40.289844 33.402418)">150</text> 419 + </g> 420 + </g> 421 + <g id="text_11"> 422 + <!-- Transfer stiffness level $L_k$ [dB re 1 N/m] --> 423 + <g transform="translate(14.8 311.615781) rotate(-90)"> 424 + <text> 425 + <tspan x="0" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">T</tspan> 426 + <tspan x="5.108398" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">r</tspan> 427 + <tspan x="9.219727" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">a</tspan> 428 + <tspan x="15.347656" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">n</tspan> 429 + <tspan x="21.685547" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">s</tspan> 430 + <tspan x="26.895508" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">f</tspan> 431 + <tspan x="30.416016" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">e</tspan> 432 + <tspan x="36.568359" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">r</tspan> 433 + <tspan x="40.679688" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 434 + <tspan x="43.858398" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">s</tspan> 435 + <tspan x="49.068359" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">t</tspan> 436 + <tspan x="52.989258" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">i</tspan> 437 + <tspan x="55.767578" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">f</tspan> 438 + <tspan x="59.288086" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">f</tspan> 439 + <tspan x="62.808594" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">n</tspan> 440 + <tspan x="69.146484" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">e</tspan> 441 + <tspan x="75.298828" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">s</tspan> 442 + <tspan x="80.508789" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">s</tspan> 443 + <tspan x="85.71875" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 444 + <tspan x="88.897461" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">l</tspan> 445 + <tspan x="91.675781" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">e</tspan> 446 + <tspan x="97.828125" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">v</tspan> 447 + <tspan x="103.746094" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">e</tspan> 448 + <tspan x="109.898438" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">l</tspan> 449 + <tspan x="112.676758" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 450 + <tspan x="125.753906" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 451 + <tspan x="128.932617" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">[</tspan> 452 + <tspan x="132.833984" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">d</tspan> 453 + <tspan x="139.181641" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">B</tspan> 454 + <tspan x="146.041992" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 455 + <tspan x="149.220703" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">r</tspan> 456 + <tspan x="153.332031" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">e</tspan> 457 + <tspan x="159.484375" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 458 + <tspan x="162.663086" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">1</tspan> 459 + <tspan x="169.025391" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 460 + <tspan x="172.204102" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">N</tspan> 461 + <tspan x="179.68457" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">/</tspan> 462 + <tspan x="183.053711" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">m</tspan> 463 + <tspan x="192.794922" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">]</tspan> 464 + <tspan x="115.855469" y="-0.40625" style="font-style: oblique; font-size: 10px; font-family: 'DejaVu Sans'">L</tspan> 465 + <tspan x="121.426758" y="1.093745" style="font-style: oblique; font-size: 7px; font-family: 'DejaVu Sans'">k</tspan> 466 + </text> 467 + </g> 468 + </g> 469 + </g> 470 + <g id="line2d_53"> 471 + <path d="M 47.289844 213.163444 472 + L 304.571733 213.045518 473 + L 373.839934 212.801755 474 + L 416.720249 212.44535 475 + L 448.605611 211.973398 476 + L 474.993497 211.363901 477 + L 496.983402 210.634651 478 + L 515.674821 209.800921 479 + L 532.16725 208.857502 480 + L 547.560184 207.762747 481 + L 561.853622 206.527789 482 + L 575.047565 205.173781 483 + L 588.241508 203.589656 484 + L 600.335956 201.916265 485 + L 612.430404 200.015697 486 + L 624.524851 197.875987 487 + L 635.519804 195.716358 488 + L 646.514756 193.34938 489 + L 658.609204 190.506616 490 + L 670.703652 187.418119 491 + L 682.7981 184.092976 492 + L 694.892547 180.543946 493 + L 705.8875 177.13636 494 + L 705.8875 177.13636 495 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke: #1f77b4; stroke-width: 2.2; stroke-linecap: square"/> 496 + </g> 497 + <g id="line2d_54"> 498 + <path d="M 47.289844 382.068196 499 + L 68.180254 363.312586 500 + L 85.772178 347.228547 501 + L 101.165111 332.853816 502 + L 114.359054 320.233275 503 + L 126.453502 308.346993 504 + L 136.348959 298.333787 505 + L 146.244416 287.993427 506 + L 155.040378 278.459439 507 + L 162.736845 269.789027 508 + L 169.333817 262.059242 509 + L 175.930788 253.995425 510 + L 181.428265 246.968452 511 + L 186.925741 239.605002 512 + L 192.423217 231.83524 513 + L 196.821198 225.266112 514 + L 201.219179 218.317468 515 + L 205.61716 210.909764 516 + L 208.915646 204.990385 517 + L 212.214132 198.695799 518 + L 215.512617 191.950861 519 + L 218.811103 184.656356 520 + L 222.109589 176.67761 521 + L 224.308579 170.888046 522 + L 226.50757 164.636482 523 + L 228.70656 157.823553 524 + L 230.905551 150.315306 525 + L 233.104541 141.925729 526 + L 235.303532 132.387467 527 + L 237.502522 121.301229 528 + L 239.701513 108.04915 529 + L 240.801008 100.327895 530 + L 241.900503 91.677963 531 + L 242.999999 81.948663 532 + L 246.298484 49.533151 533 + L 247.39798 45.163366 534 + L 248.497475 49.305601 535 + L 249.59697 58.73821 536 + L 251.795961 79.068674 537 + L 252.895456 87.753477 538 + L 253.994951 95.370549 539 + L 255.094446 102.073548 540 + L 256.193942 108.015542 541 + L 258.392932 118.108502 542 + L 260.591923 126.406564 543 + L 262.790913 133.394932 544 + L 264.989904 139.392879 545 + L 267.188894 144.618768 546 + L 269.387885 149.227496 547 + L 271.586875 153.33249 548 + L 273.785866 157.019105 549 + L 275.984856 160.353084 550 + L 278.183847 163.386082 551 + L 281.482333 167.459401 552 + L 284.780818 171.055105 553 + L 288.079304 174.25471 554 + L 291.37779 177.120983 555 + L 294.676276 179.703262 556 + L 297.974761 182.041012 557 + L 302.372742 184.832197 558 + L 306.770723 187.305885 559 + L 311.168704 189.509962 560 + L 315.566685 191.482746 561 + L 321.064162 193.670352 562 + L 326.561638 195.593825 563 + L 332.059114 197.292245 564 + L 338.656086 199.077377 565 + L 345.253057 200.627688 566 + L 352.949524 202.186181 567 + L 360.645991 203.51734 568 + L 369.441953 204.805416 569 + L 379.33741 206.006476 570 + L 389.232867 206.989329 571 + L 400.22782 207.868916 572 + L 412.322268 208.621375 573 + L 425.516211 209.227828 574 + L 439.809649 209.671803 575 + L 455.202582 209.935877 576 + L 471.695011 209.997448 577 + L 488.18744 209.841575 578 + L 504.679869 209.466384 579 + L 520.072802 208.906339 580 + L 535.465736 208.124109 581 + L 549.759174 207.176479 582 + L 562.953117 206.091198 583 + L 576.14706 204.782569 584 + L 588.241508 203.368888 585 + L 600.335956 201.734603 586 + L 612.430404 199.866204 587 + L 623.425356 197.955406 588 + L 634.420309 195.836727 589 + L 645.415261 193.507548 590 + L 656.410214 190.96834 591 + L 668.504661 187.936991 592 + L 680.599109 184.664743 593 + L 692.693557 181.164153 594 + L 705.8875 177.103163 595 + L 705.8875 177.103163 596 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 7.4,3.2; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 2"/> 597 + </g> 598 + <g id="line2d_55"> 599 + <path d="M 247.348082 398.913437 600 + L 247.348082 28.318125 601 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 1.2,1.98; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-width: 1.2"/> 602 + </g> 603 + <g id="patch_4"> 604 + <path d="M 47.289844 398.913437 605 + L 47.289844 28.318125 606 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 607 + </g> 608 + <g id="patch_5"> 609 + <path d="M 705.8875 398.913437 610 + L 705.8875 28.318125 611 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 612 + </g> 613 + <g id="patch_6"> 614 + <path d="M 47.289844 398.913437 615 + L 705.8875 398.913437 616 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 617 + </g> 618 + <g id="patch_7"> 619 + <path d="M 47.289844 28.318125 620 + L 705.8875 28.318125 621 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 622 + </g> 623 + <g id="text_12"> 624 + <g id="patch_8"> 625 + <path d="M 494.064785 385.383672 626 + L 696.008535 385.383672 627 + Q 701.008535 385.383672 701.008535 380.383672 628 + L 701.008535 332.372734 629 + Q 701.008535 327.372734 696.008535 327.372734 630 + L 494.064785 327.372734 631 + Q 489.064785 327.372734 489.064785 332.372734 632 + L 489.064785 380.383672 633 + Q 489.064785 385.383672 494.064785 385.383672 634 + z 635 + " style="fill: #f0f2f5; stroke: #e0e0e0; stroke-linejoin: miter"/> 636 + </g> 637 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif" transform="translate(494.064785 340.972148)">Kelvin-Voigt: k = 1 MN/m, c = 120 N.s/m</text> 638 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif" transform="translate(496.481973 352.974883)">blocking mass m2 = 8 kg, f0 = 56.3 Hz</text> 639 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif" transform="translate(524.803848 364.977617)">indirect valid for T &lt;&lt; 1 (f &gt;&gt; f0)</text> 640 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif" transform="translate(504.253848 376.980352)">shaded: T not small -&gt; method invalid</text> 641 + </g> 642 + <g id="text_13"> 643 + <text style="font-weight: 700; font-size: 12px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: middle" x="376.588672" y="16.318125" transform="rotate(-0 376.588672 16.318125)">ISO 10846 Dynamic Transfer Stiffness</text> 644 + </g> 645 + <g id="legend_1"> 646 + <g id="patch_9"> 647 + <path d="M 53.589844 77.644453 648 + L 208.569844 77.644453 649 + Q 210.369844 77.644453 210.369844 75.844453 650 + L 210.369844 34.618125 651 + Q 210.369844 32.818125 208.569844 32.818125 652 + L 53.589844 32.818125 653 + Q 51.789844 32.818125 51.789844 34.618125 654 + L 51.789844 75.844453 655 + Q 51.789844 77.644453 53.589844 77.644453 656 + z 657 + " style="fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 658 + </g> 659 + <g id="line2d_56"> 660 + <path d="M 55.389844 40.108125 661 + L 64.389844 40.108125 662 + L 73.389844 40.108125 663 + " style="fill: none; stroke: #1f77b4; stroke-width: 2.2; stroke-linecap: square"/> 664 + </g> 665 + <g id="text_14"> 666 + <!-- true $L_k$ of $k_{2,1}=k+j\omega c$ --> 667 + <g transform="translate(80.589844 43.258125)"> 668 + <text> 669 + <tspan x="0" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">t</tspan> 670 + <tspan x="3.528809" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">r</tspan> 671 + <tspan x="7.229004" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">u</tspan> 672 + <tspan x="12.933105" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">e</tspan> 673 + <tspan x="18.470215" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'"> </tspan> 674 + <tspan x="30.239648" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'"> </tspan> 675 + <tspan x="33.100488" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">o</tspan> 676 + <tspan x="38.606836" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">f</tspan> 677 + <tspan x="41.775293" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'"> </tspan> 678 + <tspan x="63.094043" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">=</tspan> 679 + <tspan x="79.353809" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">+</tspan> 680 + <tspan x="21.331055" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">L</tspan> 681 + <tspan x="44.636133" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">k</tspan> 682 + <tspan x="72.388477" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">k</tspan> 683 + <tspan x="88.648242" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">j</tspan> 684 + <tspan x="91.14873" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">ω</tspan> 685 + <tspan x="98.685352" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">c</tspan> 686 + <tspan x="26.345215" y="1.193746" style="font-style: oblique; font-size: 6.3px; font-family: 'DejaVu Sans'">k</tspan> 687 + <tspan x="49.848047" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'">2</tspan> 688 + <tspan x="53.856299" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'">,</tspan> 689 + <tspan x="57.086279" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'">1</tspan> 690 + </text> 691 + </g> 692 + </g> 693 + <g id="line2d_57"> 694 + <path d="M 55.389844 55.230234 695 + L 64.389844 55.230234 696 + L 73.389844 55.230234 697 + " style="fill: none; stroke-dasharray: 7.4,3.2; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 2"/> 698 + </g> 699 + <g id="text_15"> 700 + <!-- indirect method $-(2\pi f)^2 m_2 T$ --> 701 + <g transform="translate(80.589844 58.380234)"> 702 + <text> 703 + <tspan x="0" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">i</tspan> 704 + <tspan x="2.500488" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">n</tspan> 705 + <tspan x="8.20459" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">d</tspan> 706 + <tspan x="13.91748" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">i</tspan> 707 + <tspan x="16.417969" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">r</tspan> 708 + <tspan x="20.118164" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">e</tspan> 709 + <tspan x="25.655273" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">c</tspan> 710 + <tspan x="30.603516" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">t</tspan> 711 + <tspan x="34.132324" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'"> </tspan> 712 + <tspan x="36.993164" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">m</tspan> 713 + <tspan x="45.760254" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">e</tspan> 714 + <tspan x="51.297363" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">t</tspan> 715 + <tspan x="54.826172" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">h</tspan> 716 + <tspan x="60.530273" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">o</tspan> 717 + <tspan x="66.036621" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">d</tspan> 718 + <tspan x="71.749512" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'"> </tspan> 719 + <tspan x="74.610352" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">−</tspan> 720 + <tspan x="82.151367" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">(</tspan> 721 + <tspan x="85.662598" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">2</tspan> 722 + <tspan x="99.975586" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">)</tspan> 723 + <tspan x="91.388672" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">π</tspan> 724 + <tspan x="96.807129" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">f</tspan> 725 + <tspan x="107.827295" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">m</tspan> 726 + <tspan x="120.84873" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">T</tspan> 727 + <tspan x="103.572949" y="-4.31875" style="font-size: 6.3px; font-family: 'DejaVu Sans'">2</tspan> 728 + <tspan x="116.594385" y="0.748246" style="font-size: 6.3px; font-family: 'DejaVu Sans'">2</tspan> 729 + </text> 730 + </g> 731 + </g> 732 + <g id="line2d_58"> 733 + <path d="M 55.389844 68.732344 734 + L 64.389844 68.732344 735 + L 73.389844 68.732344 736 + " style="fill: none; stroke-dasharray: 1.2,1.98; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-width: 1.2"/> 737 + </g> 738 + <g id="text_16"> 739 + <!-- resonance $f_0$ --> 740 + <g transform="translate(80.589844 71.882344)"> 741 + <text> 742 + <tspan x="0" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">r</tspan> 743 + <tspan x="3.700195" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">e</tspan> 744 + <tspan x="9.237305" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">s</tspan> 745 + <tspan x="13.92627" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">o</tspan> 746 + <tspan x="19.432617" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">n</tspan> 747 + <tspan x="25.136719" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">a</tspan> 748 + <tspan x="30.651855" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">n</tspan> 749 + <tspan x="36.355957" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">c</tspan> 750 + <tspan x="41.304199" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">e</tspan> 751 + <tspan x="46.841309" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'"> </tspan> 752 + <tspan x="49.702148" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">f</tspan> 753 + <tspan x="52.870605" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'">0</tspan> 754 + </text> 755 + </g> 756 + </g> 757 + </g> 758 + </g> 759 + </g> 760 + <defs> 761 + <clipPath id="pcaaa32d4c0"> 762 + <rect x="47.289844" y="28.318125" width="658.597656" height="370.595313"/> 763 + </clipPath> 764 + </defs> 765 + </svg>
+765
.github/images/transfer_stiffness_dark.svg
··· 1 + <?xml version="1.0" encoding="utf-8" standalone="no"?> 2 + <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 3 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4 + <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="713.0875pt" height="438.916562pt" viewBox="0 0 713.0875 438.916562" xmlns="http://www.w3.org/2000/svg" version="1.1"> 5 + <metadata> 6 + <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 7 + <cc:Work> 8 + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> 9 + <dc:format>image/svg+xml</dc:format> 10 + <dc:creator> 11 + <cc:Agent> 12 + <dc:title>Matplotlib v3.11.0, https://matplotlib.org/</dc:title> 13 + </cc:Agent> 14 + </dc:creator> 15 + </cc:Work> 16 + </rdf:RDF> 17 + </metadata> 18 + <defs> 19 + <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> 20 + </defs> 21 + <g id="figure_1"> 22 + <g id="patch_1"> 23 + <path d="M 0 438.916562 24 + L 713.0875 438.916562 25 + L 713.0875 0 26 + L 0 0 27 + z 28 + "/> 29 + </g> 30 + <g id="axes_1"> 31 + <g id="patch_2"> 32 + <path d="M 47.289844 398.913437 33 + L 705.8875 398.913437 34 + L 705.8875 28.318125 35 + L 47.289844 28.318125 36 + z 37 + "/> 38 + </g> 39 + <g id="patch_3"> 40 + <path d="M 47.289844 398.913437 41 + L 383.909074 398.913437 42 + L 383.909074 28.318125 43 + L 47.289844 28.318125 44 + z 45 + " clip-path="url(#pcaaa32d4c0)" style="fill: #555555; opacity: 0.12; stroke: #555555; stroke-linejoin: miter"/> 46 + </g> 47 + <g id="matplotlib.axis_1"> 48 + <g id="xtick_1"> 49 + <g id="line2d_1"> 50 + <path d="M 318.82399 398.913437 51 + L 318.82399 28.318125 52 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 53 + </g> 54 + <g id="line2d_2"> 55 + <defs> 56 + <path id="m8d14ee1197" d="M 0 0 57 + L 0 3.5 58 + " style="stroke: #ffffff; stroke-width: 0.8"/> 59 + </defs> 60 + <g> 61 + <use xlink:href="#m8d14ee1197" x="318.82399" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 62 + </g> 63 + </g> 64 + <g id="text_1"> 65 + <!-- $\mathdefault{10^{2}}$ --> 66 + <g style="fill: #ffffff" transform="translate(310.02399 415.313438)"> 67 + <text> 68 + <tspan x="0" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">1</tspan> 69 + <tspan x="6.362305" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">0</tspan> 70 + <tspan x="12.820312" y="-4.804688" style="font-size: 7px; font-family: 'DejaVu Sans'; fill: #ffffff">2</tspan> 71 + </text> 72 + </g> 73 + </g> 74 + </g> 75 + <g id="xtick_2"> 76 + <g id="line2d_3"> 77 + <path d="M 605.042621 398.913437 78 + L 605.042621 28.318125 79 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 80 + </g> 81 + <g id="line2d_4"> 82 + <g> 83 + <use xlink:href="#m8d14ee1197" x="605.042621" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 84 + </g> 85 + </g> 86 + <g id="text_2"> 87 + <!-- $\mathdefault{10^{3}}$ --> 88 + <g style="fill: #ffffff" transform="translate(596.242621 415.313438)"> 89 + <text> 90 + <tspan x="0" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">1</tspan> 91 + <tspan x="6.362305" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">0</tspan> 92 + <tspan x="12.820312" y="-4.804688" style="font-size: 7px; font-family: 'DejaVu Sans'; fill: #ffffff">3</tspan> 93 + </text> 94 + </g> 95 + </g> 96 + </g> 97 + <g id="xtick_3"> 98 + <g id="line2d_5"> 99 + <path d="M 118.765752 398.913437 100 + L 118.765752 28.318125 101 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 102 + </g> 103 + <g id="line2d_6"> 104 + <defs> 105 + <path id="m1caa325441" d="M 0 0 106 + L 0 2 107 + " style="stroke: #ffffff; stroke-width: 0.6"/> 108 + </defs> 109 + <g> 110 + <use xlink:href="#m1caa325441" x="118.765752" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 111 + </g> 112 + </g> 113 + </g> 114 + <g id="xtick_4"> 115 + <g id="line2d_7"> 116 + <path d="M 169.166351 398.913437 117 + L 169.166351 28.318125 118 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 119 + </g> 120 + <g id="line2d_8"> 121 + <g> 122 + <use xlink:href="#m1caa325441" x="169.166351" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 123 + </g> 124 + </g> 125 + </g> 126 + <g id="xtick_5"> 127 + <g id="line2d_9"> 128 + <path d="M 204.926145 398.913437 129 + L 204.926145 28.318125 130 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 131 + </g> 132 + <g id="line2d_10"> 133 + <g> 134 + <use xlink:href="#m1caa325441" x="204.926145" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 135 + </g> 136 + </g> 137 + </g> 138 + <g id="xtick_6"> 139 + <g id="line2d_11"> 140 + <path d="M 232.663597 398.913437 141 + L 232.663597 28.318125 142 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 143 + </g> 144 + <g id="line2d_12"> 145 + <g> 146 + <use xlink:href="#m1caa325441" x="232.663597" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 147 + </g> 148 + </g> 149 + </g> 150 + <g id="xtick_7"> 151 + <g id="line2d_13"> 152 + <path d="M 255.326744 398.913437 153 + L 255.326744 28.318125 154 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 155 + </g> 156 + <g id="line2d_14"> 157 + <g> 158 + <use xlink:href="#m1caa325441" x="255.326744" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 159 + </g> 160 + </g> 161 + </g> 162 + <g id="xtick_8"> 163 + <g id="line2d_15"> 164 + <path d="M 274.488163 398.913437 165 + L 274.488163 28.318125 166 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 167 + </g> 168 + <g id="line2d_16"> 169 + <g> 170 + <use xlink:href="#m1caa325441" x="274.488163" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 171 + </g> 172 + </g> 173 + </g> 174 + <g id="xtick_9"> 175 + <g id="line2d_17"> 176 + <path d="M 291.086539 398.913437 177 + L 291.086539 28.318125 178 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 179 + </g> 180 + <g id="line2d_18"> 181 + <g> 182 + <use xlink:href="#m1caa325441" x="291.086539" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 183 + </g> 184 + </g> 185 + </g> 186 + <g id="xtick_10"> 187 + <g id="line2d_19"> 188 + <path d="M 305.727344 398.913437 189 + L 305.727344 28.318125 190 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 191 + </g> 192 + <g id="line2d_20"> 193 + <g> 194 + <use xlink:href="#m1caa325441" x="305.727344" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 195 + </g> 196 + </g> 197 + </g> 198 + <g id="xtick_11"> 199 + <g id="line2d_21"> 200 + <path d="M 404.984383 398.913437 201 + L 404.984383 28.318125 202 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 203 + </g> 204 + <g id="line2d_22"> 205 + <g> 206 + <use xlink:href="#m1caa325441" x="404.984383" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 207 + </g> 208 + </g> 209 + </g> 210 + <g id="xtick_12"> 211 + <g id="line2d_23"> 212 + <path d="M 455.384983 398.913437 213 + L 455.384983 28.318125 214 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 215 + </g> 216 + <g id="line2d_24"> 217 + <g> 218 + <use xlink:href="#m1caa325441" x="455.384983" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 219 + </g> 220 + </g> 221 + </g> 222 + <g id="xtick_13"> 223 + <g id="line2d_25"> 224 + <path d="M 491.144777 398.913437 225 + L 491.144777 28.318125 226 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 227 + </g> 228 + <g id="line2d_26"> 229 + <g> 230 + <use xlink:href="#m1caa325441" x="491.144777" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 231 + </g> 232 + </g> 233 + </g> 234 + <g id="xtick_14"> 235 + <g id="line2d_27"> 236 + <path d="M 518.882228 398.913437 237 + L 518.882228 28.318125 238 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 239 + </g> 240 + <g id="line2d_28"> 241 + <g> 242 + <use xlink:href="#m1caa325441" x="518.882228" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 243 + </g> 244 + </g> 245 + </g> 246 + <g id="xtick_15"> 247 + <g id="line2d_29"> 248 + <path d="M 541.545376 398.913437 249 + L 541.545376 28.318125 250 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 251 + </g> 252 + <g id="line2d_30"> 253 + <g> 254 + <use xlink:href="#m1caa325441" x="541.545376" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 255 + </g> 256 + </g> 257 + </g> 258 + <g id="xtick_16"> 259 + <g id="line2d_31"> 260 + <path d="M 560.706794 398.913437 261 + L 560.706794 28.318125 262 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 263 + </g> 264 + <g id="line2d_32"> 265 + <g> 266 + <use xlink:href="#m1caa325441" x="560.706794" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 267 + </g> 268 + </g> 269 + </g> 270 + <g id="xtick_17"> 271 + <g id="line2d_33"> 272 + <path d="M 577.30517 398.913437 273 + L 577.30517 28.318125 274 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 275 + </g> 276 + <g id="line2d_34"> 277 + <g> 278 + <use xlink:href="#m1caa325441" x="577.30517" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 279 + </g> 280 + </g> 281 + </g> 282 + <g id="xtick_18"> 283 + <g id="line2d_35"> 284 + <path d="M 591.945975 398.913437 285 + L 591.945975 28.318125 286 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 287 + </g> 288 + <g id="line2d_36"> 289 + <g> 290 + <use xlink:href="#m1caa325441" x="591.945975" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 291 + </g> 292 + </g> 293 + </g> 294 + <g id="xtick_19"> 295 + <g id="line2d_37"> 296 + <path d="M 691.203015 398.913437 297 + L 691.203015 28.318125 298 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 299 + </g> 300 + <g id="line2d_38"> 301 + <g> 302 + <use xlink:href="#m1caa325441" x="691.203015" y="398.913437" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 303 + </g> 304 + </g> 305 + </g> 306 + <g id="text_3"> 307 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: middle; fill: #ffffff" x="376.588672" y="429.314219" transform="rotate(-0 376.588672 429.314219)">Frequency [Hz]</text> 308 + </g> 309 + </g> 310 + <g id="matplotlib.axis_2"> 311 + <g id="ytick_1"> 312 + <g id="line2d_39"> 313 + <path d="M 47.289844 396.727124 314 + L 705.8875 396.727124 315 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 316 + </g> 317 + <g id="line2d_40"> 318 + <defs> 319 + <path id="m5e07181663" d="M 0 0 320 + L -3.5 0 321 + " style="stroke: #ffffff; stroke-width: 0.8"/> 322 + </defs> 323 + <g> 324 + <use xlink:href="#m5e07181663" x="47.289844" y="396.727124" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 325 + </g> 326 + </g> 327 + <g id="text_4"> 328 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end; fill: #ffffff" x="40.289844" y="400.525952" transform="rotate(-0 40.289844 400.525952)">90</text> 329 + </g> 330 + </g> 331 + <g id="ytick_2"> 332 + <g id="line2d_41"> 333 + <path d="M 47.289844 335.539868 334 + L 705.8875 335.539868 335 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 336 + </g> 337 + <g id="line2d_42"> 338 + <g> 339 + <use xlink:href="#m5e07181663" x="47.289844" y="335.539868" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 340 + </g> 341 + </g> 342 + <g id="text_5"> 343 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end; fill: #ffffff" x="40.289844" y="339.338696" transform="rotate(-0 40.289844 339.338696)">100</text> 344 + </g> 345 + </g> 346 + <g id="ytick_3"> 347 + <g id="line2d_43"> 348 + <path d="M 47.289844 274.352613 349 + L 705.8875 274.352613 350 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 351 + </g> 352 + <g id="line2d_44"> 353 + <g> 354 + <use xlink:href="#m5e07181663" x="47.289844" y="274.352613" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 355 + </g> 356 + </g> 357 + <g id="text_6"> 358 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end; fill: #ffffff" x="40.289844" y="278.151441" transform="rotate(-0 40.289844 278.151441)">110</text> 359 + </g> 360 + </g> 361 + <g id="ytick_4"> 362 + <g id="line2d_45"> 363 + <path d="M 47.289844 213.165357 364 + L 705.8875 213.165357 365 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 366 + </g> 367 + <g id="line2d_46"> 368 + <g> 369 + <use xlink:href="#m5e07181663" x="47.289844" y="213.165357" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 370 + </g> 371 + </g> 372 + <g id="text_7"> 373 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end; fill: #ffffff" x="40.289844" y="216.964185" transform="rotate(-0 40.289844 216.964185)">120</text> 374 + </g> 375 + </g> 376 + <g id="ytick_5"> 377 + <g id="line2d_47"> 378 + <path d="M 47.289844 151.978101 379 + L 705.8875 151.978101 380 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 381 + </g> 382 + <g id="line2d_48"> 383 + <g> 384 + <use xlink:href="#m5e07181663" x="47.289844" y="151.978101" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 385 + </g> 386 + </g> 387 + <g id="text_8"> 388 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end; fill: #ffffff" x="40.289844" y="155.776929" transform="rotate(-0 40.289844 155.776929)">130</text> 389 + </g> 390 + </g> 391 + <g id="ytick_6"> 392 + <g id="line2d_49"> 393 + <path d="M 47.289844 90.790846 394 + L 705.8875 90.790846 395 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 396 + </g> 397 + <g id="line2d_50"> 398 + <g> 399 + <use xlink:href="#m5e07181663" x="47.289844" y="90.790846" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 400 + </g> 401 + </g> 402 + <g id="text_9"> 403 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end; fill: #ffffff" x="40.289844" y="94.589674" transform="rotate(-0 40.289844 94.589674)">140</text> 404 + </g> 405 + </g> 406 + <g id="ytick_7"> 407 + <g id="line2d_51"> 408 + <path d="M 47.289844 29.60359 409 + L 705.8875 29.60359 410 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 411 + </g> 412 + <g id="line2d_52"> 413 + <g> 414 + <use xlink:href="#m5e07181663" x="47.289844" y="29.60359" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 415 + </g> 416 + </g> 417 + <g id="text_10"> 418 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end; fill: #ffffff" x="40.289844" y="33.402418" transform="rotate(-0 40.289844 33.402418)">150</text> 419 + </g> 420 + </g> 421 + <g id="text_11"> 422 + <!-- Transfer stiffness level $L_k$ [dB re 1 N/m] --> 423 + <g style="fill: #ffffff" transform="translate(14.8 311.615781) rotate(-90)"> 424 + <text> 425 + <tspan x="0" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">T</tspan> 426 + <tspan x="5.108398" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">r</tspan> 427 + <tspan x="9.219727" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">a</tspan> 428 + <tspan x="15.347656" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">n</tspan> 429 + <tspan x="21.685547" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">s</tspan> 430 + <tspan x="26.895508" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">f</tspan> 431 + <tspan x="30.416016" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 432 + <tspan x="36.568359" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">r</tspan> 433 + <tspan x="40.679688" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 434 + <tspan x="43.858398" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">s</tspan> 435 + <tspan x="49.068359" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">t</tspan> 436 + <tspan x="52.989258" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">i</tspan> 437 + <tspan x="55.767578" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">f</tspan> 438 + <tspan x="59.288086" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">f</tspan> 439 + <tspan x="62.808594" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">n</tspan> 440 + <tspan x="69.146484" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 441 + <tspan x="75.298828" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">s</tspan> 442 + <tspan x="80.508789" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">s</tspan> 443 + <tspan x="85.71875" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 444 + <tspan x="88.897461" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">l</tspan> 445 + <tspan x="91.675781" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 446 + <tspan x="97.828125" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">v</tspan> 447 + <tspan x="103.746094" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 448 + <tspan x="109.898438" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">l</tspan> 449 + <tspan x="112.676758" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 450 + <tspan x="125.753906" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 451 + <tspan x="128.932617" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">[</tspan> 452 + <tspan x="132.833984" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">d</tspan> 453 + <tspan x="139.181641" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">B</tspan> 454 + <tspan x="146.041992" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 455 + <tspan x="149.220703" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">r</tspan> 456 + <tspan x="153.332031" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 457 + <tspan x="159.484375" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 458 + <tspan x="162.663086" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">1</tspan> 459 + <tspan x="169.025391" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 460 + <tspan x="172.204102" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">N</tspan> 461 + <tspan x="179.68457" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">/</tspan> 462 + <tspan x="183.053711" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">m</tspan> 463 + <tspan x="192.794922" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">]</tspan> 464 + <tspan x="115.855469" y="-0.40625" style="font-style: oblique; font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">L</tspan> 465 + <tspan x="121.426758" y="1.093745" style="font-style: oblique; font-size: 7px; font-family: 'DejaVu Sans'; fill: #ffffff">k</tspan> 466 + </text> 467 + </g> 468 + </g> 469 + </g> 470 + <g id="line2d_53"> 471 + <path d="M 47.289844 213.163444 472 + L 304.571733 213.045518 473 + L 373.839934 212.801755 474 + L 416.720249 212.44535 475 + L 448.605611 211.973398 476 + L 474.993497 211.363901 477 + L 496.983402 210.634651 478 + L 515.674821 209.800921 479 + L 532.16725 208.857502 480 + L 547.560184 207.762747 481 + L 561.853622 206.527789 482 + L 575.047565 205.173781 483 + L 588.241508 203.589656 484 + L 600.335956 201.916265 485 + L 612.430404 200.015697 486 + L 624.524851 197.875987 487 + L 635.519804 195.716358 488 + L 646.514756 193.34938 489 + L 658.609204 190.506616 490 + L 670.703652 187.418119 491 + L 682.7981 184.092976 492 + L 694.892547 180.543946 493 + L 705.8875 177.13636 494 + L 705.8875 177.13636 495 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke: #1f77b4; stroke-width: 2.2; stroke-linecap: square"/> 496 + </g> 497 + <g id="line2d_54"> 498 + <path d="M 47.289844 382.068196 499 + L 68.180254 363.312586 500 + L 85.772178 347.228547 501 + L 101.165111 332.853816 502 + L 114.359054 320.233275 503 + L 126.453502 308.346993 504 + L 136.348959 298.333787 505 + L 146.244416 287.993427 506 + L 155.040378 278.459439 507 + L 162.736845 269.789027 508 + L 169.333817 262.059242 509 + L 175.930788 253.995425 510 + L 181.428265 246.968452 511 + L 186.925741 239.605002 512 + L 192.423217 231.83524 513 + L 196.821198 225.266112 514 + L 201.219179 218.317468 515 + L 205.61716 210.909764 516 + L 208.915646 204.990385 517 + L 212.214132 198.695799 518 + L 215.512617 191.950861 519 + L 218.811103 184.656356 520 + L 222.109589 176.67761 521 + L 224.308579 170.888046 522 + L 226.50757 164.636482 523 + L 228.70656 157.823553 524 + L 230.905551 150.315306 525 + L 233.104541 141.925729 526 + L 235.303532 132.387467 527 + L 237.502522 121.301229 528 + L 239.701513 108.04915 529 + L 240.801008 100.327895 530 + L 241.900503 91.677963 531 + L 242.999999 81.948663 532 + L 246.298484 49.533151 533 + L 247.39798 45.163366 534 + L 248.497475 49.305601 535 + L 249.59697 58.73821 536 + L 251.795961 79.068674 537 + L 252.895456 87.753477 538 + L 253.994951 95.370549 539 + L 255.094446 102.073548 540 + L 256.193942 108.015542 541 + L 258.392932 118.108502 542 + L 260.591923 126.406564 543 + L 262.790913 133.394932 544 + L 264.989904 139.392879 545 + L 267.188894 144.618768 546 + L 269.387885 149.227496 547 + L 271.586875 153.33249 548 + L 273.785866 157.019105 549 + L 275.984856 160.353084 550 + L 278.183847 163.386082 551 + L 281.482333 167.459401 552 + L 284.780818 171.055105 553 + L 288.079304 174.25471 554 + L 291.37779 177.120983 555 + L 294.676276 179.703262 556 + L 297.974761 182.041012 557 + L 302.372742 184.832197 558 + L 306.770723 187.305885 559 + L 311.168704 189.509962 560 + L 315.566685 191.482746 561 + L 321.064162 193.670352 562 + L 326.561638 195.593825 563 + L 332.059114 197.292245 564 + L 338.656086 199.077377 565 + L 345.253057 200.627688 566 + L 352.949524 202.186181 567 + L 360.645991 203.51734 568 + L 369.441953 204.805416 569 + L 379.33741 206.006476 570 + L 389.232867 206.989329 571 + L 400.22782 207.868916 572 + L 412.322268 208.621375 573 + L 425.516211 209.227828 574 + L 439.809649 209.671803 575 + L 455.202582 209.935877 576 + L 471.695011 209.997448 577 + L 488.18744 209.841575 578 + L 504.679869 209.466384 579 + L 520.072802 208.906339 580 + L 535.465736 208.124109 581 + L 549.759174 207.176479 582 + L 562.953117 206.091198 583 + L 576.14706 204.782569 584 + L 588.241508 203.368888 585 + L 600.335956 201.734603 586 + L 612.430404 199.866204 587 + L 623.425356 197.955406 588 + L 634.420309 195.836727 589 + L 645.415261 193.507548 590 + L 656.410214 190.96834 591 + L 668.504661 187.936991 592 + L 680.599109 184.664743 593 + L 692.693557 181.164153 594 + L 705.8875 177.103163 595 + L 705.8875 177.103163 596 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 7.4,3.2; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 2"/> 597 + </g> 598 + <g id="line2d_55"> 599 + <path d="M 247.348082 398.913437 600 + L 247.348082 28.318125 601 + " clip-path="url(#pcaaa32d4c0)" style="fill: none; stroke-dasharray: 1.2,1.98; stroke-dashoffset: 0; stroke: #555555; stroke-width: 1.2"/> 602 + </g> 603 + <g id="patch_4"> 604 + <path d="M 47.289844 398.913437 605 + L 47.289844 28.318125 606 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 607 + </g> 608 + <g id="patch_5"> 609 + <path d="M 705.8875 398.913437 610 + L 705.8875 28.318125 611 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 612 + </g> 613 + <g id="patch_6"> 614 + <path d="M 47.289844 398.913437 615 + L 705.8875 398.913437 616 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 617 + </g> 618 + <g id="patch_7"> 619 + <path d="M 47.289844 28.318125 620 + L 705.8875 28.318125 621 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 622 + </g> 623 + <g id="text_12"> 624 + <g id="patch_8"> 625 + <path d="M 494.064785 385.383672 626 + L 696.008535 385.383672 627 + Q 701.008535 385.383672 701.008535 380.383672 628 + L 701.008535 332.372734 629 + Q 701.008535 327.372734 696.008535 327.372734 630 + L 494.064785 327.372734 631 + Q 489.064785 327.372734 489.064785 332.372734 632 + L 489.064785 380.383672 633 + Q 489.064785 385.383672 494.064785 385.383672 634 + z 635 + " style="fill: #1c2128; stroke: #555555; stroke-linejoin: miter"/> 636 + </g> 637 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; fill: #ffffff" transform="translate(494.064785 340.972148)">Kelvin-Voigt: k = 1 MN/m, c = 120 N.s/m</text> 638 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; fill: #ffffff" transform="translate(496.481973 352.974883)">blocking mass m2 = 8 kg, f0 = 56.3 Hz</text> 639 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; fill: #ffffff" transform="translate(524.803848 364.977617)">indirect valid for T &lt;&lt; 1 (f &gt;&gt; f0)</text> 640 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; fill: #ffffff" transform="translate(504.253848 376.980352)">shaded: T not small -&gt; method invalid</text> 641 + </g> 642 + <g id="text_13"> 643 + <text style="font-weight: 700; font-size: 12px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: middle; fill: #ffffff" x="376.588672" y="16.318125" transform="rotate(-0 376.588672 16.318125)">ISO 10846 Dynamic Transfer Stiffness</text> 644 + </g> 645 + <g id="legend_1"> 646 + <g id="patch_9"> 647 + <path d="M 53.589844 77.644453 648 + L 208.569844 77.644453 649 + Q 210.369844 77.644453 210.369844 75.844453 650 + L 210.369844 34.618125 651 + Q 210.369844 32.818125 208.569844 32.818125 652 + L 53.589844 32.818125 653 + Q 51.789844 32.818125 51.789844 34.618125 654 + L 51.789844 75.844453 655 + Q 51.789844 77.644453 53.589844 77.644453 656 + z 657 + " style="opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 658 + </g> 659 + <g id="line2d_56"> 660 + <path d="M 55.389844 40.108125 661 + L 64.389844 40.108125 662 + L 73.389844 40.108125 663 + " style="fill: none; stroke: #1f77b4; stroke-width: 2.2; stroke-linecap: square"/> 664 + </g> 665 + <g id="text_14"> 666 + <!-- true $L_k$ of $k_{2,1}=k+j\omega c$ --> 667 + <g style="fill: #ffffff" transform="translate(80.589844 43.258125)"> 668 + <text> 669 + <tspan x="0" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">t</tspan> 670 + <tspan x="3.528809" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">r</tspan> 671 + <tspan x="7.229004" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">u</tspan> 672 + <tspan x="12.933105" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 673 + <tspan x="18.470215" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 674 + <tspan x="30.239648" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 675 + <tspan x="33.100488" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">o</tspan> 676 + <tspan x="38.606836" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">f</tspan> 677 + <tspan x="41.775293" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 678 + <tspan x="63.094043" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">=</tspan> 679 + <tspan x="79.353809" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">+</tspan> 680 + <tspan x="21.331055" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">L</tspan> 681 + <tspan x="44.636133" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">k</tspan> 682 + <tspan x="72.388477" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">k</tspan> 683 + <tspan x="88.648242" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">j</tspan> 684 + <tspan x="91.14873" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">ω</tspan> 685 + <tspan x="98.685352" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">c</tspan> 686 + <tspan x="26.345215" y="1.193746" style="font-style: oblique; font-size: 6.3px; font-family: 'DejaVu Sans'; fill: #ffffff">k</tspan> 687 + <tspan x="49.848047" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'; fill: #ffffff">2</tspan> 688 + <tspan x="53.856299" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'; fill: #ffffff">,</tspan> 689 + <tspan x="57.086279" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'; fill: #ffffff">1</tspan> 690 + </text> 691 + </g> 692 + </g> 693 + <g id="line2d_57"> 694 + <path d="M 55.389844 55.230234 695 + L 64.389844 55.230234 696 + L 73.389844 55.230234 697 + " style="fill: none; stroke-dasharray: 7.4,3.2; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 2"/> 698 + </g> 699 + <g id="text_15"> 700 + <!-- indirect method $-(2\pi f)^2 m_2 T$ --> 701 + <g style="fill: #ffffff" transform="translate(80.589844 58.380234)"> 702 + <text> 703 + <tspan x="0" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">i</tspan> 704 + <tspan x="2.500488" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">n</tspan> 705 + <tspan x="8.20459" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">d</tspan> 706 + <tspan x="13.91748" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">i</tspan> 707 + <tspan x="16.417969" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">r</tspan> 708 + <tspan x="20.118164" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 709 + <tspan x="25.655273" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">c</tspan> 710 + <tspan x="30.603516" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">t</tspan> 711 + <tspan x="34.132324" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 712 + <tspan x="36.993164" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">m</tspan> 713 + <tspan x="45.760254" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 714 + <tspan x="51.297363" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">t</tspan> 715 + <tspan x="54.826172" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">h</tspan> 716 + <tspan x="60.530273" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">o</tspan> 717 + <tspan x="66.036621" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">d</tspan> 718 + <tspan x="71.749512" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 719 + <tspan x="74.610352" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">−</tspan> 720 + <tspan x="82.151367" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">(</tspan> 721 + <tspan x="85.662598" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">2</tspan> 722 + <tspan x="99.975586" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">)</tspan> 723 + <tspan x="91.388672" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">π</tspan> 724 + <tspan x="96.807129" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">f</tspan> 725 + <tspan x="107.827295" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">m</tspan> 726 + <tspan x="120.84873" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">T</tspan> 727 + <tspan x="103.572949" y="-4.31875" style="font-size: 6.3px; font-family: 'DejaVu Sans'; fill: #ffffff">2</tspan> 728 + <tspan x="116.594385" y="0.748246" style="font-size: 6.3px; font-family: 'DejaVu Sans'; fill: #ffffff">2</tspan> 729 + </text> 730 + </g> 731 + </g> 732 + <g id="line2d_58"> 733 + <path d="M 55.389844 68.732344 734 + L 64.389844 68.732344 735 + L 73.389844 68.732344 736 + " style="fill: none; stroke-dasharray: 1.2,1.98; stroke-dashoffset: 0; stroke: #555555; stroke-width: 1.2"/> 737 + </g> 738 + <g id="text_16"> 739 + <!-- resonance $f_0$ --> 740 + <g style="fill: #ffffff" transform="translate(80.589844 71.882344)"> 741 + <text> 742 + <tspan x="0" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">r</tspan> 743 + <tspan x="3.700195" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 744 + <tspan x="9.237305" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">s</tspan> 745 + <tspan x="13.92627" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">o</tspan> 746 + <tspan x="19.432617" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">n</tspan> 747 + <tspan x="25.136719" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">a</tspan> 748 + <tspan x="30.651855" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">n</tspan> 749 + <tspan x="36.355957" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">c</tspan> 750 + <tspan x="41.304199" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 751 + <tspan x="46.841309" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 752 + <tspan x="49.702148" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">f</tspan> 753 + <tspan x="52.870605" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'; fill: #ffffff">0</tspan> 754 + </text> 755 + </g> 756 + </g> 757 + </g> 758 + </g> 759 + </g> 760 + <defs> 761 + <clipPath id="pcaaa32d4c0"> 762 + <rect x="47.289844" y="28.318125" width="658.597656" height="370.595313"/> 763 + </clipPath> 764 + </defs> 765 + </svg>
+776
.github/images/transfer_stiffness_es.svg
··· 1 + <?xml version="1.0" encoding="utf-8" standalone="no"?> 2 + <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 3 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4 + <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="713.0875pt" height="439.396563pt" viewBox="0 0 713.0875 439.396563" xmlns="http://www.w3.org/2000/svg" version="1.1"> 5 + <metadata> 6 + <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 7 + <cc:Work> 8 + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> 9 + <dc:format>image/svg+xml</dc:format> 10 + <dc:creator> 11 + <cc:Agent> 12 + <dc:title>Matplotlib v3.11.0, https://matplotlib.org/</dc:title> 13 + </cc:Agent> 14 + </dc:creator> 15 + </cc:Work> 16 + </rdf:RDF> 17 + </metadata> 18 + <defs> 19 + <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> 20 + </defs> 21 + <g id="figure_1"> 22 + <g id="patch_1"> 23 + <path d="M 0 439.396563 24 + L 713.0875 439.396563 25 + L 713.0875 0 26 + L 0 0 27 + z 28 + " style="fill: #ffffff"/> 29 + </g> 30 + <g id="axes_1"> 31 + <g id="patch_2"> 32 + <path d="M 47.289844 399.393438 33 + L 705.8875 399.393438 34 + L 705.8875 28.798125 35 + L 47.289844 28.798125 36 + z 37 + " style="fill: #ffffff"/> 38 + </g> 39 + <g id="patch_3"> 40 + <path d="M 47.289844 399.393438 41 + L 383.909074 399.393438 42 + L 383.909074 28.798125 43 + L 47.289844 28.798125 44 + z 45 + " clip-path="url(#p5d40285879)" style="fill: #e0e0e0; opacity: 0.12; stroke: #e0e0e0; stroke-linejoin: miter"/> 46 + </g> 47 + <g id="matplotlib.axis_1"> 48 + <g id="xtick_1"> 49 + <g id="line2d_1"> 50 + <path d="M 318.82399 399.393438 51 + L 318.82399 28.798125 52 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 53 + </g> 54 + <g id="line2d_2"> 55 + <defs> 56 + <path id="m3d27035b55" d="M 0 0 57 + L 0 3.5 58 + " style="stroke: #000000; stroke-width: 0.8"/> 59 + </defs> 60 + <g> 61 + <use xlink:href="#m3d27035b55" x="318.82399" y="399.393438" style="stroke: #000000; stroke-width: 0.8"/> 62 + </g> 63 + </g> 64 + <g id="text_1"> 65 + <!-- $\mathdefault{10^{2}}$ --> 66 + <g transform="translate(310.02399 415.793438)"> 67 + <text> 68 + <tspan x="0" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'">1</tspan> 69 + <tspan x="6.362305" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'">0</tspan> 70 + <tspan x="12.820312" y="-4.804688" style="font-size: 7px; font-family: 'DejaVu Sans'">2</tspan> 71 + </text> 72 + </g> 73 + </g> 74 + </g> 75 + <g id="xtick_2"> 76 + <g id="line2d_3"> 77 + <path d="M 605.042621 399.393438 78 + L 605.042621 28.798125 79 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 80 + </g> 81 + <g id="line2d_4"> 82 + <g> 83 + <use xlink:href="#m3d27035b55" x="605.042621" y="399.393438" style="stroke: #000000; stroke-width: 0.8"/> 84 + </g> 85 + </g> 86 + <g id="text_2"> 87 + <!-- $\mathdefault{10^{3}}$ --> 88 + <g transform="translate(596.242621 415.793438)"> 89 + <text> 90 + <tspan x="0" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'">1</tspan> 91 + <tspan x="6.362305" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'">0</tspan> 92 + <tspan x="12.820312" y="-4.804688" style="font-size: 7px; font-family: 'DejaVu Sans'">3</tspan> 93 + </text> 94 + </g> 95 + </g> 96 + </g> 97 + <g id="xtick_3"> 98 + <g id="line2d_5"> 99 + <path d="M 118.765752 399.393438 100 + L 118.765752 28.798125 101 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 102 + </g> 103 + <g id="line2d_6"> 104 + <defs> 105 + <path id="md1b22fa4b4" d="M 0 0 106 + L 0 2 107 + " style="stroke: #000000; stroke-width: 0.6"/> 108 + </defs> 109 + <g> 110 + <use xlink:href="#md1b22fa4b4" x="118.765752" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 111 + </g> 112 + </g> 113 + </g> 114 + <g id="xtick_4"> 115 + <g id="line2d_7"> 116 + <path d="M 169.166351 399.393438 117 + L 169.166351 28.798125 118 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 119 + </g> 120 + <g id="line2d_8"> 121 + <g> 122 + <use xlink:href="#md1b22fa4b4" x="169.166351" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 123 + </g> 124 + </g> 125 + </g> 126 + <g id="xtick_5"> 127 + <g id="line2d_9"> 128 + <path d="M 204.926145 399.393438 129 + L 204.926145 28.798125 130 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 131 + </g> 132 + <g id="line2d_10"> 133 + <g> 134 + <use xlink:href="#md1b22fa4b4" x="204.926145" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 135 + </g> 136 + </g> 137 + </g> 138 + <g id="xtick_6"> 139 + <g id="line2d_11"> 140 + <path d="M 232.663597 399.393438 141 + L 232.663597 28.798125 142 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 143 + </g> 144 + <g id="line2d_12"> 145 + <g> 146 + <use xlink:href="#md1b22fa4b4" x="232.663597" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 147 + </g> 148 + </g> 149 + </g> 150 + <g id="xtick_7"> 151 + <g id="line2d_13"> 152 + <path d="M 255.326744 399.393438 153 + L 255.326744 28.798125 154 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 155 + </g> 156 + <g id="line2d_14"> 157 + <g> 158 + <use xlink:href="#md1b22fa4b4" x="255.326744" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 159 + </g> 160 + </g> 161 + </g> 162 + <g id="xtick_8"> 163 + <g id="line2d_15"> 164 + <path d="M 274.488163 399.393438 165 + L 274.488163 28.798125 166 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 167 + </g> 168 + <g id="line2d_16"> 169 + <g> 170 + <use xlink:href="#md1b22fa4b4" x="274.488163" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 171 + </g> 172 + </g> 173 + </g> 174 + <g id="xtick_9"> 175 + <g id="line2d_17"> 176 + <path d="M 291.086539 399.393438 177 + L 291.086539 28.798125 178 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 179 + </g> 180 + <g id="line2d_18"> 181 + <g> 182 + <use xlink:href="#md1b22fa4b4" x="291.086539" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 183 + </g> 184 + </g> 185 + </g> 186 + <g id="xtick_10"> 187 + <g id="line2d_19"> 188 + <path d="M 305.727344 399.393438 189 + L 305.727344 28.798125 190 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 191 + </g> 192 + <g id="line2d_20"> 193 + <g> 194 + <use xlink:href="#md1b22fa4b4" x="305.727344" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 195 + </g> 196 + </g> 197 + </g> 198 + <g id="xtick_11"> 199 + <g id="line2d_21"> 200 + <path d="M 404.984383 399.393438 201 + L 404.984383 28.798125 202 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 203 + </g> 204 + <g id="line2d_22"> 205 + <g> 206 + <use xlink:href="#md1b22fa4b4" x="404.984383" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 207 + </g> 208 + </g> 209 + </g> 210 + <g id="xtick_12"> 211 + <g id="line2d_23"> 212 + <path d="M 455.384983 399.393438 213 + L 455.384983 28.798125 214 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 215 + </g> 216 + <g id="line2d_24"> 217 + <g> 218 + <use xlink:href="#md1b22fa4b4" x="455.384983" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 219 + </g> 220 + </g> 221 + </g> 222 + <g id="xtick_13"> 223 + <g id="line2d_25"> 224 + <path d="M 491.144777 399.393438 225 + L 491.144777 28.798125 226 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 227 + </g> 228 + <g id="line2d_26"> 229 + <g> 230 + <use xlink:href="#md1b22fa4b4" x="491.144777" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 231 + </g> 232 + </g> 233 + </g> 234 + <g id="xtick_14"> 235 + <g id="line2d_27"> 236 + <path d="M 518.882228 399.393438 237 + L 518.882228 28.798125 238 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 239 + </g> 240 + <g id="line2d_28"> 241 + <g> 242 + <use xlink:href="#md1b22fa4b4" x="518.882228" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 243 + </g> 244 + </g> 245 + </g> 246 + <g id="xtick_15"> 247 + <g id="line2d_29"> 248 + <path d="M 541.545376 399.393438 249 + L 541.545376 28.798125 250 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 251 + </g> 252 + <g id="line2d_30"> 253 + <g> 254 + <use xlink:href="#md1b22fa4b4" x="541.545376" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 255 + </g> 256 + </g> 257 + </g> 258 + <g id="xtick_16"> 259 + <g id="line2d_31"> 260 + <path d="M 560.706794 399.393438 261 + L 560.706794 28.798125 262 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 263 + </g> 264 + <g id="line2d_32"> 265 + <g> 266 + <use xlink:href="#md1b22fa4b4" x="560.706794" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 267 + </g> 268 + </g> 269 + </g> 270 + <g id="xtick_17"> 271 + <g id="line2d_33"> 272 + <path d="M 577.30517 399.393438 273 + L 577.30517 28.798125 274 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 275 + </g> 276 + <g id="line2d_34"> 277 + <g> 278 + <use xlink:href="#md1b22fa4b4" x="577.30517" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 279 + </g> 280 + </g> 281 + </g> 282 + <g id="xtick_18"> 283 + <g id="line2d_35"> 284 + <path d="M 591.945975 399.393438 285 + L 591.945975 28.798125 286 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 287 + </g> 288 + <g id="line2d_36"> 289 + <g> 290 + <use xlink:href="#md1b22fa4b4" x="591.945975" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 291 + </g> 292 + </g> 293 + </g> 294 + <g id="xtick_19"> 295 + <g id="line2d_37"> 296 + <path d="M 691.203015 399.393438 297 + L 691.203015 28.798125 298 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 299 + </g> 300 + <g id="line2d_38"> 301 + <g> 302 + <use xlink:href="#md1b22fa4b4" x="691.203015" y="399.393438" style="stroke: #000000; stroke-width: 0.6"/> 303 + </g> 304 + </g> 305 + </g> 306 + <g id="text_3"> 307 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: middle" x="376.588672" y="429.794219" transform="rotate(-0 376.588672 429.794219)">Frecuencia [Hz]</text> 308 + </g> 309 + </g> 310 + <g id="matplotlib.axis_2"> 311 + <g id="ytick_1"> 312 + <g id="line2d_39"> 313 + <path d="M 47.289844 397.207124 314 + L 705.8875 397.207124 315 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 316 + </g> 317 + <g id="line2d_40"> 318 + <defs> 319 + <path id="mef640d9f3a" d="M 0 0 320 + L -3.5 0 321 + " style="stroke: #000000; stroke-width: 0.8"/> 322 + </defs> 323 + <g> 324 + <use xlink:href="#mef640d9f3a" x="47.289844" y="397.207124" style="stroke: #000000; stroke-width: 0.8"/> 325 + </g> 326 + </g> 327 + <g id="text_4"> 328 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end" x="40.289844" y="401.005952" transform="rotate(-0 40.289844 401.005952)">90</text> 329 + </g> 330 + </g> 331 + <g id="ytick_2"> 332 + <g id="line2d_41"> 333 + <path d="M 47.289844 336.019868 334 + L 705.8875 336.019868 335 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 336 + </g> 337 + <g id="line2d_42"> 338 + <g> 339 + <use xlink:href="#mef640d9f3a" x="47.289844" y="336.019868" style="stroke: #000000; stroke-width: 0.8"/> 340 + </g> 341 + </g> 342 + <g id="text_5"> 343 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end" x="40.289844" y="339.818696" transform="rotate(-0 40.289844 339.818696)">100</text> 344 + </g> 345 + </g> 346 + <g id="ytick_3"> 347 + <g id="line2d_43"> 348 + <path d="M 47.289844 274.832613 349 + L 705.8875 274.832613 350 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 351 + </g> 352 + <g id="line2d_44"> 353 + <g> 354 + <use xlink:href="#mef640d9f3a" x="47.289844" y="274.832613" style="stroke: #000000; stroke-width: 0.8"/> 355 + </g> 356 + </g> 357 + <g id="text_6"> 358 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end" x="40.289844" y="278.631441" transform="rotate(-0 40.289844 278.631441)">110</text> 359 + </g> 360 + </g> 361 + <g id="ytick_4"> 362 + <g id="line2d_45"> 363 + <path d="M 47.289844 213.645357 364 + L 705.8875 213.645357 365 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 366 + </g> 367 + <g id="line2d_46"> 368 + <g> 369 + <use xlink:href="#mef640d9f3a" x="47.289844" y="213.645357" style="stroke: #000000; stroke-width: 0.8"/> 370 + </g> 371 + </g> 372 + <g id="text_7"> 373 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end" x="40.289844" y="217.444185" transform="rotate(-0 40.289844 217.444185)">120</text> 374 + </g> 375 + </g> 376 + <g id="ytick_5"> 377 + <g id="line2d_47"> 378 + <path d="M 47.289844 152.458101 379 + L 705.8875 152.458101 380 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 381 + </g> 382 + <g id="line2d_48"> 383 + <g> 384 + <use xlink:href="#mef640d9f3a" x="47.289844" y="152.458101" style="stroke: #000000; stroke-width: 0.8"/> 385 + </g> 386 + </g> 387 + <g id="text_8"> 388 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end" x="40.289844" y="156.256929" transform="rotate(-0 40.289844 156.256929)">130</text> 389 + </g> 390 + </g> 391 + <g id="ytick_6"> 392 + <g id="line2d_49"> 393 + <path d="M 47.289844 91.270846 394 + L 705.8875 91.270846 395 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 396 + </g> 397 + <g id="line2d_50"> 398 + <g> 399 + <use xlink:href="#mef640d9f3a" x="47.289844" y="91.270846" style="stroke: #000000; stroke-width: 0.8"/> 400 + </g> 401 + </g> 402 + <g id="text_9"> 403 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end" x="40.289844" y="95.069674" transform="rotate(-0 40.289844 95.069674)">140</text> 404 + </g> 405 + </g> 406 + <g id="ytick_7"> 407 + <g id="line2d_51"> 408 + <path d="M 47.289844 30.08359 409 + L 705.8875 30.08359 410 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-opacity: 0.5; stroke-width: 0.8"/> 411 + </g> 412 + <g id="line2d_52"> 413 + <g> 414 + <use xlink:href="#mef640d9f3a" x="47.289844" y="30.08359" style="stroke: #000000; stroke-width: 0.8"/> 415 + </g> 416 + </g> 417 + <g id="text_10"> 418 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end" x="40.289844" y="33.882418" transform="rotate(-0 40.289844 33.882418)">150</text> 419 + </g> 420 + </g> 421 + <g id="text_11"> 422 + <!-- Nivel de rigidez de transferencia $L_k$ [dB re 1 N/m] --> 423 + <g transform="translate(14.8 337.395781) rotate(-90)"> 424 + <text> 425 + <tspan x="0" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">N</tspan> 426 + <tspan x="7.480469" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">i</tspan> 427 + <tspan x="10.258789" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">v</tspan> 428 + <tspan x="16.176758" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">e</tspan> 429 + <tspan x="22.329102" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">l</tspan> 430 + <tspan x="25.107422" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 431 + <tspan x="28.286133" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">d</tspan> 432 + <tspan x="34.633789" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">e</tspan> 433 + <tspan x="40.786133" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 434 + <tspan x="43.964844" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">r</tspan> 435 + <tspan x="48.076172" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">i</tspan> 436 + <tspan x="50.854492" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">g</tspan> 437 + <tspan x="57.202148" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">i</tspan> 438 + <tspan x="59.980469" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">d</tspan> 439 + <tspan x="66.328125" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">e</tspan> 440 + <tspan x="72.480469" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">z</tspan> 441 + <tspan x="77.729492" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 442 + <tspan x="80.908203" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">d</tspan> 443 + <tspan x="87.255859" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">e</tspan> 444 + <tspan x="93.408203" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 445 + <tspan x="96.586914" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">t</tspan> 446 + <tspan x="100.507812" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">r</tspan> 447 + <tspan x="104.619141" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">a</tspan> 448 + <tspan x="110.74707" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">n</tspan> 449 + <tspan x="117.084961" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">s</tspan> 450 + <tspan x="122.294922" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">f</tspan> 451 + <tspan x="125.81543" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">e</tspan> 452 + <tspan x="131.967773" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">r</tspan> 453 + <tspan x="136.079102" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">e</tspan> 454 + <tspan x="142.231445" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">n</tspan> 455 + <tspan x="148.569336" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">c</tspan> 456 + <tspan x="154.067383" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">i</tspan> 457 + <tspan x="156.845703" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">a</tspan> 458 + <tspan x="162.973633" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 459 + <tspan x="176.050781" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 460 + <tspan x="179.229492" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">[</tspan> 461 + <tspan x="183.130859" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">d</tspan> 462 + <tspan x="189.478516" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">B</tspan> 463 + <tspan x="196.338867" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 464 + <tspan x="199.517578" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">r</tspan> 465 + <tspan x="203.628906" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">e</tspan> 466 + <tspan x="209.78125" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 467 + <tspan x="212.959961" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">1</tspan> 468 + <tspan x="219.322266" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'"> </tspan> 469 + <tspan x="222.500977" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">N</tspan> 470 + <tspan x="229.981445" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">/</tspan> 471 + <tspan x="233.350586" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">m</tspan> 472 + <tspan x="243.091797" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'">]</tspan> 473 + <tspan x="166.152344" y="-0.40625" style="font-style: oblique; font-size: 10px; font-family: 'DejaVu Sans'">L</tspan> 474 + <tspan x="171.723633" y="1.093745" style="font-style: oblique; font-size: 7px; font-family: 'DejaVu Sans'">k</tspan> 475 + </text> 476 + </g> 477 + </g> 478 + </g> 479 + <g id="line2d_53"> 480 + <path d="M 47.289844 213.643444 481 + L 304.571733 213.525518 482 + L 373.839934 213.281755 483 + L 416.720249 212.92535 484 + L 448.605611 212.453398 485 + L 474.993497 211.843901 486 + L 496.983402 211.114651 487 + L 515.674821 210.280921 488 + L 532.16725 209.337502 489 + L 547.560184 208.242747 490 + L 561.853622 207.007789 491 + L 575.047565 205.653781 492 + L 588.241508 204.069656 493 + L 600.335956 202.396265 494 + L 612.430404 200.495697 495 + L 624.524851 198.355987 496 + L 635.519804 196.196358 497 + L 646.514756 193.82938 498 + L 658.609204 190.986616 499 + L 670.703652 187.898119 500 + L 682.7981 184.572976 501 + L 694.892547 181.023946 502 + L 705.8875 177.61636 503 + L 705.8875 177.61636 504 + " clip-path="url(#p5d40285879)" style="fill: none; stroke: #1f77b4; stroke-width: 2.2; stroke-linecap: square"/> 505 + </g> 506 + <g id="line2d_54"> 507 + <path d="M 47.289844 382.548196 508 + L 68.180254 363.792586 509 + L 85.772178 347.708547 510 + L 101.165111 333.333816 511 + L 114.359054 320.713275 512 + L 126.453502 308.826993 513 + L 136.348959 298.813787 514 + L 146.244416 288.473427 515 + L 155.040378 278.939439 516 + L 162.736845 270.269027 517 + L 169.333817 262.539242 518 + L 175.930788 254.475425 519 + L 181.428265 247.448452 520 + L 186.925741 240.085002 521 + L 192.423217 232.31524 522 + L 196.821198 225.746112 523 + L 201.219179 218.797468 524 + L 205.61716 211.389764 525 + L 208.915646 205.470385 526 + L 212.214132 199.175799 527 + L 215.512617 192.430861 528 + L 218.811103 185.136356 529 + L 222.109589 177.15761 530 + L 224.308579 171.368046 531 + L 226.50757 165.116482 532 + L 228.70656 158.303553 533 + L 230.905551 150.795306 534 + L 233.104541 142.405729 535 + L 235.303532 132.867467 536 + L 237.502522 121.781229 537 + L 239.701513 108.52915 538 + L 240.801008 100.807895 539 + L 241.900503 92.157963 540 + L 242.999999 82.428663 541 + L 246.298484 50.013151 542 + L 247.39798 45.643366 543 + L 248.497475 49.785601 544 + L 249.59697 59.21821 545 + L 251.795961 79.548674 546 + L 252.895456 88.233477 547 + L 253.994951 95.850549 548 + L 255.094446 102.553548 549 + L 256.193942 108.495542 550 + L 258.392932 118.588502 551 + L 260.591923 126.886564 552 + L 262.790913 133.874932 553 + L 264.989904 139.872879 554 + L 267.188894 145.098768 555 + L 269.387885 149.707496 556 + L 271.586875 153.81249 557 + L 273.785866 157.499105 558 + L 275.984856 160.833084 559 + L 278.183847 163.866082 560 + L 281.482333 167.939401 561 + L 284.780818 171.535105 562 + L 288.079304 174.73471 563 + L 291.37779 177.600983 564 + L 294.676276 180.183262 565 + L 297.974761 182.521012 566 + L 302.372742 185.312197 567 + L 306.770723 187.785885 568 + L 311.168704 189.989962 569 + L 315.566685 191.962746 570 + L 321.064162 194.150352 571 + L 326.561638 196.073825 572 + L 332.059114 197.772245 573 + L 338.656086 199.557377 574 + L 345.253057 201.107688 575 + L 352.949524 202.666181 576 + L 360.645991 203.99734 577 + L 369.441953 205.285416 578 + L 379.33741 206.486476 579 + L 389.232867 207.469329 580 + L 400.22782 208.348916 581 + L 412.322268 209.101375 582 + L 425.516211 209.707828 583 + L 439.809649 210.151803 584 + L 455.202582 210.415877 585 + L 471.695011 210.477448 586 + L 488.18744 210.321575 587 + L 504.679869 209.946384 588 + L 520.072802 209.386339 589 + L 535.465736 208.604109 590 + L 549.759174 207.656479 591 + L 562.953117 206.571198 592 + L 576.14706 205.262569 593 + L 588.241508 203.848888 594 + L 600.335956 202.214603 595 + L 612.430404 200.346204 596 + L 623.425356 198.435406 597 + L 634.420309 196.316727 598 + L 645.415261 193.987548 599 + L 656.410214 191.44834 600 + L 668.504661 188.416991 601 + L 680.599109 185.144743 602 + L 692.693557 181.644153 603 + L 705.8875 177.583163 604 + L 705.8875 177.583163 605 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 7.4,3.2; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 2"/> 606 + </g> 607 + <g id="line2d_55"> 608 + <path d="M 247.348082 399.393438 609 + L 247.348082 28.798125 610 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 1.2,1.98; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-width: 1.2"/> 611 + </g> 612 + <g id="patch_4"> 613 + <path d="M 47.289844 399.393438 614 + L 47.289844 28.798125 615 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 616 + </g> 617 + <g id="patch_5"> 618 + <path d="M 705.8875 399.393438 619 + L 705.8875 28.798125 620 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 621 + </g> 622 + <g id="patch_6"> 623 + <path d="M 47.289844 399.393438 624 + L 705.8875 399.393438 625 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 626 + </g> 627 + <g id="patch_7"> 628 + <path d="M 47.289844 28.798125 629 + L 705.8875 28.798125 630 + " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 631 + </g> 632 + <g id="text_12"> 633 + <g id="patch_8"> 634 + <path d="M 494.064785 385.863672 635 + L 696.008535 385.863672 636 + Q 701.008535 385.863672 701.008535 380.863672 637 + L 701.008535 332.852734 638 + Q 701.008535 327.852734 696.008535 327.852734 639 + L 494.064785 327.852734 640 + Q 489.064785 327.852734 489.064785 332.852734 641 + L 489.064785 380.863672 642 + Q 489.064785 385.863672 494.064785 385.863672 643 + z 644 + " style="fill: #f0f2f5; stroke: #e0e0e0; stroke-linejoin: miter"/> 645 + </g> 646 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif" transform="translate(494.064785 341.452148)">Kelvin-Voigt: k = 1 MN/m, c = 120 N.s/m</text> 647 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif" transform="translate(496.481973 353.454883)">blocking mass m2 = 8 kg, f0 = 56,3 Hz</text> 648 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif" transform="translate(524.803848 365.457617)">indirect valid for T &lt;&lt; 1 (f &gt;&gt; f0)</text> 649 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif" transform="translate(504.253848 377.460352)">shaded: T not small -&gt; method invalid</text> 650 + </g> 651 + <g id="text_13"> 652 + <text style="font-weight: 700; font-size: 12px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: middle" x="376.588672" y="16.798125" transform="rotate(-0 376.588672 16.798125)">Rigidez dinámica de transferencia ISO 10846</text> 653 + </g> 654 + <g id="legend_1"> 655 + <g id="patch_9"> 656 + <path d="M 53.589844 78.124453 657 + L 213.879844 78.124453 658 + Q 215.679844 78.124453 215.679844 76.324453 659 + L 215.679844 35.098125 660 + Q 215.679844 33.298125 213.879844 33.298125 661 + L 53.589844 33.298125 662 + Q 51.789844 33.298125 51.789844 35.098125 663 + L 51.789844 76.324453 664 + Q 51.789844 78.124453 53.589844 78.124453 665 + z 666 + " style="fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 667 + </g> 668 + <g id="line2d_56"> 669 + <path d="M 55.389844 40.588125 670 + L 64.389844 40.588125 671 + L 73.389844 40.588125 672 + " style="fill: none; stroke: #1f77b4; stroke-width: 2.2; stroke-linecap: square"/> 673 + </g> 674 + <g id="text_14"> 675 + <!-- $L_k$ real de $k_{2,1}=k+j\omega c$ --> 676 + <g transform="translate(80.589844 43.738125)"> 677 + <text> 678 + <tspan x="0" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">L</tspan> 679 + <tspan x="45.994043" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">k</tspan> 680 + <tspan x="73.746387" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">k</tspan> 681 + <tspan x="90.006152" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">j</tspan> 682 + <tspan x="92.506641" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">ω</tspan> 683 + <tspan x="100.043262" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">c</tspan> 684 + <tspan x="5.01416" y="1.193746" style="font-style: oblique; font-size: 6.3px; font-family: 'DejaVu Sans'">k</tspan> 685 + <tspan x="8.908594" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'"> </tspan> 686 + <tspan x="11.769434" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">r</tspan> 687 + <tspan x="15.469629" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">e</tspan> 688 + <tspan x="21.006738" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">a</tspan> 689 + <tspan x="26.521875" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">l</tspan> 690 + <tspan x="29.022363" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'"> </tspan> 691 + <tspan x="31.883203" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">d</tspan> 692 + <tspan x="37.596094" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">e</tspan> 693 + <tspan x="43.133203" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'"> </tspan> 694 + <tspan x="64.451953" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">=</tspan> 695 + <tspan x="80.711719" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">+</tspan> 696 + <tspan x="51.205957" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'">2</tspan> 697 + <tspan x="55.214209" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'">,</tspan> 698 + <tspan x="58.444189" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'">1</tspan> 699 + </text> 700 + </g> 701 + </g> 702 + <g id="line2d_57"> 703 + <path d="M 55.389844 55.710234 704 + L 64.389844 55.710234 705 + L 73.389844 55.710234 706 + " style="fill: none; stroke-dasharray: 7.4,3.2; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 2"/> 707 + </g> 708 + <g id="text_15"> 709 + <!-- método indirecto $-(2\pi f)^2 m_2 T$ --> 710 + <g transform="translate(80.589844 58.860234)"> 711 + <text> 712 + <tspan x="0" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">m</tspan> 713 + <tspan x="8.76709" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">é</tspan> 714 + <tspan x="14.304199" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">t</tspan> 715 + <tspan x="17.833008" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">o</tspan> 716 + <tspan x="23.339355" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">d</tspan> 717 + <tspan x="29.052246" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">o</tspan> 718 + <tspan x="34.558594" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'"> </tspan> 719 + <tspan x="37.419434" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">i</tspan> 720 + <tspan x="39.919922" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">n</tspan> 721 + <tspan x="45.624023" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">d</tspan> 722 + <tspan x="51.336914" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">i</tspan> 723 + <tspan x="53.837402" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">r</tspan> 724 + <tspan x="57.537598" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">e</tspan> 725 + <tspan x="63.074707" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">c</tspan> 726 + <tspan x="68.022949" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">t</tspan> 727 + <tspan x="71.551758" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">o</tspan> 728 + <tspan x="77.058105" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'"> </tspan> 729 + <tspan x="79.918945" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">−</tspan> 730 + <tspan x="87.459961" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">(</tspan> 731 + <tspan x="90.971191" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">2</tspan> 732 + <tspan x="105.28418" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'">)</tspan> 733 + <tspan x="96.697266" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">π</tspan> 734 + <tspan x="102.115723" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">f</tspan> 735 + <tspan x="113.135889" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">m</tspan> 736 + <tspan x="126.157324" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">T</tspan> 737 + <tspan x="108.881543" y="-4.31875" style="font-size: 6.3px; font-family: 'DejaVu Sans'">2</tspan> 738 + <tspan x="121.902979" y="0.748246" style="font-size: 6.3px; font-family: 'DejaVu Sans'">2</tspan> 739 + </text> 740 + </g> 741 + </g> 742 + <g id="line2d_58"> 743 + <path d="M 55.389844 69.212344 744 + L 64.389844 69.212344 745 + L 73.389844 69.212344 746 + " style="fill: none; stroke-dasharray: 1.2,1.98; stroke-dashoffset: 0; stroke: #e0e0e0; stroke-width: 1.2"/> 747 + </g> 748 + <g id="text_16"> 749 + <!-- resonancia $f_0$ --> 750 + <g transform="translate(80.589844 72.362344)"> 751 + <text> 752 + <tspan x="0" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">r</tspan> 753 + <tspan x="3.700195" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">e</tspan> 754 + <tspan x="9.237305" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">s</tspan> 755 + <tspan x="13.92627" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">o</tspan> 756 + <tspan x="19.432617" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">n</tspan> 757 + <tspan x="25.136719" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">a</tspan> 758 + <tspan x="30.651855" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">n</tspan> 759 + <tspan x="36.355957" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">c</tspan> 760 + <tspan x="41.304199" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">i</tspan> 761 + <tspan x="43.804688" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'">a</tspan> 762 + <tspan x="49.319824" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'"> </tspan> 763 + <tspan x="52.180664" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'">f</tspan> 764 + <tspan x="55.349121" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'">0</tspan> 765 + </text> 766 + </g> 767 + </g> 768 + </g> 769 + </g> 770 + </g> 771 + <defs> 772 + <clipPath id="p5d40285879"> 773 + <rect x="47.289844" y="28.798125" width="658.597656" height="370.595313"/> 774 + </clipPath> 775 + </defs> 776 + </svg>
+776
.github/images/transfer_stiffness_es_dark.svg
··· 1 + <?xml version="1.0" encoding="utf-8" standalone="no"?> 2 + <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 3 + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4 + <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="713.0875pt" height="439.396563pt" viewBox="0 0 713.0875 439.396563" xmlns="http://www.w3.org/2000/svg" version="1.1"> 5 + <metadata> 6 + <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 7 + <cc:Work> 8 + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> 9 + <dc:format>image/svg+xml</dc:format> 10 + <dc:creator> 11 + <cc:Agent> 12 + <dc:title>Matplotlib v3.11.0, https://matplotlib.org/</dc:title> 13 + </cc:Agent> 14 + </dc:creator> 15 + </cc:Work> 16 + </rdf:RDF> 17 + </metadata> 18 + <defs> 19 + <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> 20 + </defs> 21 + <g id="figure_1"> 22 + <g id="patch_1"> 23 + <path d="M 0 439.396563 24 + L 713.0875 439.396563 25 + L 713.0875 0 26 + L 0 0 27 + z 28 + "/> 29 + </g> 30 + <g id="axes_1"> 31 + <g id="patch_2"> 32 + <path d="M 47.289844 399.393438 33 + L 705.8875 399.393438 34 + L 705.8875 28.798125 35 + L 47.289844 28.798125 36 + z 37 + "/> 38 + </g> 39 + <g id="patch_3"> 40 + <path d="M 47.289844 399.393438 41 + L 383.909074 399.393438 42 + L 383.909074 28.798125 43 + L 47.289844 28.798125 44 + z 45 + " clip-path="url(#p5d40285879)" style="fill: #555555; opacity: 0.12; stroke: #555555; stroke-linejoin: miter"/> 46 + </g> 47 + <g id="matplotlib.axis_1"> 48 + <g id="xtick_1"> 49 + <g id="line2d_1"> 50 + <path d="M 318.82399 399.393438 51 + L 318.82399 28.798125 52 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 53 + </g> 54 + <g id="line2d_2"> 55 + <defs> 56 + <path id="m8d14ee1197" d="M 0 0 57 + L 0 3.5 58 + " style="stroke: #ffffff; stroke-width: 0.8"/> 59 + </defs> 60 + <g> 61 + <use xlink:href="#m8d14ee1197" x="318.82399" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 62 + </g> 63 + </g> 64 + <g id="text_1"> 65 + <!-- $\mathdefault{10^{2}}$ --> 66 + <g style="fill: #ffffff" transform="translate(310.02399 415.793438)"> 67 + <text> 68 + <tspan x="0" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">1</tspan> 69 + <tspan x="6.362305" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">0</tspan> 70 + <tspan x="12.820312" y="-4.804688" style="font-size: 7px; font-family: 'DejaVu Sans'; fill: #ffffff">2</tspan> 71 + </text> 72 + </g> 73 + </g> 74 + </g> 75 + <g id="xtick_2"> 76 + <g id="line2d_3"> 77 + <path d="M 605.042621 399.393438 78 + L 605.042621 28.798125 79 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 80 + </g> 81 + <g id="line2d_4"> 82 + <g> 83 + <use xlink:href="#m8d14ee1197" x="605.042621" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 84 + </g> 85 + </g> 86 + <g id="text_2"> 87 + <!-- $\mathdefault{10^{3}}$ --> 88 + <g style="fill: #ffffff" transform="translate(596.242621 415.793438)"> 89 + <text> 90 + <tspan x="0" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">1</tspan> 91 + <tspan x="6.362305" y="-0.674688" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">0</tspan> 92 + <tspan x="12.820312" y="-4.804688" style="font-size: 7px; font-family: 'DejaVu Sans'; fill: #ffffff">3</tspan> 93 + </text> 94 + </g> 95 + </g> 96 + </g> 97 + <g id="xtick_3"> 98 + <g id="line2d_5"> 99 + <path d="M 118.765752 399.393438 100 + L 118.765752 28.798125 101 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 102 + </g> 103 + <g id="line2d_6"> 104 + <defs> 105 + <path id="m1caa325441" d="M 0 0 106 + L 0 2 107 + " style="stroke: #ffffff; stroke-width: 0.6"/> 108 + </defs> 109 + <g> 110 + <use xlink:href="#m1caa325441" x="118.765752" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 111 + </g> 112 + </g> 113 + </g> 114 + <g id="xtick_4"> 115 + <g id="line2d_7"> 116 + <path d="M 169.166351 399.393438 117 + L 169.166351 28.798125 118 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 119 + </g> 120 + <g id="line2d_8"> 121 + <g> 122 + <use xlink:href="#m1caa325441" x="169.166351" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 123 + </g> 124 + </g> 125 + </g> 126 + <g id="xtick_5"> 127 + <g id="line2d_9"> 128 + <path d="M 204.926145 399.393438 129 + L 204.926145 28.798125 130 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 131 + </g> 132 + <g id="line2d_10"> 133 + <g> 134 + <use xlink:href="#m1caa325441" x="204.926145" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 135 + </g> 136 + </g> 137 + </g> 138 + <g id="xtick_6"> 139 + <g id="line2d_11"> 140 + <path d="M 232.663597 399.393438 141 + L 232.663597 28.798125 142 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 143 + </g> 144 + <g id="line2d_12"> 145 + <g> 146 + <use xlink:href="#m1caa325441" x="232.663597" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 147 + </g> 148 + </g> 149 + </g> 150 + <g id="xtick_7"> 151 + <g id="line2d_13"> 152 + <path d="M 255.326744 399.393438 153 + L 255.326744 28.798125 154 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 155 + </g> 156 + <g id="line2d_14"> 157 + <g> 158 + <use xlink:href="#m1caa325441" x="255.326744" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 159 + </g> 160 + </g> 161 + </g> 162 + <g id="xtick_8"> 163 + <g id="line2d_15"> 164 + <path d="M 274.488163 399.393438 165 + L 274.488163 28.798125 166 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 167 + </g> 168 + <g id="line2d_16"> 169 + <g> 170 + <use xlink:href="#m1caa325441" x="274.488163" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 171 + </g> 172 + </g> 173 + </g> 174 + <g id="xtick_9"> 175 + <g id="line2d_17"> 176 + <path d="M 291.086539 399.393438 177 + L 291.086539 28.798125 178 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 179 + </g> 180 + <g id="line2d_18"> 181 + <g> 182 + <use xlink:href="#m1caa325441" x="291.086539" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 183 + </g> 184 + </g> 185 + </g> 186 + <g id="xtick_10"> 187 + <g id="line2d_19"> 188 + <path d="M 305.727344 399.393438 189 + L 305.727344 28.798125 190 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 191 + </g> 192 + <g id="line2d_20"> 193 + <g> 194 + <use xlink:href="#m1caa325441" x="305.727344" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 195 + </g> 196 + </g> 197 + </g> 198 + <g id="xtick_11"> 199 + <g id="line2d_21"> 200 + <path d="M 404.984383 399.393438 201 + L 404.984383 28.798125 202 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 203 + </g> 204 + <g id="line2d_22"> 205 + <g> 206 + <use xlink:href="#m1caa325441" x="404.984383" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 207 + </g> 208 + </g> 209 + </g> 210 + <g id="xtick_12"> 211 + <g id="line2d_23"> 212 + <path d="M 455.384983 399.393438 213 + L 455.384983 28.798125 214 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 215 + </g> 216 + <g id="line2d_24"> 217 + <g> 218 + <use xlink:href="#m1caa325441" x="455.384983" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 219 + </g> 220 + </g> 221 + </g> 222 + <g id="xtick_13"> 223 + <g id="line2d_25"> 224 + <path d="M 491.144777 399.393438 225 + L 491.144777 28.798125 226 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 227 + </g> 228 + <g id="line2d_26"> 229 + <g> 230 + <use xlink:href="#m1caa325441" x="491.144777" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 231 + </g> 232 + </g> 233 + </g> 234 + <g id="xtick_14"> 235 + <g id="line2d_27"> 236 + <path d="M 518.882228 399.393438 237 + L 518.882228 28.798125 238 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 239 + </g> 240 + <g id="line2d_28"> 241 + <g> 242 + <use xlink:href="#m1caa325441" x="518.882228" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 243 + </g> 244 + </g> 245 + </g> 246 + <g id="xtick_15"> 247 + <g id="line2d_29"> 248 + <path d="M 541.545376 399.393438 249 + L 541.545376 28.798125 250 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 251 + </g> 252 + <g id="line2d_30"> 253 + <g> 254 + <use xlink:href="#m1caa325441" x="541.545376" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 255 + </g> 256 + </g> 257 + </g> 258 + <g id="xtick_16"> 259 + <g id="line2d_31"> 260 + <path d="M 560.706794 399.393438 261 + L 560.706794 28.798125 262 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 263 + </g> 264 + <g id="line2d_32"> 265 + <g> 266 + <use xlink:href="#m1caa325441" x="560.706794" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 267 + </g> 268 + </g> 269 + </g> 270 + <g id="xtick_17"> 271 + <g id="line2d_33"> 272 + <path d="M 577.30517 399.393438 273 + L 577.30517 28.798125 274 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 275 + </g> 276 + <g id="line2d_34"> 277 + <g> 278 + <use xlink:href="#m1caa325441" x="577.30517" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 279 + </g> 280 + </g> 281 + </g> 282 + <g id="xtick_18"> 283 + <g id="line2d_35"> 284 + <path d="M 591.945975 399.393438 285 + L 591.945975 28.798125 286 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 287 + </g> 288 + <g id="line2d_36"> 289 + <g> 290 + <use xlink:href="#m1caa325441" x="591.945975" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 291 + </g> 292 + </g> 293 + </g> 294 + <g id="xtick_19"> 295 + <g id="line2d_37"> 296 + <path d="M 691.203015 399.393438 297 + L 691.203015 28.798125 298 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 299 + </g> 300 + <g id="line2d_38"> 301 + <g> 302 + <use xlink:href="#m1caa325441" x="691.203015" y="399.393438" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.6"/> 303 + </g> 304 + </g> 305 + </g> 306 + <g id="text_3"> 307 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: middle; fill: #ffffff" x="376.588672" y="429.794219" transform="rotate(-0 376.588672 429.794219)">Frecuencia [Hz]</text> 308 + </g> 309 + </g> 310 + <g id="matplotlib.axis_2"> 311 + <g id="ytick_1"> 312 + <g id="line2d_39"> 313 + <path d="M 47.289844 397.207124 314 + L 705.8875 397.207124 315 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 316 + </g> 317 + <g id="line2d_40"> 318 + <defs> 319 + <path id="m5e07181663" d="M 0 0 320 + L -3.5 0 321 + " style="stroke: #ffffff; stroke-width: 0.8"/> 322 + </defs> 323 + <g> 324 + <use xlink:href="#m5e07181663" x="47.289844" y="397.207124" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 325 + </g> 326 + </g> 327 + <g id="text_4"> 328 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end; fill: #ffffff" x="40.289844" y="401.005952" transform="rotate(-0 40.289844 401.005952)">90</text> 329 + </g> 330 + </g> 331 + <g id="ytick_2"> 332 + <g id="line2d_41"> 333 + <path d="M 47.289844 336.019868 334 + L 705.8875 336.019868 335 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 336 + </g> 337 + <g id="line2d_42"> 338 + <g> 339 + <use xlink:href="#m5e07181663" x="47.289844" y="336.019868" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 340 + </g> 341 + </g> 342 + <g id="text_5"> 343 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end; fill: #ffffff" x="40.289844" y="339.818696" transform="rotate(-0 40.289844 339.818696)">100</text> 344 + </g> 345 + </g> 346 + <g id="ytick_3"> 347 + <g id="line2d_43"> 348 + <path d="M 47.289844 274.832613 349 + L 705.8875 274.832613 350 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 351 + </g> 352 + <g id="line2d_44"> 353 + <g> 354 + <use xlink:href="#m5e07181663" x="47.289844" y="274.832613" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 355 + </g> 356 + </g> 357 + <g id="text_6"> 358 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end; fill: #ffffff" x="40.289844" y="278.631441" transform="rotate(-0 40.289844 278.631441)">110</text> 359 + </g> 360 + </g> 361 + <g id="ytick_4"> 362 + <g id="line2d_45"> 363 + <path d="M 47.289844 213.645357 364 + L 705.8875 213.645357 365 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 366 + </g> 367 + <g id="line2d_46"> 368 + <g> 369 + <use xlink:href="#m5e07181663" x="47.289844" y="213.645357" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 370 + </g> 371 + </g> 372 + <g id="text_7"> 373 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end; fill: #ffffff" x="40.289844" y="217.444185" transform="rotate(-0 40.289844 217.444185)">120</text> 374 + </g> 375 + </g> 376 + <g id="ytick_5"> 377 + <g id="line2d_47"> 378 + <path d="M 47.289844 152.458101 379 + L 705.8875 152.458101 380 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 381 + </g> 382 + <g id="line2d_48"> 383 + <g> 384 + <use xlink:href="#m5e07181663" x="47.289844" y="152.458101" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 385 + </g> 386 + </g> 387 + <g id="text_8"> 388 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end; fill: #ffffff" x="40.289844" y="156.256929" transform="rotate(-0 40.289844 156.256929)">130</text> 389 + </g> 390 + </g> 391 + <g id="ytick_6"> 392 + <g id="line2d_49"> 393 + <path d="M 47.289844 91.270846 394 + L 705.8875 91.270846 395 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 396 + </g> 397 + <g id="line2d_50"> 398 + <g> 399 + <use xlink:href="#m5e07181663" x="47.289844" y="91.270846" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 400 + </g> 401 + </g> 402 + <g id="text_9"> 403 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end; fill: #ffffff" x="40.289844" y="95.069674" transform="rotate(-0 40.289844 95.069674)">140</text> 404 + </g> 405 + </g> 406 + <g id="ytick_7"> 407 + <g id="line2d_51"> 408 + <path d="M 47.289844 30.08359 409 + L 705.8875 30.08359 410 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 2.96,1.28; stroke-dashoffset: 0; stroke: #555555; stroke-opacity: 0.5; stroke-width: 0.8"/> 411 + </g> 412 + <g id="line2d_52"> 413 + <g> 414 + <use xlink:href="#m5e07181663" x="47.289844" y="30.08359" style="fill: #ffffff; stroke: #ffffff; stroke-width: 0.8"/> 415 + </g> 416 + </g> 417 + <g id="text_10"> 418 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: end; fill: #ffffff" x="40.289844" y="33.882418" transform="rotate(-0 40.289844 33.882418)">150</text> 419 + </g> 420 + </g> 421 + <g id="text_11"> 422 + <!-- Nivel de rigidez de transferencia $L_k$ [dB re 1 N/m] --> 423 + <g style="fill: #ffffff" transform="translate(14.8 337.395781) rotate(-90)"> 424 + <text> 425 + <tspan x="0" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">N</tspan> 426 + <tspan x="7.480469" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">i</tspan> 427 + <tspan x="10.258789" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">v</tspan> 428 + <tspan x="16.176758" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 429 + <tspan x="22.329102" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">l</tspan> 430 + <tspan x="25.107422" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 431 + <tspan x="28.286133" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">d</tspan> 432 + <tspan x="34.633789" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 433 + <tspan x="40.786133" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 434 + <tspan x="43.964844" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">r</tspan> 435 + <tspan x="48.076172" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">i</tspan> 436 + <tspan x="50.854492" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">g</tspan> 437 + <tspan x="57.202148" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">i</tspan> 438 + <tspan x="59.980469" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">d</tspan> 439 + <tspan x="66.328125" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 440 + <tspan x="72.480469" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">z</tspan> 441 + <tspan x="77.729492" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 442 + <tspan x="80.908203" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">d</tspan> 443 + <tspan x="87.255859" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 444 + <tspan x="93.408203" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 445 + <tspan x="96.586914" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">t</tspan> 446 + <tspan x="100.507812" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">r</tspan> 447 + <tspan x="104.619141" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">a</tspan> 448 + <tspan x="110.74707" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">n</tspan> 449 + <tspan x="117.084961" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">s</tspan> 450 + <tspan x="122.294922" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">f</tspan> 451 + <tspan x="125.81543" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 452 + <tspan x="131.967773" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">r</tspan> 453 + <tspan x="136.079102" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 454 + <tspan x="142.231445" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">n</tspan> 455 + <tspan x="148.569336" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">c</tspan> 456 + <tspan x="154.067383" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">i</tspan> 457 + <tspan x="156.845703" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">a</tspan> 458 + <tspan x="162.973633" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 459 + <tspan x="176.050781" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 460 + <tspan x="179.229492" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">[</tspan> 461 + <tspan x="183.130859" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">d</tspan> 462 + <tspan x="189.478516" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">B</tspan> 463 + <tspan x="196.338867" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 464 + <tspan x="199.517578" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">r</tspan> 465 + <tspan x="203.628906" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 466 + <tspan x="209.78125" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 467 + <tspan x="212.959961" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">1</tspan> 468 + <tspan x="219.322266" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 469 + <tspan x="222.500977" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">N</tspan> 470 + <tspan x="229.981445" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">/</tspan> 471 + <tspan x="233.350586" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">m</tspan> 472 + <tspan x="243.091797" y="-0.40625" style="font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">]</tspan> 473 + <tspan x="166.152344" y="-0.40625" style="font-style: oblique; font-size: 10px; font-family: 'DejaVu Sans'; fill: #ffffff">L</tspan> 474 + <tspan x="171.723633" y="1.093745" style="font-style: oblique; font-size: 7px; font-family: 'DejaVu Sans'; fill: #ffffff">k</tspan> 475 + </text> 476 + </g> 477 + </g> 478 + </g> 479 + <g id="line2d_53"> 480 + <path d="M 47.289844 213.643444 481 + L 304.571733 213.525518 482 + L 373.839934 213.281755 483 + L 416.720249 212.92535 484 + L 448.605611 212.453398 485 + L 474.993497 211.843901 486 + L 496.983402 211.114651 487 + L 515.674821 210.280921 488 + L 532.16725 209.337502 489 + L 547.560184 208.242747 490 + L 561.853622 207.007789 491 + L 575.047565 205.653781 492 + L 588.241508 204.069656 493 + L 600.335956 202.396265 494 + L 612.430404 200.495697 495 + L 624.524851 198.355987 496 + L 635.519804 196.196358 497 + L 646.514756 193.82938 498 + L 658.609204 190.986616 499 + L 670.703652 187.898119 500 + L 682.7981 184.572976 501 + L 694.892547 181.023946 502 + L 705.8875 177.61636 503 + L 705.8875 177.61636 504 + " clip-path="url(#p5d40285879)" style="fill: none; stroke: #1f77b4; stroke-width: 2.2; stroke-linecap: square"/> 505 + </g> 506 + <g id="line2d_54"> 507 + <path d="M 47.289844 382.548196 508 + L 68.180254 363.792586 509 + L 85.772178 347.708547 510 + L 101.165111 333.333816 511 + L 114.359054 320.713275 512 + L 126.453502 308.826993 513 + L 136.348959 298.813787 514 + L 146.244416 288.473427 515 + L 155.040378 278.939439 516 + L 162.736845 270.269027 517 + L 169.333817 262.539242 518 + L 175.930788 254.475425 519 + L 181.428265 247.448452 520 + L 186.925741 240.085002 521 + L 192.423217 232.31524 522 + L 196.821198 225.746112 523 + L 201.219179 218.797468 524 + L 205.61716 211.389764 525 + L 208.915646 205.470385 526 + L 212.214132 199.175799 527 + L 215.512617 192.430861 528 + L 218.811103 185.136356 529 + L 222.109589 177.15761 530 + L 224.308579 171.368046 531 + L 226.50757 165.116482 532 + L 228.70656 158.303553 533 + L 230.905551 150.795306 534 + L 233.104541 142.405729 535 + L 235.303532 132.867467 536 + L 237.502522 121.781229 537 + L 239.701513 108.52915 538 + L 240.801008 100.807895 539 + L 241.900503 92.157963 540 + L 242.999999 82.428663 541 + L 246.298484 50.013151 542 + L 247.39798 45.643366 543 + L 248.497475 49.785601 544 + L 249.59697 59.21821 545 + L 251.795961 79.548674 546 + L 252.895456 88.233477 547 + L 253.994951 95.850549 548 + L 255.094446 102.553548 549 + L 256.193942 108.495542 550 + L 258.392932 118.588502 551 + L 260.591923 126.886564 552 + L 262.790913 133.874932 553 + L 264.989904 139.872879 554 + L 267.188894 145.098768 555 + L 269.387885 149.707496 556 + L 271.586875 153.81249 557 + L 273.785866 157.499105 558 + L 275.984856 160.833084 559 + L 278.183847 163.866082 560 + L 281.482333 167.939401 561 + L 284.780818 171.535105 562 + L 288.079304 174.73471 563 + L 291.37779 177.600983 564 + L 294.676276 180.183262 565 + L 297.974761 182.521012 566 + L 302.372742 185.312197 567 + L 306.770723 187.785885 568 + L 311.168704 189.989962 569 + L 315.566685 191.962746 570 + L 321.064162 194.150352 571 + L 326.561638 196.073825 572 + L 332.059114 197.772245 573 + L 338.656086 199.557377 574 + L 345.253057 201.107688 575 + L 352.949524 202.666181 576 + L 360.645991 203.99734 577 + L 369.441953 205.285416 578 + L 379.33741 206.486476 579 + L 389.232867 207.469329 580 + L 400.22782 208.348916 581 + L 412.322268 209.101375 582 + L 425.516211 209.707828 583 + L 439.809649 210.151803 584 + L 455.202582 210.415877 585 + L 471.695011 210.477448 586 + L 488.18744 210.321575 587 + L 504.679869 209.946384 588 + L 520.072802 209.386339 589 + L 535.465736 208.604109 590 + L 549.759174 207.656479 591 + L 562.953117 206.571198 592 + L 576.14706 205.262569 593 + L 588.241508 203.848888 594 + L 600.335956 202.214603 595 + L 612.430404 200.346204 596 + L 623.425356 198.435406 597 + L 634.420309 196.316727 598 + L 645.415261 193.987548 599 + L 656.410214 191.44834 600 + L 668.504661 188.416991 601 + L 680.599109 185.144743 602 + L 692.693557 181.644153 603 + L 705.8875 177.583163 604 + L 705.8875 177.583163 605 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 7.4,3.2; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 2"/> 606 + </g> 607 + <g id="line2d_55"> 608 + <path d="M 247.348082 399.393438 609 + L 247.348082 28.798125 610 + " clip-path="url(#p5d40285879)" style="fill: none; stroke-dasharray: 1.2,1.98; stroke-dashoffset: 0; stroke: #555555; stroke-width: 1.2"/> 611 + </g> 612 + <g id="patch_4"> 613 + <path d="M 47.289844 399.393438 614 + L 47.289844 28.798125 615 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 616 + </g> 617 + <g id="patch_5"> 618 + <path d="M 705.8875 399.393438 619 + L 705.8875 28.798125 620 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 621 + </g> 622 + <g id="patch_6"> 623 + <path d="M 47.289844 399.393438 624 + L 705.8875 399.393438 625 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 626 + </g> 627 + <g id="patch_7"> 628 + <path d="M 47.289844 28.798125 629 + L 705.8875 28.798125 630 + " style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> 631 + </g> 632 + <g id="text_12"> 633 + <g id="patch_8"> 634 + <path d="M 494.064785 385.863672 635 + L 696.008535 385.863672 636 + Q 701.008535 385.863672 701.008535 380.863672 637 + L 701.008535 332.852734 638 + Q 701.008535 327.852734 696.008535 327.852734 639 + L 494.064785 327.852734 640 + Q 489.064785 327.852734 489.064785 332.852734 641 + L 489.064785 380.863672 642 + Q 489.064785 385.863672 494.064785 385.863672 643 + z 644 + " style="fill: #1c2128; stroke: #555555; stroke-linejoin: miter"/> 645 + </g> 646 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; fill: #ffffff" transform="translate(494.064785 341.452148)">Kelvin-Voigt: k = 1 MN/m, c = 120 N.s/m</text> 647 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; fill: #ffffff" transform="translate(496.481973 353.454883)">blocking mass m2 = 8 kg, f0 = 56,3 Hz</text> 648 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; fill: #ffffff" transform="translate(524.803848 365.457617)">indirect valid for T &lt;&lt; 1 (f &gt;&gt; f0)</text> 649 + <text style="font-size: 10px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; fill: #ffffff" transform="translate(504.253848 377.460352)">shaded: T not small -&gt; method invalid</text> 650 + </g> 651 + <g id="text_13"> 652 + <text style="font-weight: 700; font-size: 12px; font-family: 'DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', sans-serif; text-anchor: middle; fill: #ffffff" x="376.588672" y="16.798125" transform="rotate(-0 376.588672 16.798125)">Rigidez dinámica de transferencia ISO 10846</text> 653 + </g> 654 + <g id="legend_1"> 655 + <g id="patch_9"> 656 + <path d="M 53.589844 78.124453 657 + L 213.879844 78.124453 658 + Q 215.679844 78.124453 215.679844 76.324453 659 + L 215.679844 35.098125 660 + Q 215.679844 33.298125 213.879844 33.298125 661 + L 53.589844 33.298125 662 + Q 51.789844 33.298125 51.789844 35.098125 663 + L 51.789844 76.324453 664 + Q 51.789844 78.124453 53.589844 78.124453 665 + z 666 + " style="opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/> 667 + </g> 668 + <g id="line2d_56"> 669 + <path d="M 55.389844 40.588125 670 + L 64.389844 40.588125 671 + L 73.389844 40.588125 672 + " style="fill: none; stroke: #1f77b4; stroke-width: 2.2; stroke-linecap: square"/> 673 + </g> 674 + <g id="text_14"> 675 + <!-- $L_k$ real de $k_{2,1}=k+j\omega c$ --> 676 + <g style="fill: #ffffff" transform="translate(80.589844 43.738125)"> 677 + <text> 678 + <tspan x="0" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">L</tspan> 679 + <tspan x="45.994043" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">k</tspan> 680 + <tspan x="73.746387" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">k</tspan> 681 + <tspan x="90.006152" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">j</tspan> 682 + <tspan x="92.506641" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">ω</tspan> 683 + <tspan x="100.043262" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">c</tspan> 684 + <tspan x="5.01416" y="1.193746" style="font-style: oblique; font-size: 6.3px; font-family: 'DejaVu Sans'; fill: #ffffff">k</tspan> 685 + <tspan x="8.908594" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 686 + <tspan x="11.769434" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">r</tspan> 687 + <tspan x="15.469629" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 688 + <tspan x="21.006738" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">a</tspan> 689 + <tspan x="26.521875" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">l</tspan> 690 + <tspan x="29.022363" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 691 + <tspan x="31.883203" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">d</tspan> 692 + <tspan x="37.596094" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 693 + <tspan x="43.133203" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 694 + <tspan x="64.451953" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">=</tspan> 695 + <tspan x="80.711719" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">+</tspan> 696 + <tspan x="51.205957" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'; fill: #ffffff">2</tspan> 697 + <tspan x="55.214209" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'; fill: #ffffff">,</tspan> 698 + <tspan x="58.444189" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'; fill: #ffffff">1</tspan> 699 + </text> 700 + </g> 701 + </g> 702 + <g id="line2d_57"> 703 + <path d="M 55.389844 55.710234 704 + L 64.389844 55.710234 705 + L 73.389844 55.710234 706 + " style="fill: none; stroke-dasharray: 7.4,3.2; stroke-dashoffset: 0; stroke: #d62728; stroke-width: 2"/> 707 + </g> 708 + <g id="text_15"> 709 + <!-- método indirecto $-(2\pi f)^2 m_2 T$ --> 710 + <g style="fill: #ffffff" transform="translate(80.589844 58.860234)"> 711 + <text> 712 + <tspan x="0" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">m</tspan> 713 + <tspan x="8.76709" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">é</tspan> 714 + <tspan x="14.304199" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">t</tspan> 715 + <tspan x="17.833008" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">o</tspan> 716 + <tspan x="23.339355" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">d</tspan> 717 + <tspan x="29.052246" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">o</tspan> 718 + <tspan x="34.558594" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 719 + <tspan x="37.419434" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">i</tspan> 720 + <tspan x="39.919922" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">n</tspan> 721 + <tspan x="45.624023" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">d</tspan> 722 + <tspan x="51.336914" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">i</tspan> 723 + <tspan x="53.837402" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">r</tspan> 724 + <tspan x="57.537598" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 725 + <tspan x="63.074707" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">c</tspan> 726 + <tspan x="68.022949" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">t</tspan> 727 + <tspan x="71.551758" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">o</tspan> 728 + <tspan x="77.058105" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 729 + <tspan x="79.918945" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">−</tspan> 730 + <tspan x="87.459961" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">(</tspan> 731 + <tspan x="90.971191" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">2</tspan> 732 + <tspan x="105.28418" y="-0.60175" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">)</tspan> 733 + <tspan x="96.697266" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">π</tspan> 734 + <tspan x="102.115723" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">f</tspan> 735 + <tspan x="113.135889" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">m</tspan> 736 + <tspan x="126.157324" y="-0.60175" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">T</tspan> 737 + <tspan x="108.881543" y="-4.31875" style="font-size: 6.3px; font-family: 'DejaVu Sans'; fill: #ffffff">2</tspan> 738 + <tspan x="121.902979" y="0.748246" style="font-size: 6.3px; font-family: 'DejaVu Sans'; fill: #ffffff">2</tspan> 739 + </text> 740 + </g> 741 + </g> 742 + <g id="line2d_58"> 743 + <path d="M 55.389844 69.212344 744 + L 64.389844 69.212344 745 + L 73.389844 69.212344 746 + " style="fill: none; stroke-dasharray: 1.2,1.98; stroke-dashoffset: 0; stroke: #555555; stroke-width: 1.2"/> 747 + </g> 748 + <g id="text_16"> 749 + <!-- resonancia $f_0$ --> 750 + <g style="fill: #ffffff" transform="translate(80.589844 72.362344)"> 751 + <text> 752 + <tspan x="0" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">r</tspan> 753 + <tspan x="3.700195" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">e</tspan> 754 + <tspan x="9.237305" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">s</tspan> 755 + <tspan x="13.92627" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">o</tspan> 756 + <tspan x="19.432617" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">n</tspan> 757 + <tspan x="25.136719" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">a</tspan> 758 + <tspan x="30.651855" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">n</tspan> 759 + <tspan x="36.355957" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">c</tspan> 760 + <tspan x="41.304199" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">i</tspan> 761 + <tspan x="43.804688" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">a</tspan> 762 + <tspan x="49.319824" y="-0.15625" style="font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff"> </tspan> 763 + <tspan x="52.180664" y="-0.15625" style="font-style: oblique; font-size: 9px; font-family: 'DejaVu Sans'; fill: #ffffff">f</tspan> 764 + <tspan x="55.349121" y="1.193746" style="font-size: 6.3px; font-family: 'DejaVu Sans'; fill: #ffffff">0</tspan> 765 + </text> 766 + </g> 767 + </g> 768 + </g> 769 + </g> 770 + </g> 771 + <defs> 772 + <clipPath id="p5d40285879"> 773 + <rect x="47.289844" y="28.798125" width="658.597656" height="370.595313"/> 774 + </clipPath> 775 + </defs> 776 + </svg>
+5 -2
docs/CONFORMANCE.md
··· 15 15 16 16 ## Numerical conformance report 17 17 18 - &#9989; **126/126 conformance checks pass** across 23 domains and 76 standards - filters class 1 - weightings within IEC 61672-1 class 1. 18 + &#9989; **129/129 conformance checks pass** across 23 domains and 79 standards - filters class 1 - weightings within IEC 61672-1 class 1. 19 19 20 20 ### Numerical validation - filters &amp; weightings 21 21 ··· 122 122 </details> 123 123 124 124 <details> 125 - <summary>&#9989; <b>Room &amp; building acoustics</b> — 100% (24/24)</summary> 125 + <summary>&#9989; <b>Room &amp; building acoustics</b> — 100% (27/27)</summary> 126 126 127 127 | Standard | Quantity | Expected (norm) | Computed | &#916; | Status | 128 128 |:---|:---|:---|:---|:---|:---:| ··· 150 150 | ISO 7626-1:2011 Annex A | SDOF driving-point mobility peak |Y(f0)| = 1/c (c=5 N·s/m) | 0.2 m/(N·s) (+/-0.000001 m/(N·s)) | 0.2 m/(N·s) | 0 m/(N·s) | &#9989; | 151 151 | ISO 7626-1:2011 Annex A | SDOF static receptance H(0) = 1/k (k=8000 N/m) | 0.000125 m/N (+/-0.0001%) | 0.000125 m/N | 0 m/N | &#9989; | 152 152 | ISO 7626-1:2011 Table 1 | FRF reciprocity: impedance × mobility = 1 (at 37 Hz) | 1 (= Z·Y) | 1 | 0 | &#9989; | 153 + | ISO 10846-2:2008 3.17 | Transfer-stiffness level Lk = 20 lg(|k|/k0), k0 = 1 N/m (|k| = 1 MN/m) | 120 dB (+/-0 dB) | 120 dB | 0 dB | &#9989; | 154 + | ISO 10846-3:2002 Formula (1) | Indirect method k2,1 = -(2πf)²·m2·T (f=500 Hz, m2=10 kg, T=0,01) | -986960.4 N/m (+/-0.1%) | -986960.4 N/m | 0 N/m | &#9989; | 155 + | ISO 10846-1:2008 Table A.2 | FRF relation k = jω·Z at 250 Hz (|k| recovered from impedance) | 1001249.2 N/m (+/-0.0001%) | 1001249.2 N/m | 0 N/m | &#9989; | 153 156 154 157 </details> 155 158
+1
docs/README.md
··· 27 27 - [Reverberation-time prediction](reverberation-prediction.md) — the reverberation time from a room's volume and surface absorption by five statistical models (Sabine, Eyring, Millington-Sette, Fitzroy, Arau-Puchades), with the air-absorption term 28 28 - [Dynamic stiffness of resilient materials](dynamic-stiffness.md) — the EN 29052-1:1992 dynamic stiffness per unit area of floating-floor resilient layers from the load-plate resonance, and the floating-floor natural frequency 29 29 - [Mechanical mobility and the FRF family](mechanical-mobility.md) — the ISO 7626-1:2011 family of motion-per-force frequency-response functions (receptance, mobility, accelerance and their reciprocals, Table 1), conversion through the receptance pivot, and the single-degree-of-freedom reference resonator (Annex A) 30 + - [Dynamic transfer stiffness of resilient elements](transfer-stiffness.md) — the ISO 10846 dynamic transfer stiffness k₂₁ of vibration isolators: the level Lₖ re 1 N/m and loss factor, the direct and indirect (transmissibility) determination methods, and the Annex-A relation to mechanical impedance and effective mass 30 31 - [Room-noise criteria](room-noise.md) — the ANSI/ASA S12.2-2019 room-noise ratings: the NC tangency method (Table 1) and the RC Mark II rating with its rumble/hiss/neutral spectral tag (Annex D) 31 32 - [Acoustic Materials](materials.md) — sound-absorption rating α_w and classes (ISO 11654), airflow resistance static and alternating methods (ISO 9053-1/-2), and impedance-tube measurement of absorption, surface impedance and transmission loss (ISO 10534-1/-2, ASTM E2611) 32 33 - [Surface Scattering, Diffusion and In-situ Absorption](surface-scattering.md) — random-incidence scattering (ISO 17497-1), free-field diffusion coefficient (ISO 17497-2), and in-situ road-surface absorption by the extended-surface subtraction technique (ISO 13472-1) and the spot method (ISO 13472-2)
+7 -1
docs/api-reference.md
··· 280 280 | `resonance_frequency` | `function` | **Undamped SDOF natural frequency (ISO 7626-1 Annex A).**<br>• `mass` m [kg], `stiffness` k [N/m]<br>f0 = (1/2π)√(k/m) | `resonance_frequency(2.0, 8000.0) # 10.07 Hz` | 281 281 | `sdof_mobility_result` | `function` | **SDOF driving-point mobility → result.**<br>• `frequency` f [Hz] (array)<br>• `mass`, `stiffness`, `damping` | `res = sdof_mobility_result(f, 2.0, 8000.0, 5.0)`<br><br>• `MobilityResult` | 282 282 | `MobilityResult` | `dataclass` | **Mobility FRF over frequency (ISO 7626-1).**<br>• `frequencies` [Hz], `mobility` Y [m/(N·s)]<br>• `driving_point`: bool (i = j)<br>• `.magnitude` / `.phase`<br>• `.to(target)`: any Table-1 kind<br>• `.plot()`: |Y(f)| with the resonance marked | `res.magnitude, res.to("impedance")` | 283 + | `transfer_stiffness_level` / `loss_factor` | `function` | **Transfer-stiffness level & loss factor (ISO 10846-2/-3 3.17, -1 3.8).**<br>• `transfer_stiffness_level(k, reference=1.0)`: Lₖ = 20 lg(\|k\|/k₀) [dB re 1 N/m]<br>• `loss_factor(k)`: η = Im(k)/Re(k) | `transfer_stiffness_level(1e6) # 120 dB` | 284 + | `transfer_stiffness_direct` | `function` | **Direct method (ISO 10846-2).**<br>• `blocking_force` F₂,b [N]<br>• `input_displacement` u₁ [m]<br>k₂,₁ = F₂,b/u₁ | `transfer_stiffness_direct(5.0, 1e-6) # 5e6 N/m` | 285 + | `transfer_stiffness_indirect` | `function` | **Indirect method (ISO 10846-3 Formula 1).**<br>• `frequency` f [Hz] (scalar/array)<br>• `transmissibility` T = u₂/u₁ (complex)<br>• `blocking_mass` m₂ [kg]<br>• `flange_mass` m_f [kg] (Default: 0.0)<br>k₂,₁ = −(2πf)²(m₂+m_f)T | `transfer_stiffness_indirect(500.0, 0.01, blocking_mass=10.0)` | 286 + | `base_transmissibility` | `function` | **Mass-loaded Kelvin-Voigt transmissibility (model).**<br>• `frequency` f [Hz]<br>• `mass` m [kg], `stiffness` k [N/m], `damping` c [N·s/m] (Default: 0.0)<br>T = (k+jωc)/(k−ω²m+jωc) | `base_transmissibility(f, 8.0, 1e6, 120.0)` | 287 + | `indirect_transfer_stiffness_result` | `function` | **Indirect-method sweep → result.**<br>• `frequency` f [Hz] (array)<br>• `transmissibility` T (complex)<br>• `blocking_mass` m₂ [kg], `flange_mass` (Default: 0.0) | `res = indirect_transfer_stiffness_result(f, t, 8.0)`<br><br>• `TransferStiffnessResult` | 288 + | `TransferStiffnessResult` | `dataclass` | **Dynamic transfer stiffness over frequency (ISO 10846).**<br>• `frequencies` [Hz], `transfer_stiffness` k₂,₁ [N/m]<br>• `blocking_mass` m₂ [kg] or None<br>• `.magnitude` / `.level` (dB re 1 N/m) / `.loss_factor`<br>• `.to(target)`: "impedance"/"apparent_mass"<br>• `.plot()`: Lₖ(f) | `res.level, res.loss_factor` | 283 289 | `combine_uncertainty` | `function` | **GUM law of propagation of uncertainty (ISO/IEC Guide 98-3 clause 5).**<br>• `model`: measurement function f(x1…xN)<br>• `quantities`: input `Quantity` objects, in argument order<br>• `correlation`: optional N×N matrix r_ij (Default: None → uncorrelated) | `u = combine_uncertainty(lambda a, b: a*b, [Quantity(10.0, 0.1), Quantity(5.0, 0.2)])`<br><br>• `UncertaintyResult`; uc = 2.062 | 284 290 | `monte_carlo` | `function` | **Monte Carlo propagation (Guide 98-3-1, Supplement 1).**<br>• `model`: vectorised f(x1…xN)<br>• `quantities`: input `Quantity` objects<br>• `trials`: M (Default: 1000000)<br>• `coverage`: interval probability (Default: 0.95)<br>• `seed`: reproducibility (Default: None) | `mc = monte_carlo(model, quantities, seed=1)`<br><br>• `MonteCarloResult` (mean, u, coverage interval) | 285 291 | `rectangular` | `function` | **Type B quantity, rectangular PDF (GUM 4.3.7).**<br>• `value`, `half_width` a, `name` | `rectangular(20.0, 0.5)`<br><br>• `Quantity` with u = a/√3 = 0.289 | ··· 433 439 | `TonalityWarning` | `warning class` | **Tonality advisory.**<br>Emitted for biased tonality estimates (e.g. coarse FFT resolution) | `warnings.simplefilter('error', TonalityWarning)` | 434 440 | `STIWarning` | `warning class` | **STI/STIPA advisory.**<br>Emitted for suspect speech-intelligibility measurements or inputs | `warnings.simplefilter('error', STIWarning)` | 435 441 | `__version__` | `str` | **Package version string.**<br>(no parameters) | `phonometry.__version__ # '3.0.0'` | 436 - | `.plot()` | `method` | **One-line canonical figure on every result object (soft matplotlib dependency).**<br>Available on `ZwickerLoudness`, `MooreGlasbergLoudness`, `MooreGlasbergTimeVaryingLoudness`, `EcmaLoudness`, `EcmaTonality`, `EcmaRoughness`, `STIResult`, `SIIResult`, `NCResult`, `RCResult`, `AgeThresholdResult`, `NiptsResult`, `HtlanResult`, `ImpulseProminenceResult`, `MultipleShockResult`, `ImpulseResponseResult`, `DecayCurve`, `RoomAcousticsResult`, `ReverberationResult`, `ReverberationModelResult`, `DynamicStiffnessResult`, `MobilityResult`, `WeightedRatingResult`, `ImpactRatingResult`, `FacadeInsulationResult`, `LabAirborneInsulationResult`, `LabImpactInsulationResult`, `SoundPowerResult`, `ReverberationSoundPowerResult`, `SoundPowerIntensityResult`, `PrecisionSoundPowerResult`, `PrecisionIntensityResult`, `IntensityResult`, `UncertaintyResult`, `AbsorptionRatingResult`, `ScatteringResult`, `DiffusionResult`, `InsituAbsorptionResult`, `WeightingResponse`, `WeightedSpectrum` and `DailyVibrationExposure`.<br>• `ax`: existing Axes, or None to build a fresh figure (Default: None)<br>• returns the Matplotlib `Axes` (an array of Axes for multi-panel figures); never calls `plt.show()`<br>• needs matplotlib (`pip install phonometry[plot]`) | `res.plot()`<br>`decay_curve(ir, fs).plot()` | 442 + | `.plot()` | `method` | **One-line canonical figure on every result object (soft matplotlib dependency).**<br>Available on `ZwickerLoudness`, `MooreGlasbergLoudness`, `MooreGlasbergTimeVaryingLoudness`, `EcmaLoudness`, `EcmaTonality`, `EcmaRoughness`, `STIResult`, `SIIResult`, `NCResult`, `RCResult`, `AgeThresholdResult`, `NiptsResult`, `HtlanResult`, `ImpulseProminenceResult`, `MultipleShockResult`, `ImpulseResponseResult`, `DecayCurve`, `RoomAcousticsResult`, `ReverberationResult`, `ReverberationModelResult`, `DynamicStiffnessResult`, `MobilityResult`, `TransferStiffnessResult`, `WeightedRatingResult`, `ImpactRatingResult`, `FacadeInsulationResult`, `LabAirborneInsulationResult`, `LabImpactInsulationResult`, `SoundPowerResult`, `ReverberationSoundPowerResult`, `SoundPowerIntensityResult`, `PrecisionSoundPowerResult`, `PrecisionIntensityResult`, `IntensityResult`, `UncertaintyResult`, `AbsorptionRatingResult`, `ScatteringResult`, `DiffusionResult`, `InsituAbsorptionResult`, `WeightingResponse`, `WeightedSpectrum` and `DailyVibrationExposure`.<br>• `ax`: existing Axes, or None to build a fresh figure (Default: None)<br>• returns the Matplotlib `Axes` (an array of Axes for multi-panel figures); never calls `plt.show()`<br>• needs matplotlib (`pip install phonometry[plot]`) | `res.plot()`<br>`decay_curve(ir, fs).plot()` | 437 443 438 444 ## Notes 439 445
+125
docs/transfer-stiffness.md
··· 1 + ← [Documentation index](README.md) 2 + 3 + # Dynamic transfer stiffness of resilient elements (ISO 10846) 4 + 5 + The vibro-acoustic transfer property of a resilient element — a vibration 6 + isolator, mount, bellows or hose — is its **dynamic transfer stiffness** `k₂₁`, 7 + the frequency-dependent ratio of the *blocking force* on the output (receiver) 8 + side to the displacement on the input (source) side (ISO 10846-1, 3.7): 9 + 10 + $$ 11 + k_{2,1} = \frac{F_{2,b}}{u_1} \quad [\mathrm{N/m}]. 12 + $$ 13 + 14 + Because a vibration isolator is only effective between structures of large 15 + driving-point stiffness, the force it delivers to the receiver approximates this 16 + blocking force (ISO 10846-1, Eq. 7), so `k₂₁` is the quantity that characterises 17 + the isolator's transmission. `k₂₁` feeds the structure-borne source and building 18 + prediction standards — ISO 9611, EN 15657 and EN 12354-5. 19 + 20 + <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/transfer_stiffness_dark.svg"><img src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/transfer_stiffness.svg" alt="Dynamic transfer stiffness level of a Kelvin-Voigt isolator: the true level (flat at 120 dB, rising with the damping term at high frequency) and the indirect-method estimate, which diverges at the mass/spring resonance where the transmissibility is not small and converges to the true level above three times the resonance" width="82%"></picture> 21 + 22 + ## 1. The transfer-stiffness level and loss factor 23 + 24 + Results are reported as a **level** re the reference stiffness `k₀ = 1 N/m` 25 + (ISO 10846-2 and -3, 3.17), and in the low-frequency range where inertial forces 26 + in the element are negligible the **loss factor** is the tangent of the phase 27 + angle of `k₂₁` (ISO 10846-1, 3.8): 28 + 29 + $$ 30 + L_k = 10\lg\frac{|k_{2,1}|^2}{k_0^2} = 20\lg\frac{|k_{2,1}|}{k_0}, \qquad 31 + \eta = \frac{\mathrm{Im}(k_{2,1})}{\mathrm{Re}(k_{2,1})}. 32 + $$ 33 + 34 + ```python 35 + import phonometry as ph 36 + 37 + # A resilient mount with |k2,1| = 1 MN/m and a 5 % loss factor: 38 + k = 1e6 * (1.0 + 0.05j) 39 + print(round(float(ph.transfer_stiffness_level(k)), 2)) # 120.00 dB re 1 N/m 40 + print(round(float(ph.loss_factor(k)), 3)) # 0.05 41 + ``` 42 + 43 + ## 2. Direct and indirect determination 44 + 45 + The **direct method** (ISO 10846-2) measures the blocked output force and the 46 + input displacement, `k₂₁ = F₂,b/u₁`. The **indirect method** (ISO 10846-3) loads 47 + the output with a compact blocking mass `m₂` and measures the vibration 48 + transmissibility `T = u₂/u₁`; the blocking force is then the inertia force of the 49 + mass (ISO 10846-3, Eq. 1): 50 + 51 + $$ 52 + k_{2,1} = -(2\pi f)^2\,(m_2 + m_f)\,T \qquad (T \ll 1), 53 + $$ 54 + 55 + with `m_f` the mass of the output flange. The approximation is valid well above 56 + the mass/spring resonance, where `T` is small. 57 + 58 + ```python 59 + import numpy as np 60 + import phonometry as ph 61 + 62 + # Indirect method: a 10 kg blocking mass, transmissibility 0.01 at 500 Hz. 63 + k = ph.transfer_stiffness_indirect(500.0, 0.01, blocking_mass=10.0) 64 + print(f"{abs(complex(k)):.3e}") # 9.870e+05 N/m 65 + 66 + # Bundle a swept measurement into a result carrying its level and loss factor: 67 + f = np.logspace(1.5, 3.3, 200) 68 + t = ph.base_transmissibility(f, mass=8.0, stiffness=1e6, damping=120.0) 69 + res = ph.indirect_transfer_stiffness_result(f, t, blocking_mass=8.0) 70 + print(round(float(res.level[-1]), 1)) # ~126 dB re 1 N/m (high-f) 71 + ``` 72 + 73 + The `TransferStiffnessResult` carries the complex `k₂₁` and exposes `.level`, 74 + `.loss_factor`, `.magnitude`, `.to("impedance"/"apparent_mass")` and `.plot()`. 75 + 76 + ## 3. Relation to the FRF family 77 + 78 + The dynamic stiffness is a member of the frequency-response-function family 79 + (ISO 10846-1, Annex A / Table A.2): it is the reciprocal of the receptance and 80 + relates to the mechanical impedance `Z` and effective mass `m_eff` by 81 + `k = jω·Z = −ω²·m_eff`. These conversions are the same as the 82 + [mechanical-mobility](mechanical-mobility.md) `convert_frf` pivot: 83 + 84 + ```python 85 + import phonometry as ph 86 + 87 + k = 1e6 + 5e4j # N/m, at 250 Hz 88 + Z = ph.convert_frf(k, 250.0, "dynamic_stiffness", "impedance") 89 + print(abs(complex(ph.convert_frf(Z, 250.0, "impedance", "dynamic_stiffness")))) # 1.0012e6 90 + ``` 91 + 92 + <details> 93 + <summary>Show the code for this figure</summary> 94 + 95 + ```python 96 + import matplotlib.pyplot as plt 97 + import numpy as np 98 + import phonometry as ph 99 + 100 + k, c, m2 = 1e6, 120.0, 8.0 101 + f0 = np.sqrt(k / m2) / (2 * np.pi) 102 + f = np.logspace(np.log10(f0 / 5), np.log10(f0 * 40), 600) 103 + w = 2 * np.pi * f 104 + t = ph.base_transmissibility(f, m2, k, c) 105 + plt.semilogx(f, ph.transfer_stiffness_level(k + 1j * w * c), label="true $L_k$") 106 + plt.semilogx(f, ph.transfer_stiffness_level(ph.transfer_stiffness_indirect(f, t, m2)), 107 + "--", label="indirect method") 108 + plt.axvline(f0, ls=":", color="0.6"); plt.legend() 109 + plt.xlabel("Frequency [Hz]"); plt.ylabel("$L_k$ [dB re 1 N/m]"); plt.show() 110 + ``` 111 + 112 + </details> 113 + 114 + --- 115 + 116 + **Standards.** ISO 10846 (parts 1-5), *Acoustics and vibration — Laboratory 117 + measurement of vibro-acoustic transfer properties of resilient elements*: the 118 + dynamic transfer stiffness `k₂₁ = F₂,b/u₁` and its FRF relations (Part 1, 119 + clause 5 and Annex A / Table A.2), the level `L_k` re 1 N/m and the loss factor 120 + (Parts 2 and 3, clauses 3.8/3.17), the direct method (Part 2) and the indirect 121 + method `k₂₁ = −(2πf)²(m₂+m_f)T` (Part 3, Formula 1). Parts 4 and 5 extend the 122 + same quantities to elements other than supports and to the driving-point 123 + low-frequency method. Conformance is anchored on the standard's closed-form 124 + definitions: the level of a decade of stiffness, the indirect inertia relation, 125 + and the Table-A.2 identity `k = jω·Z`.
+36
scripts/conformance_report.py
··· 1307 1307 return numeric(1.0, abs(z * y), 1e-9, expected_label="1 (= Z·Y)") 1308 1308 1309 1309 1310 + # --- Dynamic transfer stiffness of resilient elements (ISO 10846) --- 1311 + @register( 1312 + "Room & building acoustics", 1313 + "ISO 10846-2:2008 3.17", 1314 + "Transfer-stiffness level Lk = 20 lg(|k|/k0), k0 = 1 N/m (|k| = 1 MN/m)", 1315 + ) 1316 + def _chk_iso10846_level() -> Outcome: 1317 + lk = float(ph.transfer_stiffness_level(1.0e6)) 1318 + return numeric(120.0, lk, 1e-6, unit="dB") 1319 + 1320 + 1321 + @register( 1322 + "Room & building acoustics", 1323 + "ISO 10846-3:2002 Formula (1)", 1324 + "Indirect method k2,1 = -(2πf)²·m2·T (f=500 Hz, m2=10 kg, T=0,01)", 1325 + ) 1326 + def _chk_iso10846_indirect() -> Outcome: 1327 + f, m2, t = 500.0, 10.0, 0.01 1328 + expected = -((2.0 * math.pi * f) ** 2) * m2 * t 1329 + computed = complex(ph.transfer_stiffness_indirect(f, t + 0j, m2)).real 1330 + return numeric(expected, computed, 1e-3, rel=True, unit="N/m", places=1) 1331 + 1332 + 1333 + @register( 1334 + "Room & building acoustics", 1335 + "ISO 10846-1:2008 Table A.2", 1336 + "FRF relation k = jω·Z at 250 Hz (|k| recovered from impedance)", 1337 + ) 1338 + def _chk_iso10846_stiffness_impedance() -> Outcome: 1339 + f = 250.0 1340 + w = 2.0 * math.pi * f 1341 + k = 1.0e6 + 1j * 5.0e4 1342 + z = complex(ph.convert_frf(k, f, "dynamic_stiffness", "impedance")) 1343 + return numeric(abs(k), abs(1j * w * z), 1e-6, rel=True, unit="N/m", places=1) 1344 + 1345 + 1310 1346 # =========================================================================== 1311 1347 # Domain 7 - Building prediction & uncertainty 1312 1348 # ===========================================================================
+62
scripts/generate_graphs.py
··· 222 222 r"Accelerance $|A|$ (× k/$\omega_0^2$)": 223 223 r"Accelerancia $|A|$ (× k/$\omega_0^2$)", 224 224 "resonance $f_0$": "resonancia $f_0$", 225 + # transfer_stiffness figure (ISO 10846) 226 + "ISO 10846 Dynamic Transfer Stiffness": 227 + "Rigidez dinámica de transferencia ISO 10846", 228 + r"Transfer stiffness level $L_k$ [dB re 1 N/m]": 229 + r"Nivel de rigidez de transferencia $L_k$ [dB re 1 N/m]", 230 + r"true $L_k$ of $k_{2,1}=k+j\omega c$": 231 + r"$L_k$ real de $k_{2,1}=k+j\omega c$", 232 + r"indirect method $-(2\pi f)^2 m_2 T$": 233 + r"método indirecto $-(2\pi f)^2 m_2 T$", 225 234 # facade_prediction figure (EN 12354-3 Annex F) 226 235 "EN 12354-3 Façade Sound Insulation (Annex F example)": 227 236 "Aislamiento acústico de fachada EN 12354-3 (ejemplo del Anexo F)", ··· 3414 3423 plt.close() 3415 3424 3416 3425 3426 + def generate_transfer_stiffness(output_dir: str) -> None: 3427 + """ISO 10846 dynamic transfer stiffness: true vs indirect-method recovery.""" 3428 + print("Generating transfer_stiffness...") 3429 + from phonometry import ( 3430 + base_transmissibility, 3431 + transfer_stiffness_indirect, 3432 + transfer_stiffness_level, 3433 + ) 3434 + 3435 + # Kelvin-Voigt isolator k + jwc, loaded by a blocking mass m2. 3436 + k, c, m2 = 1.0e6, 120.0, 8.0 3437 + f0 = np.sqrt(k / m2) / (2.0 * np.pi) 3438 + freq = np.logspace(np.log10(f0 / 5.0), np.log10(f0 * 40.0), 600) 3439 + w = 2.0 * np.pi * freq 3440 + 3441 + k_true = k + 1j * w * c # exact transfer stiffness 3442 + t = base_transmissibility(freq, m2, k, c) # mass-loaded transmissibility 3443 + k_indirect = transfer_stiffness_indirect(freq, t, m2) # ISO 10846-3 Eq. (1) 3444 + 3445 + fig, ax = plt.subplots(figsize=(10, 6.2)) 3446 + ax.semilogx(freq, transfer_stiffness_level(k_true), color=COLOR_PRIMARY, 3447 + linewidth=2.2, label=r"true $L_k$ of $k_{2,1}=k+j\omega c$") 3448 + ax.semilogx(freq, transfer_stiffness_level(k_indirect), color=COLOR_SECONDARY, 3449 + linewidth=2.0, linestyle="--", 3450 + label=r"indirect method $-(2\pi f)^2 m_2 T$") 3451 + ax.axvline(f0, color=COLOR_GRID, linestyle=":", linewidth=1.2, 3452 + label="resonance $f_0$") 3453 + ax.axvspan(freq[0], 3.0 * f0, color=COLOR_GRID, alpha=0.12) 3454 + 3455 + ax.set_xlabel(LABEL_FREQ_HZ) 3456 + ax.set_ylabel(r"Transfer stiffness level $L_k$ [dB re 1 N/m]") 3457 + ax.set_title("ISO 10846 Dynamic Transfer Stiffness", fontweight="bold", pad=12) 3458 + ax.set_xlim(freq[0], freq[-1]) 3459 + ax.grid(which="both", color=COLOR_GRID, linestyle="--", alpha=0.5) 3460 + ax.legend(loc="upper left", fontsize=9) 3461 + 3462 + panel = "#f0f2f5" if COLOR_FG == "black" else "#1c2128" 3463 + info = [ 3464 + "Kelvin-Voigt: k = 1 MN/m, c = 120 N.s/m", 3465 + f"blocking mass m2 = 8 kg, f0 = {f0:.1f} Hz", 3466 + "indirect valid for T << 1 (f >> f0)", 3467 + "shaded: T not small -> method invalid", 3468 + ] 3469 + ax.text(0.985, 0.05, "\n".join(info), transform=ax.transAxes, 3470 + va="bottom", ha="right", fontsize=10, color=COLOR_FG, 3471 + bbox={"boxstyle": "round,pad=0.5", "facecolor": panel, 3472 + "edgecolor": COLOR_GRID}) 3473 + plt.tight_layout() 3474 + save_figure(output_dir, "transfer_stiffness.svg") 3475 + plt.close() 3476 + 3477 + 3417 3478 def generate_absorption_uncertainty(output_dir: str) -> None: 3418 3479 """ISO 12999-2 absorption-coefficient uncertainty: alpha_s with a +/-U ribbon.""" 3419 3480 print("Generating absorption_uncertainty...") ··· 4914 4975 generate_reverberation_models(img_dir) 4915 4976 generate_dynamic_stiffness(img_dir) 4916 4977 generate_mechanical_mobility(img_dir) 4978 + generate_transfer_stiffness(img_dir) 4917 4979 generate_absorption_uncertainty(img_dir) 4918 4980 generate_insulation_uncertainty_demo(img_dir) 4919 4981
+1 -1
site/astro.config.mjs
··· 342 342 { 343 343 label: 'Structure-borne sound & vibration', 344 344 translations: { es: 'Ruido estructural y vibración' }, 345 - items: ['guides/mechanical-mobility'], 345 + items: ['guides/mechanical-mobility', 'guides/transfer-stiffness'], 346 346 }, 347 347 { 348 348 label: 'Environmental acoustics',
+127
site/src/content/docs/es/guides/transfer-stiffness.md
··· 1 + --- 2 + title: "Rigidez dinámica de transferencia (ISO 10846)" 3 + description: "La rigidez dinámica de transferencia k₂₁ = F₂,b/u₁ de elementos resilientes según ISO 10846: el nivel Lₖ re 1 N/m y el factor de pérdidas (Partes 1-3), el método directo (Parte 2), el método indirecto k₂₁ = −(2πf)²(m₂+m_f)T a partir de la transmisibilidad de vibración (Parte 3, Fórmula 1) y la relación del Anexo A con la impedancia mecánica y la masa efectiva." 4 + --- 5 + 6 + La propiedad de transferencia vibroacústica de un elemento resiliente —un 7 + aislador de vibraciones, montura, fuelle o manguera— es su **rigidez dinámica de 8 + transferencia** `k₂₁`, el cociente dependiente de la frecuencia entre la *fuerza 9 + de bloqueo* en el lado de salida (receptor) y el desplazamiento en el lado de 10 + entrada (fuente) (ISO 10846-1, 3.7): 11 + 12 + $$ 13 + k_{2,1} = \frac{F_{2,b}}{u_1} \quad [\mathrm{N/m}]. 14 + $$ 15 + 16 + Como un aislador de vibraciones solo es eficaz entre estructuras de gran rigidez 17 + en el punto de excitación, la fuerza que entrega al receptor aproxima esta fuerza 18 + de bloqueo (ISO 10846-1, Ec. 7), de modo que `k₂₁` es la magnitud que caracteriza 19 + la transmisión del aislador. `k₂₁` alimenta las normas de fuente estructural y 20 + de predicción en edificación: ISO 9611, EN 15657 y EN 12354-5. 21 + 22 + <img class="light-only" src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/transfer_stiffness_es.svg" alt="Nivel de rigidez dinámica de transferencia de un aislador Kelvin-Voigt: el nivel real y la estimación por el método indirecto, que diverge en la resonancia masa/resorte y converge por encima de ella" style="width:82%"><img class="dark-only" src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/transfer_stiffness_es_dark.svg" alt="Nivel de rigidez dinámica de transferencia de un aislador Kelvin-Voigt: el nivel real y la estimación por el método indirecto, que diverge en la resonancia masa/resorte y converge por encima de ella" style="width:82%"> 23 + 24 + ## 1. El nivel de rigidez de transferencia y el factor de pérdidas 25 + 26 + Los resultados se expresan como un **nivel** re la rigidez de referencia 27 + `k₀ = 1 N/m` (ISO 10846-2 y -3, 3.17) y, en el rango de baja frecuencia donde las 28 + fuerzas de inercia del elemento son despreciables, el **factor de pérdidas** es 29 + la tangente del ángulo de fase de `k₂₁` (ISO 10846-1, 3.8): 30 + 31 + $$ 32 + L_k = 10\lg\frac{|k_{2,1}|^2}{k_0^2} = 20\lg\frac{|k_{2,1}|}{k_0}, \qquad 33 + \eta = \frac{\mathrm{Im}(k_{2,1})}{\mathrm{Re}(k_{2,1})}. 34 + $$ 35 + 36 + ```python 37 + import phonometry as ph 38 + 39 + # Una montura resiliente con |k2,1| = 1 MN/m y un factor de pérdidas del 5 %: 40 + k = 1e6 * (1.0 + 0.05j) 41 + print(round(float(ph.transfer_stiffness_level(k)), 2)) # 120.00 dB re 1 N/m 42 + print(round(float(ph.loss_factor(k)), 3)) # 0.05 43 + ``` 44 + 45 + ## 2. Determinación directa e indirecta 46 + 47 + El **método directo** (ISO 10846-2) mide la fuerza de salida bloqueada y el 48 + desplazamiento de entrada, `k₂₁ = F₂,b/u₁`. El **método indirecto** (ISO 10846-3) 49 + carga la salida con una masa de bloqueo compacta `m₂` y mide la transmisibilidad 50 + de vibración `T = u₂/u₁`; la fuerza de bloqueo es entonces la fuerza de inercia de 51 + la masa (ISO 10846-3, Ec. 1): 52 + 53 + $$ 54 + k_{2,1} = -(2\pi f)^2\,(m_2 + m_f)\,T \qquad (T \ll 1), 55 + $$ 56 + 57 + con `m_f` la masa de la brida de salida. La aproximación es válida bastante por 58 + encima de la resonancia masa/resorte, donde `T` es pequeña. 59 + 60 + ```python 61 + import numpy as np 62 + import phonometry as ph 63 + 64 + # Método indirecto: masa de bloqueo de 10 kg, transmisibilidad 0,01 a 500 Hz. 65 + k = ph.transfer_stiffness_indirect(500.0, 0.01, blocking_mass=10.0) 66 + print(f"{abs(complex(k)):.3e}") # 9.870e+05 N/m 67 + 68 + # Agrupa una medición en barrido en un resultado con su nivel y factor de pérdidas: 69 + f = np.logspace(1.5, 3.3, 200) 70 + t = ph.base_transmissibility(f, mass=8.0, stiffness=1e6, damping=120.0) 71 + res = ph.indirect_transfer_stiffness_result(f, t, blocking_mass=8.0) 72 + print(round(float(res.level[-1]), 1)) # ~126 dB re 1 N/m (alta f) 73 + ``` 74 + 75 + El `TransferStiffnessResult` transporta el `k₂₁` complejo y expone `.level`, 76 + `.loss_factor`, `.magnitude`, `.to("impedance"/"apparent_mass")` y `.plot()`. 77 + 78 + ## 3. Relación con la familia de FRF 79 + 80 + La rigidez dinámica es un miembro de la familia de funciones de respuesta en 81 + frecuencia (ISO 10846-1, Anexo A / Tabla A.2): es la recíproca de la receptancia 82 + y se relaciona con la impedancia mecánica `Z` y la masa efectiva `m_eff` por 83 + `k = jω·Z = −ω²·m_eff`. Estas conversiones son el mismo pivote `convert_frf` de la 84 + [movilidad mecánica](/phonometry/es/guides/mechanical-mobility/): 85 + 86 + ```python 87 + import phonometry as ph 88 + 89 + k = 1e6 + 5e4j # N/m, a 250 Hz 90 + Z = ph.convert_frf(k, 250.0, "dynamic_stiffness", "impedance") 91 + print(abs(complex(ph.convert_frf(Z, 250.0, "impedance", "dynamic_stiffness")))) # 1.0012e6 92 + ``` 93 + 94 + <details> 95 + <summary>Mostrar el código de esta figura</summary> 96 + 97 + ```python 98 + import matplotlib.pyplot as plt 99 + import numpy as np 100 + import phonometry as ph 101 + 102 + k, c, m2 = 1e6, 120.0, 8.0 103 + f0 = np.sqrt(k / m2) / (2 * np.pi) 104 + f = np.logspace(np.log10(f0 / 5), np.log10(f0 * 40), 600) 105 + w = 2 * np.pi * f 106 + t = ph.base_transmissibility(f, m2, k, c) 107 + plt.semilogx(f, ph.transfer_stiffness_level(k + 1j * w * c), label="$L_k$ real") 108 + plt.semilogx(f, ph.transfer_stiffness_level(ph.transfer_stiffness_indirect(f, t, m2)), 109 + "--", label="método indirecto") 110 + plt.axvline(f0, ls=":", color="0.6"); plt.legend() 111 + plt.xlabel("Frecuencia [Hz]"); plt.ylabel("$L_k$ [dB re 1 N/m]"); plt.show() 112 + ``` 113 + 114 + </details> 115 + 116 + --- 117 + 118 + **Normas.** ISO 10846 (partes 1-5), *Acoustics and vibration — Laboratory 119 + measurement of vibro-acoustic transfer properties of resilient elements*: la 120 + rigidez dinámica de transferencia `k₂₁ = F₂,b/u₁` y sus relaciones FRF (Parte 1, 121 + cláusula 5 y Anexo A / Tabla A.2), el nivel `L_k` re 1 N/m y el factor de pérdidas 122 + (Partes 2 y 3, cláusulas 3.8/3.17), el método directo (Parte 2) y el método 123 + indirecto `k₂₁ = −(2πf)²(m₂+m_f)T` (Parte 3, Fórmula 1). Las partes 4 y 5 extienden 124 + las mismas magnitudes a elementos distintos de los soportes y al método de punto 125 + de excitación en baja frecuencia. La conformidad se ancla en las definiciones en 126 + forma cerrada de la norma: el nivel de una década de rigidez, la relación de 127 + inercia del método indirecto y la identidad de la Tabla A.2 `k = jω·Z`.
+127
site/src/content/docs/guides/transfer-stiffness.md
··· 1 + --- 2 + title: "Transfer stiffness of resilient elements (ISO 10846)" 3 + description: "The ISO 10846 dynamic transfer stiffness k₂₁ = F₂,b/u₁ of resilient elements: the level Lₖ re 1 N/m and the loss factor (Parts 1-3), the direct method (Part 2), the indirect method k₂₁ = −(2πf)²(m₂+m_f)T from vibration transmissibility (Part 3, Formula 1), and the Annex-A relation to mechanical impedance and effective mass." 4 + --- 5 + 6 + The vibro-acoustic transfer property of a resilient element — a vibration 7 + isolator, mount, bellows or hose — is its **dynamic transfer stiffness** `k₂₁`, 8 + the frequency-dependent ratio of the *blocking force* on the output (receiver) 9 + side to the displacement on the input (source) side (ISO 10846-1, 3.7): 10 + 11 + $$ 12 + k_{2,1} = \frac{F_{2,b}}{u_1} \quad [\mathrm{N/m}]. 13 + $$ 14 + 15 + Because a vibration isolator is only effective between structures of large 16 + driving-point stiffness, the force it delivers to the receiver approximates this 17 + blocking force (ISO 10846-1, Eq. 7), so `k₂₁` is the quantity that characterises 18 + the isolator's transmission. `k₂₁` feeds the structure-borne source and building 19 + prediction standards — ISO 9611, EN 15657 and EN 12354-5. 20 + 21 + <img class="light-only" src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/transfer_stiffness.svg" alt="Dynamic transfer stiffness level of a Kelvin-Voigt isolator: the true level and the indirect-method estimate, which diverges at the mass/spring resonance and converges above it" style="width:82%"><img class="dark-only" src="https://raw.githubusercontent.com/jmrplens/phonometry/main/.github/images/transfer_stiffness_dark.svg" alt="Dynamic transfer stiffness level of a Kelvin-Voigt isolator: the true level and the indirect-method estimate, which diverges at the mass/spring resonance and converges above it" style="width:82%"> 22 + 23 + ## 1. The transfer-stiffness level and loss factor 24 + 25 + Results are reported as a **level** re the reference stiffness `k₀ = 1 N/m` 26 + (ISO 10846-2 and -3, 3.17), and in the low-frequency range where inertial forces 27 + in the element are negligible the **loss factor** is the tangent of the phase 28 + angle of `k₂₁` (ISO 10846-1, 3.8): 29 + 30 + $$ 31 + L_k = 10\lg\frac{|k_{2,1}|^2}{k_0^2} = 20\lg\frac{|k_{2,1}|}{k_0}, \qquad 32 + \eta = \frac{\mathrm{Im}(k_{2,1})}{\mathrm{Re}(k_{2,1})}. 33 + $$ 34 + 35 + ```python 36 + import phonometry as ph 37 + 38 + # A resilient mount with |k2,1| = 1 MN/m and a 5 % loss factor: 39 + k = 1e6 * (1.0 + 0.05j) 40 + print(round(float(ph.transfer_stiffness_level(k)), 2)) # 120.00 dB re 1 N/m 41 + print(round(float(ph.loss_factor(k)), 3)) # 0.05 42 + ``` 43 + 44 + ## 2. Direct and indirect determination 45 + 46 + The **direct method** (ISO 10846-2) measures the blocked output force and the 47 + input displacement, `k₂₁ = F₂,b/u₁`. The **indirect method** (ISO 10846-3) loads 48 + the output with a compact blocking mass `m₂` and measures the vibration 49 + transmissibility `T = u₂/u₁`; the blocking force is then the inertia force of the 50 + mass (ISO 10846-3, Eq. 1): 51 + 52 + $$ 53 + k_{2,1} = -(2\pi f)^2\,(m_2 + m_f)\,T \qquad (T \ll 1), 54 + $$ 55 + 56 + with `m_f` the mass of the output flange. The approximation is valid well above 57 + the mass/spring resonance, where `T` is small. 58 + 59 + ```python 60 + import numpy as np 61 + import phonometry as ph 62 + 63 + # Indirect method: a 10 kg blocking mass, transmissibility 0.01 at 500 Hz. 64 + k = ph.transfer_stiffness_indirect(500.0, 0.01, blocking_mass=10.0) 65 + print(f"{abs(complex(k)):.3e}") # 9.870e+05 N/m 66 + 67 + # Bundle a swept measurement into a result carrying its level and loss factor: 68 + f = np.logspace(1.5, 3.3, 200) 69 + t = ph.base_transmissibility(f, mass=8.0, stiffness=1e6, damping=120.0) 70 + res = ph.indirect_transfer_stiffness_result(f, t, blocking_mass=8.0) 71 + print(round(float(res.level[-1]), 1)) # ~126 dB re 1 N/m (high-f) 72 + ``` 73 + 74 + The `TransferStiffnessResult` carries the complex `k₂₁` and exposes `.level`, 75 + `.loss_factor`, `.magnitude`, `.to("impedance"/"apparent_mass")` and `.plot()`. 76 + 77 + ## 3. Relation to the FRF family 78 + 79 + The dynamic stiffness is a member of the frequency-response-function family 80 + (ISO 10846-1, Annex A / Table A.2): it is the reciprocal of the receptance and 81 + relates to the mechanical impedance `Z` and effective mass `m_eff` by 82 + `k = jω·Z = −ω²·m_eff`. These conversions are the same as the 83 + [mechanical mobility](/phonometry/guides/mechanical-mobility/) `convert_frf` 84 + pivot: 85 + 86 + ```python 87 + import phonometry as ph 88 + 89 + k = 1e6 + 5e4j # N/m, at 250 Hz 90 + Z = ph.convert_frf(k, 250.0, "dynamic_stiffness", "impedance") 91 + print(abs(complex(ph.convert_frf(Z, 250.0, "impedance", "dynamic_stiffness")))) # 1.0012e6 92 + ``` 93 + 94 + <details> 95 + <summary>Show the code for this figure</summary> 96 + 97 + ```python 98 + import matplotlib.pyplot as plt 99 + import numpy as np 100 + import phonometry as ph 101 + 102 + k, c, m2 = 1e6, 120.0, 8.0 103 + f0 = np.sqrt(k / m2) / (2 * np.pi) 104 + f = np.logspace(np.log10(f0 / 5), np.log10(f0 * 40), 600) 105 + w = 2 * np.pi * f 106 + t = ph.base_transmissibility(f, m2, k, c) 107 + plt.semilogx(f, ph.transfer_stiffness_level(k + 1j * w * c), label="true $L_k$") 108 + plt.semilogx(f, ph.transfer_stiffness_level(ph.transfer_stiffness_indirect(f, t, m2)), 109 + "--", label="indirect method") 110 + plt.axvline(f0, ls=":", color="0.6"); plt.legend() 111 + plt.xlabel("Frequency [Hz]"); plt.ylabel("$L_k$ [dB re 1 N/m]"); plt.show() 112 + ``` 113 + 114 + </details> 115 + 116 + --- 117 + 118 + **Standards.** ISO 10846 (parts 1-5), *Acoustics and vibration — Laboratory 119 + measurement of vibro-acoustic transfer properties of resilient elements*: the 120 + dynamic transfer stiffness `k₂₁ = F₂,b/u₁` and its FRF relations (Part 1, 121 + clause 5 and Annex A / Table A.2), the level `L_k` re 1 N/m and the loss factor 122 + (Parts 2 and 3, clauses 3.8/3.17), the direct method (Part 2) and the indirect 123 + method `k₂₁ = −(2πf)²(m₂+m_f)T` (Part 3, Formula 1). Parts 4 and 5 extend the 124 + same quantities to elements other than supports and to the driving-point 125 + low-frequency method. Conformance is anchored on the standard's closed-form 126 + definitions: the level of a decade of stiffness, the indirect inertia relation, 127 + and the Table-A.2 identity `k = jω·Z`.
+18
src/phonometry/__init__.py
··· 116 116 sdof_mobility_result, 117 117 sdof_receptance, 118 118 ) 119 + from .transfer_stiffness import ( 120 + REFERENCE_STIFFNESS, 121 + TransferStiffnessResult, 122 + base_transmissibility, 123 + indirect_transfer_stiffness_result, 124 + loss_factor, 125 + transfer_stiffness_direct, 126 + transfer_stiffness_indirect, 127 + transfer_stiffness_level, 128 + ) 119 129 from .multiple_shock_vibration import ( 120 130 MultipleShockResult, 121 131 acceleration_dose, ··· 658 668 "resonance_frequency", 659 669 "MobilityResult", 660 670 "FRF_UNITS", 671 + "transfer_stiffness_level", 672 + "loss_factor", 673 + "transfer_stiffness_direct", 674 + "transfer_stiffness_indirect", 675 + "base_transmissibility", 676 + "indirect_transfer_stiffness_result", 677 + "TransferStiffnessResult", 678 + "REFERENCE_STIFFNESS", 661 679 "combine_uncertainty", 662 680 "monte_carlo", 663 681 "rectangular",
+24
src/phonometry/_plotting.py
··· 42 42 from .reverberation_prediction import ReverberationModelResult 43 43 from .dynamic_stiffness import DynamicStiffnessResult 44 44 from .mechanical_mobility import MobilityResult 45 + from .transfer_stiffness import TransferStiffnessResult 45 46 from .impedance_tube import ImpedanceTubeResult 46 47 from .insulation import ( 47 48 AirborneInsulationResult, ··· 2072 2073 ax.set_xlabel("Frequency [Hz]") 2073 2074 ax.set_ylabel("Mobility $|Y|$ [m/(N·s)]") 2074 2075 ax.set_title("ISO 7626-1 mechanical mobility") 2076 + ax.legend(loc="best", fontsize="small") 2077 + ax.grid(True, which="both", alpha=0.3) 2078 + return ax 2079 + 2080 + 2081 + def plot_transfer_stiffness( 2082 + result: "TransferStiffnessResult", ax: Axes | None = None, **kwargs: Any 2083 + ) -> Axes: 2084 + """Dynamic transfer stiffness level ``L_k(f)`` on a log-frequency axis. 2085 + 2086 + :param result: A :class:`~phonometry.transfer_stiffness.TransferStiffnessResult`. 2087 + :param ax: Existing axes, or ``None`` to create a figure. 2088 + :param kwargs: Forwarded to the level ``plot``. 2089 + :return: The axes. 2090 + """ 2091 + ax = ax if ax is not None else _new_axes() 2092 + freq = np.asarray(result.frequencies, dtype=np.float64) 2093 + level = np.asarray(result.level, dtype=np.float64) 2094 + kwargs.setdefault("color", _C_PRIMARY) 2095 + ax.semilogx(freq, level, label=r"$L_k = 20\,\lg(|k_{2,1}|/k_0)$", **kwargs) 2096 + ax.set_xlabel("Frequency [Hz]") 2097 + ax.set_ylabel(r"Transfer stiffness level $L_k$ [dB re 1 N/m]") 2098 + ax.set_title("ISO 10846 dynamic transfer stiffness") 2075 2099 ax.legend(loc="best", fontsize="small") 2076 2100 ax.grid(True, which="both", alpha=0.3) 2077 2101 return ax
+255
src/phonometry/transfer_stiffness.py
··· 1 + # Copyright (c) 2026. Jose M. Requena-Plens 2 + """ 3 + Dynamic transfer stiffness of resilient elements (ISO 10846-1/-2/-3). 4 + 5 + The vibro-acoustic transfer property of a resilient element (a vibration 6 + isolator, mount, bellows or hose) is its **dynamic transfer stiffness** — the 7 + frequency-dependent ratio of the *blocking force* phasor ``F2,b`` on the output 8 + (receiver) side to the displacement phasor ``u1`` on the input (source) side, 9 + with the output blocked (ISO 10846-1, 3.7):: 10 + 11 + k2,1 = F2,b / u1 [N/m] 12 + 13 + For an isolator between two structures of large driving-point stiffness, the 14 + force delivered to the receiver approximates this blocking force (ISO 10846-1, 15 + Equation 7), so ``k2,1`` characterises the isolator's transmission. Results are 16 + reported as a **level** re the reference stiffness ``k0 = 1 N/m`` (ISO 10846-2 17 + and -3, 3.17):: 18 + 19 + L_k = 10 lg(|k2,1|**2 / k0**2) = 20 lg(|k2,1| / k0) [dB] 20 + 21 + and, in the low-frequency range where inertial forces in the element are 22 + negligible, the **loss factor** is the tangent of the phase angle of ``k2,1`` 23 + (ISO 10846-1, 3.8): ``eta = Im(k2,1) / Re(k2,1)``. 24 + 25 + Two laboratory methods determine ``k2,1``: 26 + 27 + * **Direct method** (ISO 10846-2) — measure the blocked output force ``F2,b`` 28 + and the input displacement ``u1`` directly: ``k2,1 = F2,b / u1``. 29 + * **Indirect method** (ISO 10846-3) — load the output with a compact blocking 30 + mass ``m2`` and measure the vibration transmissibility ``T = u2/u1``; the 31 + blocking force is the mass's inertia force (ISO 10846-3, Equation 1):: 32 + 33 + k2,1 = -(2 pi f)**2 (m2 + mf) T for T << 1 34 + 35 + where ``mf`` is the mass of the output flange of the test element. 36 + 37 + The dynamic transfer stiffness is a member of the frequency-response-function 38 + family (ISO 10846-1, Annex A / Table A.2): ``k = j omega Z = -omega**2 m_eff``, 39 + so it converts to mechanical impedance and effective mass through 40 + :func:`phonometry.convert_frf` (``"dynamic_stiffness"`` <-> ``"impedance"`` <-> 41 + ``"apparent_mass"``). This module feeds the structure-borne source and building 42 + prediction standards (ISO 9611, EN 15657, EN 12354-5). 43 + """ 44 + 45 + from __future__ import annotations 46 + 47 + from dataclasses import dataclass 48 + from typing import TYPE_CHECKING, Any 49 + 50 + import numpy as np 51 + 52 + if TYPE_CHECKING: 53 + from matplotlib.axes import Axes 54 + 55 + from numpy.typing import ArrayLike, NDArray 56 + 57 + from ._validation import require_non_negative, require_positive 58 + from .mechanical_mobility import convert_frf 59 + 60 + #: Reference dynamic stiffness for the level ``L_k`` (ISO 10846-2/-3, 3.17), N/m. 61 + REFERENCE_STIFFNESS: float = 1.0 62 + 63 + 64 + def _omega(frequency: ArrayLike) -> NDArray[np.float64]: 65 + """Angular frequency ``omega = 2 pi f`` (rad/s); rejects non-positive f.""" 66 + f = np.asarray(frequency, dtype=np.float64) 67 + if np.any(f <= 0.0): 68 + raise ValueError("'frequency' must be positive.") 69 + return 2.0 * np.pi * f 70 + 71 + 72 + def transfer_stiffness_level( 73 + stiffness: ArrayLike, *, reference: float = REFERENCE_STIFFNESS 74 + ) -> np.ndarray: 75 + """Level of the dynamic transfer stiffness (ISO 10846-2/-3, 3.17). 76 + 77 + ``L_k = 20 lg(|k2,1| / k0)`` dB, with ``k0`` the reference stiffness. 78 + 79 + :param stiffness: Dynamic transfer stiffness ``k2,1`` (complex or real, 80 + scalar or array), in N/m. 81 + :param reference: Reference stiffness ``k0`` (Default: 1 N/m), in N/m. 82 + :return: The level ``L_k``, in dB re ``k0``. 83 + :raises ValueError: for a non-positive reference. 84 + """ 85 + reference = require_positive(reference, "reference") 86 + magnitude = np.abs(np.asarray(stiffness, dtype=np.complex128)) 87 + return np.asarray(20.0 * np.log10(magnitude / reference), dtype=np.float64) 88 + 89 + 90 + def loss_factor(stiffness: ArrayLike) -> np.ndarray: 91 + """Loss factor ``eta = Im(k2,1) / Re(k2,1)`` (ISO 10846-1, 3.8). 92 + 93 + Valid in the low-frequency range where inertial forces in the element are 94 + negligible; it is the tangent of the phase angle of the transfer stiffness. 95 + 96 + :param stiffness: Dynamic transfer stiffness ``k2,1`` (complex, scalar or 97 + array), in N/m. 98 + :return: The loss factor ``eta`` (dimensionless). 99 + """ 100 + k = np.asarray(stiffness, dtype=np.complex128) 101 + return np.asarray(k.imag / k.real, dtype=np.float64) 102 + 103 + 104 + def transfer_stiffness_direct( 105 + blocking_force: ArrayLike, input_displacement: ArrayLike 106 + ) -> np.ndarray: 107 + """Dynamic transfer stiffness by the direct method (ISO 10846-2). 108 + 109 + ``k2,1 = F2,b / u1`` — the blocked output force phasor over the input 110 + displacement phasor. 111 + 112 + :param blocking_force: Blocked output force phasor ``F2,b`` (complex), in N. 113 + :param input_displacement: Input displacement phasor ``u1`` (complex), in m. 114 + :return: The dynamic transfer stiffness ``k2,1``, in N/m. 115 + """ 116 + f2b = np.asarray(blocking_force, dtype=np.complex128) 117 + u1 = np.asarray(input_displacement, dtype=np.complex128) 118 + return np.asarray(f2b / u1, dtype=np.complex128) 119 + 120 + 121 + def transfer_stiffness_indirect( 122 + frequency: ArrayLike, 123 + transmissibility: ArrayLike, 124 + blocking_mass: float, 125 + *, 126 + flange_mass: float = 0.0, 127 + ) -> np.ndarray: 128 + """Dynamic transfer stiffness by the indirect method (ISO 10846-3, Eq. 1). 129 + 130 + ``k2,1 = -(2 pi f)**2 (m2 + mf) T`` — the blocking force is the inertia 131 + force of a compact blocking mass ``m2`` (plus the output flange mass 132 + ``mf``), derived from the measured vibration transmissibility ``T = u2/u1``. 133 + Valid for ``T << 1`` (i.e. well above the mass/spring resonance). 134 + 135 + :param frequency: Frequency ``f``, in hertz (scalar or array). 136 + :param transmissibility: Vibration transmissibility ``T = u2/u1`` (complex, 137 + scalar or array; velocity and acceleration ratios have the same value). 138 + :param blocking_mass: Blocking mass ``m2``, in kg (> 0). 139 + :param flange_mass: Output-flange mass ``mf``, in kg (Default: 0.0). 140 + :return: The dynamic transfer stiffness ``k2,1``, in N/m. 141 + :raises ValueError: for a non-positive frequency or blocking mass. 142 + """ 143 + blocking_mass = require_positive(blocking_mass, "blocking_mass") 144 + flange_mass = require_non_negative(flange_mass, "flange_mass") 145 + omega = _omega(frequency) 146 + t = np.asarray(transmissibility, dtype=np.complex128) 147 + return np.asarray( 148 + -(omega**2) * (blocking_mass + flange_mass) * t, dtype=np.complex128 149 + ) 150 + 151 + 152 + def base_transmissibility( 153 + frequency: ArrayLike, mass: float, stiffness: float, damping: float = 0.0 154 + ) -> np.ndarray: 155 + """Transmissibility of a mass on an ideal resilient element (model). 156 + 157 + The output mass ``m`` on a massless Kelvin-Voigt element (spring ``k`` in 158 + parallel with a viscous damper ``c``) driven at the input has the 159 + base-excitation transmissibility 160 + 161 + ``T = u2/u1 = (k + j omega c) / (k - omega**2 m + j omega c)``. 162 + 163 + This ideal-element model is the counterpart of the indirect-method test 164 + arrangement (ISO 10846-3): feeding ``T`` into :func:`transfer_stiffness_indirect` 165 + with the same mass recovers the element's transfer stiffness ``k + j omega c`` 166 + in the high-frequency limit ``T << 1``. 167 + 168 + :param frequency: Frequency ``f``, in hertz (scalar or array). 169 + :param mass: Output mass ``m``, in kg. 170 + :param stiffness: Element stiffness ``k``, in N/m. 171 + :param damping: Viscous damping ``c``, in N.s/m (Default: 0.0). 172 + :return: The complex transmissibility ``T``. 173 + """ 174 + mass = require_positive(mass, "mass") 175 + stiffness = require_positive(stiffness, "stiffness") 176 + damping = require_non_negative(damping, "damping") 177 + omega = _omega(frequency) 178 + numerator = stiffness + 1j * omega * damping 179 + denominator = stiffness - omega**2 * mass + 1j * omega * damping 180 + return np.asarray(numerator / denominator, dtype=np.complex128) 181 + 182 + 183 + @dataclass(frozen=True) 184 + class TransferStiffnessResult: 185 + """A dynamic transfer stiffness over frequency (ISO 10846). 186 + 187 + :ivar frequencies: Frequencies, in hertz. 188 + :ivar transfer_stiffness: Complex ``k2,1`` per frequency, in N/m. 189 + :ivar blocking_mass: Blocking mass ``m2`` used (indirect method), in kg, or 190 + ``None`` for the direct method. 191 + """ 192 + 193 + frequencies: np.ndarray 194 + transfer_stiffness: np.ndarray 195 + blocking_mass: float | None = None 196 + 197 + @property 198 + def magnitude(self) -> np.ndarray: 199 + """Transfer-stiffness magnitude ``|k2,1|``, in N/m.""" 200 + return np.abs(self.transfer_stiffness) 201 + 202 + @property 203 + def level(self) -> np.ndarray: 204 + """Transfer-stiffness level ``L_k`` re 1 N/m, in dB (3.17).""" 205 + return transfer_stiffness_level(self.transfer_stiffness) 206 + 207 + @property 208 + def loss_factor(self) -> np.ndarray: 209 + """Loss factor ``eta = Im/Re`` per frequency (3.8).""" 210 + return loss_factor(self.transfer_stiffness) 211 + 212 + def to(self, target: str) -> np.ndarray: 213 + """Convert ``k2,1`` to a related FRF (ISO 10846-1 Annex A / Table A.2). 214 + 215 + ``target`` is ``"impedance"`` (``Z = k/(j omega)``) or 216 + ``"apparent_mass"`` (``m_eff = -k/omega**2``); see 217 + :func:`phonometry.convert_frf`. 218 + """ 219 + return convert_frf( 220 + self.transfer_stiffness, self.frequencies, "dynamic_stiffness", target 221 + ) 222 + 223 + def plot(self, ax: "Axes | None" = None, **kwargs: Any) -> "Axes": 224 + """Plot the transfer-stiffness level ``L_k(f)``. 225 + 226 + Requires matplotlib (``pip install phonometry[plot]``); returns the 227 + :class:`~matplotlib.axes.Axes`. 228 + """ 229 + from ._plotting import plot_transfer_stiffness 230 + 231 + return plot_transfer_stiffness(self, ax=ax, **kwargs) 232 + 233 + 234 + def indirect_transfer_stiffness_result( 235 + frequency: ArrayLike, 236 + transmissibility: ArrayLike, 237 + blocking_mass: float, 238 + *, 239 + flange_mass: float = 0.0, 240 + ) -> TransferStiffnessResult: 241 + """Indirect-method transfer stiffness bundled as a :class:`TransferStiffnessResult`. 242 + 243 + :param frequency: Frequencies ``f``, in hertz (array). 244 + :param transmissibility: Vibration transmissibility ``T = u2/u1`` (complex). 245 + :param blocking_mass: Blocking mass ``m2``, in kg (> 0). 246 + :param flange_mass: Output-flange mass ``mf``, in kg (Default: 0.0). 247 + :return: The :class:`TransferStiffnessResult` (indirect method). 248 + """ 249 + freq = np.asarray(frequency, dtype=np.float64) 250 + k = transfer_stiffness_indirect( 251 + freq, transmissibility, blocking_mass, flange_mass=flange_mass 252 + ) 253 + return TransferStiffnessResult( 254 + frequencies=freq, transfer_stiffness=k, blocking_mass=float(blocking_mass) 255 + )
+151
tests/test_transfer_stiffness.py
··· 1 + # Copyright (c) 2026. Jose M. Requena-Plens 2 + """Tests for ISO 10846 dynamic transfer stiffness of resilient elements. 3 + 4 + Anchored on closed-form identities: the level ``L_k = 20 lg(|k|/k0)`` re 5 + 1 N/m, the direct-method ratio ``k2,1 = F2,b/u1``, the indirect-method inertia 6 + relation ``k2,1 = -(2 pi f)^2 (m2+mf) T`` (Equation 1), the loss factor 7 + ``eta = Im/Re``, and the Annex-A / Table-A.2 FRF relations ``k = j omega Z = 8 + -omega^2 m_eff``. The physically-grounded oracle is a massless Kelvin-Voigt 9 + element (``k + j omega c``) loaded by a mass: its base transmissibility fed 10 + back through the indirect relation recovers the element stiffness at ``T << 1``. 11 + """ 12 + 13 + from __future__ import annotations 14 + 15 + import math 16 + 17 + import numpy as np 18 + import pytest 19 + 20 + from phonometry import ( 21 + TransferStiffnessResult, 22 + base_transmissibility, 23 + convert_frf, 24 + indirect_transfer_stiffness_result, 25 + loss_factor, 26 + transfer_stiffness_direct, 27 + transfer_stiffness_indirect, 28 + transfer_stiffness_level, 29 + ) 30 + 31 + 32 + # --------------------------------------------------------------------------- 33 + # Level (ISO 10846-2/-3, 3.17) — re k0 = 1 N/m 34 + # --------------------------------------------------------------------------- 35 + def test_level_reference_decade() -> None: 36 + assert transfer_stiffness_level(1.0) == pytest.approx(0.0) 37 + assert transfer_stiffness_level(1e6) == pytest.approx(120.0) 38 + assert transfer_stiffness_level(2e6) == pytest.approx(126.0206, abs=1e-3) 39 + 40 + 41 + def test_level_uses_magnitude_of_complex() -> None: 42 + # |3+4j| = 5 -> 20 lg 5 43 + assert transfer_stiffness_level(3.0 + 4.0j) == pytest.approx(20.0 * math.log10(5.0)) 44 + 45 + 46 + def test_level_custom_reference() -> None: 47 + assert transfer_stiffness_level(1e3, reference=1e3) == pytest.approx(0.0) 48 + 49 + 50 + def test_level_rejects_non_positive_reference() -> None: 51 + with pytest.raises(ValueError, match="reference"): 52 + transfer_stiffness_level(1e6, reference=0.0) 53 + 54 + 55 + # --------------------------------------------------------------------------- 56 + # Loss factor (ISO 10846-1, 3.8) 57 + # --------------------------------------------------------------------------- 58 + def test_loss_factor_is_tan_phase() -> None: 59 + # k = k0 (1 + j eta) -> Im/Re = eta 60 + assert loss_factor(1e6 * (1.0 + 0.05j)) == pytest.approx(0.05) 61 + assert loss_factor(1e6 + 1j * 3e4) == pytest.approx(0.03) 62 + 63 + 64 + # --------------------------------------------------------------------------- 65 + # Direct method (ISO 10846-2) 66 + # --------------------------------------------------------------------------- 67 + def test_direct_method_ratio() -> None: 68 + k = transfer_stiffness_direct(5.0 + 0j, 1e-6 + 0j) 69 + assert complex(k) == pytest.approx(5e6) 70 + 71 + 72 + def test_direct_method_preserves_phase() -> None: 73 + # A phase lag in the force appears directly in k2,1. 74 + k = transfer_stiffness_direct(2.0 * np.exp(1j * 0.3), 1e-3 + 0j) 75 + assert np.angle(complex(k)) == pytest.approx(0.3) 76 + 77 + 78 + # --------------------------------------------------------------------------- 79 + # Indirect method (ISO 10846-3, Equation 1) 80 + # --------------------------------------------------------------------------- 81 + def test_indirect_matches_equation_1() -> None: 82 + f, m2, t = 500.0, 10.0, 0.01 + 0j 83 + expected = -((2.0 * math.pi * f) ** 2) * m2 * t 84 + assert complex(transfer_stiffness_indirect(f, t, m2)) == pytest.approx(expected) 85 + 86 + 87 + def test_indirect_includes_flange_mass() -> None: 88 + f, t = 300.0, 0.02 + 0j 89 + k_no_flange = transfer_stiffness_indirect(f, t, 8.0) 90 + k_flange = transfer_stiffness_indirect(f, t, 8.0, flange_mass=2.0) 91 + assert complex(k_flange) == pytest.approx(complex(k_no_flange) * 10.0 / 8.0) 92 + 93 + 94 + def test_indirect_recovers_kelvin_voigt_at_high_frequency() -> None: 95 + """A massless (k + jwc) element loaded by m: T -> indirect recovers k+jwc.""" 96 + k, c, m = 1e6, 200.0, 5.0 97 + f0 = math.sqrt(k / m) / (2.0 * math.pi) 98 + f = 30.0 * f0 # well into T << 1 99 + t = base_transmissibility(f, m, k, c) 100 + k_rec = complex(transfer_stiffness_indirect(f, t, m)) 101 + k_true = k + 1j * (2.0 * math.pi * f) * c 102 + assert k_rec == pytest.approx(k_true, rel=5e-3) 103 + 104 + 105 + def test_indirect_rejects_bad_inputs() -> None: 106 + with pytest.raises(ValueError, match="frequency"): 107 + transfer_stiffness_indirect(0.0, 0.01 + 0j, 10.0) 108 + with pytest.raises(ValueError, match="blocking_mass"): 109 + transfer_stiffness_indirect(500.0, 0.01 + 0j, 0.0) 110 + 111 + 112 + # --------------------------------------------------------------------------- 113 + # Annex A / Table A.2 FRF relations (k = jwZ = -w^2 m_eff) 114 + # --------------------------------------------------------------------------- 115 + def test_stiffness_impedance_effective_mass_relations() -> None: 116 + f = 250.0 117 + w = 2.0 * math.pi * f 118 + k = 1e6 + 1j * 5e4 119 + z = convert_frf(k, f, "dynamic_stiffness", "impedance") 120 + m_eff = convert_frf(k, f, "dynamic_stiffness", "apparent_mass") 121 + assert complex(k) == pytest.approx(1j * w * complex(z)) 122 + assert complex(k) == pytest.approx(-(w**2) * complex(m_eff)) 123 + 124 + 125 + # --------------------------------------------------------------------------- 126 + # Result object 127 + # --------------------------------------------------------------------------- 128 + def test_result_bundle() -> None: 129 + f = np.array([100.0, 200.0, 400.0]) 130 + t = np.array([0.05, 0.02, 0.008]) * np.exp(1j * 0.1) 131 + res = indirect_transfer_stiffness_result(f, t, blocking_mass=8.0) 132 + assert isinstance(res, TransferStiffnessResult) 133 + assert res.blocking_mass == 8.0 134 + # level is the level of the bundled stiffness 135 + assert np.allclose(res.level, transfer_stiffness_level(res.transfer_stiffness)) 136 + # .to("impedance") = k/(jw) 137 + z = res.to("impedance") 138 + assert np.allclose(z, res.transfer_stiffness / (1j * 2.0 * np.pi * f)) 139 + # loss factor of a constant-phase transmissibility is tan(0.1) 140 + assert np.allclose(res.loss_factor, math.tan(0.1)) 141 + 142 + 143 + def test_plot_returns_axes() -> None: 144 + pytest.importorskip("matplotlib") 145 + import matplotlib 146 + 147 + matplotlib.use("Agg") 148 + f = np.logspace(1, 3, 50) 149 + t = base_transmissibility(f, 5.0, 1e6, 200.0) 150 + res = indirect_transfer_stiffness_result(f, t, blocking_mass=5.0) 151 + assert res.plot() is not None