<!-- canonical: https://jmrplens.github.io/phonometry/es/vibration/structural/junction-transmission/ -->
Source: https://jmrplens.github.io/phonometry/es/vibration/structural/junction-transmission/

Cuando una onda de flexión que viaja por una pared o un forjado llega a una
unión rígida con otra placa, parte de su energía se refleja y parte se transmite
a las placas conectadas. El **enfoque ondulatorio** de Cremer et al. (1973),
tabulado por Craik (1981, 1996) y recogido en Hopkins (2007, Sección 5.2.1.3),
da el coeficiente de transmisión en forma cerrada para las cuatro uniones más
habituales de placas finas, homogéneas e isótropas: las uniones en **X**, **T**,
**L** y **en línea**. Modelar la unión como una viga sin masa simplemente
apoyada (articulada) obliga a que una onda de flexión incidente genere solo
ondas de flexión reflejadas y transmitidas, sin conversión a ondas en el plano,
y los coeficientes resultantes son **independientes de la frecuencia**. Eso es
lo que los convierte en entradas convenientes en forma cerrada para el análisis
estadístico de energía (SEA) y para el modelo de transmisión por flancos de la
EN 12354, donde alimentan el factor de pérdidas por acoplamiento $\eta_{ij}$ y
el índice de reducción vibratoria $K_{ij}$.

Esa conveniencia tiene un precio, y conviene conocerlo antes de usar el número
como si estuviera medido. El $K_{ij}$ de una unión *real* **sí** depende de la
frecuencia, que es la razón de que la ISO 10848 lo declare por bandas y de que
el Anexo E de la EN 12354-1 tabule valores dependientes de la banda. El enfoque
ondulatorio necesita placas delgadas frente a la longitud de onda de flexión, y
modos suficientes en la banda para que la media angular en campo difuso de la
sección 3 signifique algo, así que se degrada en baja frecuencia y en elementos
pequeños. La conversión a ondas en el plano que descarta crece con la frecuencia
y con la complejidad de la unión, de modo que la forma cerrada favorece a las
uniones pesadas, rígidas y complicadas: el clip de la sección 2 enseña justo el
precursor que se está despreciando. Y una viga articulada sin masa es un mal
modelo de una unión que en realidad tiene masa y rigidez rotacional. La
sección 5 entrega un único número independiente de la frecuencia directamente
al modelo de EN 12354 en lugar de uno dependiente de la banda; cuando eso
importe, la contraparte medida es la
[guía de transmisión por flancos en laboratorio](/phonometry/es/buildings/insulation/flanking-lab/).

Primero el objeto en sí: una unión en T donde un forjado de hormigón de 140 mm
muere contra un muro continuo de 200 mm. Un resultado de `junction_transmission`
retiene sus placas, así que `res.plot_geometry()` dibuja la unión a escala con
la onda de flexión incidente marcada.

*Dibujado a escala: la onda de flexión incidente llega por el forjado de
140 mm, y todo lo que describen los coeficientes en forma cerrada ocurre donde
se encuentra con el muro continuo de 200 mm.*

<details>
<summary>Mostrar el código de esta figura</summary>

```python

from phonometry import junction_transmission

# Un forjado de hormigón de 140 mm contra un muro de 200 mm en unión en T.
res = junction_transmission("T2", 0.14, 3500.0, 320.0, 0.2, 3500.0, 460.0)
res.plot_geometry(language="es")
plt.show()
```

</details>

*El rasgo más marcado de esta figura es el corte. Más allá de
$\theta_\text{co} = \arcsin\chi = 45°$ la placa receptora, más pesada, no tiene
onda de flexión propagante que alimentar por el camino de esquina, así que
$\tau_{12}$ es exactamente cero y ahí se queda, mientras que el camino recto
sigue hasta la incidencia rasante. Por eso es $\chi$, una razón de números de
onda, y no $\psi$, quien fija la forma de la curva.*

<details>
<summary>Mostrar el código de esta figura</summary>

```python

from phonometry import junction_transmission

# Unión en X entre una placa de hormigón de 100 mm y otra de 200 mm (cL = 3200 m/s).
res = junction_transmission("X", 0.1, 3200.0, 240.0, 0.2, 3200.0, 480.0)
res.plot(language="es")  # tau(theta) de los caminos de esquina y recto, con medias
plt.show()
```

</details>

## 1. Parámetros de onda chi y psi

Con la placa $i$ de espesor $h_i$, velocidad de onda cuasi-longitudinal
$c_{\mathrm{L},i}$ y densidad superficial $\rho_{\mathrm{s},i}$, toda la familia de coeficientes
depende de solo dos razones adimensionales (Cremer et al. 1973):

$$
\chi = \frac{k_{\mathrm{B}2}}{k_{\mathrm{B}1}}
     = \left(\frac{\rho_{\mathrm{s}2} B_1}{\rho_{\mathrm{s}1} B_2}\right)^{1/4}
     = \sqrt{\frac{h_1 c_{\mathrm{L}1}}{h_2 c_{\mathrm{L}2}}}
     = \sqrt{\frac{f_{\mathrm{c}2}}{f_{\mathrm{c}1}}}
$$

$$
\psi = \frac{B_2 k_{\mathrm{B}2}^2}{B_1 k_{\mathrm{B}1}^2}
     = \frac{h_2 c_{\mathrm{L}2} \rho_{\mathrm{s}2}}{h_1 c_{\mathrm{L}1} \rho_{\mathrm{s}1}}
     = \frac{\rho_{\mathrm{s}2} f_{\mathrm{c}1}}{\rho_{\mathrm{s}1} f_{\mathrm{c}2}}
$$

$\chi$ es la razón de números de onda de flexión de las placas (equivalente a
la raíz cuadrada de la razón de sus frecuencias críticas) y fija el ángulo de
corte por reflexión total interna $\theta_\text{co} = \arcsin\chi$; $\psi$ es
la razón de sus movilidades de momento flector. Para **placas idénticas**
ambos valen 1.

```python
from phonometry import junction_wave_parameters

chi, psi = junction_wave_parameters(0.1, 3200.0, 240.0, 0.2, 3200.0, 480.0)
#  -> (sqrt(0.5), 4.0)
```

## 2. Coeficientes de esquina y de tramo recto

Para una onda incidente sobre la placa 1, la transmisión **alrededor de la
esquina** (hacia la placa perpendicular 2) es $\tau_{12}(\theta)$ (Ec. 5.12),
y la transmisión **a través del tramo recto** (hacia la placa colineal 3, solo
en las uniones en X y en T (1)) es $\tau_{13}(\theta)$ (Ec. 5.13). El
coeficiente de esquina es cero más allá del ángulo de corte,
$\tau_{12}(\theta) = 0$ para $\chi < \sin\theta$.
Las constantes de unión $J_1$, $J_2$, $J_3$ seleccionan la geometría:

Una unión en T tiene tres placas, y **cuál de ellas lleva la onda incidente** es
toda la distinción entre sus dos casos. En la **unión en T (1)** la onda llega
por uno de los dos miembros colineales, así que puede seguir de largo hacia la
placa colineal *y* doblar la esquina hacia el ramal. En la **unión en T (2)**
llega por el ramal, el pie de la T, de modo que los dos caminos disponibles son
esquinas y no hay tramo recto ninguno. La figura que abre esta página es una T2
justo por eso: el forjado de 140 mm es el ramal, y el muro de 200 mm pasa de
largo.

| Unión | Cadena de la API | $J_1$ | $J_2$ | $J_3$ |
|---|---|---|---|---|
| X | `"X"` | 1 | 1 | 1 |
| T (1) | `"T1"` | 2 | 0,5 | 0,5 |
| T (2) | `"T2"` | 2 | 2 | — |
| L | `"L"` | 4 | 1 | — |
| en línea | — | \* | \* | \* |

\* La unión en línea no tiene constantes $J$: es un cambio de sección, no una
esquina, así que la geometría es unidimensional. Véase más abajo.

El tramo recto no está definido para la unión en T (2) ni para la unión en L.

Dos placas parametrizan todo esto porque las formas cerradas describen una unión
**simétrica**, en la que las placas opuestas son idénticas: en la X, la placa 3
es copia de la 1 y la placa 4 copia de la 2; en la T (1), la placa 3 es copia de
la 1; en la T (2), la placa 4 es copia de la 2. El propio ejemplo de unión en X
de esta página es, por tanto, un cruce de dos placas de 100 mm y dos de 200 mm,
no de cuatro placas distintas. Eso es una restricción real en un edificio real:
un forjado que cambia por encima y por debajo de una unión, o un muro que
continúa con otro espesor, no tiene forma cerrada aquí. Acótalo con los dos
casos simétricos, o acude al $K_{ij}$ empírico del Anexo E de la EN 12354-1, o
mídelo. La unión en L no necesita esa advertencia porque de verdad tiene dos
placas, y tampoco la necesita, por otra razón, la unión en línea.

### La unión en línea: un cambio de sección

La unión en línea es el único caso de esta página en que las dos placas son
colineales, así que no hay esquina y el aparato de $J_1/J_2/J_3$ no se aplica.
Una losa de 100 mm que continúa como losa de 200 mm es una situación habitual
en edificación, y tiene su propia forma cerrada a incidencia normal (Hopkins
Ec. 5.14, según Cremer et al. 1973):

$$
\tau_{12}(0°) = \left[\frac{2(1+\chi)(1+\psi)\sqrt{\chi\psi}}
{\chi(1+\psi)^2 + 2\psi(1+\chi^2)}\right]^2
$$

Solo está definida a incidencia normal, por la razón geométrica anterior; el
módulo advierte de que el valor queda dentro de 1 dB de la media angular
siempre que $\chi \ge 1$.

`inline_transmission_coefficient(chi, psi)` la evalúa. Para el mismo par de
hormigón de 100 mm / 200 mm de la figura anterior, con $\chi = 0{,}707$ y
$\psi = 4{,}0$ de `junction_wave_parameters`, devuelve **0,936**, frente a
exactamente 1 para placas idénticas. Duplicar el espesor de una losa que
continúa deja pasar todavía el 94 % de la potencia incidente. Esa es la forma
cuantitativa de «una placa continua transmite por completo», y es la razón de
que un cambio de sección sea mal sitio donde buscar aislamiento.

```python

from phonometry import (
    corner_transmission_coefficient,
    straight_transmission_coefficient,
)

theta = np.radians(np.linspace(0.0, 90.0, 91))
tau12 = corner_transmission_coefficient(theta, chi, psi, "X")
tau13 = straight_transmission_coefficient(theta, chi, psi, "X")
```

El clip de abajo ejecuta este experimento en el dominio del tiempo con el
[esquema FDTD elástico 2D](/phonometry/es/simulation/elastic-waves/) de la
biblioteca: un paquete de flexión sobre una placa
de acero de 10 mm llega a una unión en L con una placa idéntica, y la esquina
lo divide en las ondas reflejada y transmitida que esta sección tasa en
$\tau_{12}(0°) = 0{,}5$. El precursor rápido de onda en el plano que baja por
la placa receptora es la conversión de modo que el modelo de unión articulada
deja fuera a propósito.

## 3. Media angular en campo difuso

En un campo vibracional difuso todos los ángulos de incidencia son igual de
probables y la intensidad incidente lleva un factor de oblicuidad
$\cos\theta$, por lo que el coeficiente de transmisión medio es
$\bar{\tau}_{ij} = \int_0^{\pi/2} \tau_{ij}(\theta)\cos\theta\,\mathrm{d}\theta$
(Ec. 5.6). Para **placas idénticas** el álgebra se reduce a fracciones exactas
que sirven de oráculo desde primeros principios de la biblioteca:

- esquina y recto de la unión en X: $\tau_{ij}(\theta) = \cos^2\theta / 8$,
  luego $\bar{\tau}_{ij} = 1/12$;
- esquina de la unión en L: $\tau_{ij}(\theta) = \cos^2\theta / 2$, luego
  $\bar{\tau}_{ij} = 1/3$;
- unión en línea: $\tau_{12}(0°) = 1$ (una placa continua transmite por
  completo; para un cambio de sección se aplica el
  `inline_transmission_coefficient` de la sección 2).

```python
from phonometry import angular_average_transmission_coefficient

angular_average_transmission_coefficient(1.0, 1.0, "X", section="corner")  # 1/12
angular_average_transmission_coefficient(1.0, 1.0, "L", section="corner")  # 1/3
```

Las dos direcciones cumplen la relación de consistencia SEA (Ec. 5.7),
$\bar{\tau}_{12} = \chi\,\bar{\tau}_{21}$, de modo que solo hace falta calcular
una dirección.

## 4. Factor de pérdidas por acoplamiento e índice de reducción vibratoria

La media angular es el puente hacia los dos descriptores de unión usados en los
modelos de edificios basados en SEA: el **factor de pérdidas por acoplamiento**
(Ec. 2.154) $\eta_{ij} = c_{\mathrm{g},i} L_{ij} \tau_{ij} / (2\pi^2 f S_i)$ y el
**índice de reducción vibratoria** del enfoque ondulatorio (Ec. 5.116)
$K_{ij} = 10\log_{10}(1/\tau_{ij}) + 5\log_{10}(f_{\mathrm{c},j}/f_\text{ref})$ con
$f_\text{ref} = 1000\ \text{Hz}$ y $f_{\mathrm{c},j}$
la frecuencia crítica de la placa *receptora*. Combinada con la reciprocidad de
la Ec. 5.7, esta forma es simétrica, $K_{ij} = K_{ji}$, como exige la EN 12354
al descriptor de unión. Para la unión en X idéntica de hormigón de 100 mm
($f_\mathrm{c} \approx 203\ \text{Hz}$),
$K_{ij} = 10\log_{10} 12 + 5\log_{10}(203/1000) \approx 7{,}3\ \text{dB}$.

```python
from phonometry import (coupling_loss_factor, junction_transmission,
                        wave_vibration_reduction_index)

eta = coupling_loss_factor(1.0 / 12.0, group_velocity=200.0,
                           junction_length=4.0, frequency=500.0, plate_area=10.0)
res = junction_transmission("X", 0.1, 3200.0, 240.0, 0.1, 3200.0, 240.0)
kij = wave_vibration_reduction_index(res.corner_average,
                                     res.critical_frequency2)  # 7.33 dB
kij = res.corner_reduction_index  # lo mismo, precalculado en el resultado

res.plot()   # tau(theta) de los caminos de esquina y recto de esta unión (requiere matplotlib)
```

$K_{ij}$ es también lo que ISO 10848 mide sobre una unión construida: se excita
un elemento, se lee la diferencia de nivel de velocidad en ambos y se
normaliza por la longitud de unión, de modo que el valor en forma cerrada de
arriba tiene un homólogo experimental directo.

El descriptor de unión es una magnitud de *diseño*: barrer el espesor de la
placa receptora muestra cuánto aporta un cambio de masa en la unión. Los
caminos de esquina se endurecen deprisa con una placa receptora más pesada,
mientras que el camino recto (en línea) de la unión en X es el que más sube,
porque las placas perpendiculares fijan cada vez más la línea de unión:

<details>
<summary>Mostrar el código de esta figura</summary>

```python

from phonometry import junction_transmission, wave_vibration_reduction_index

# Placas de hormigón (cL = 3200 m/s, rho = 2400 kg/m3): placa 1 fija en
# 100 mm, placa 2 en barrido de 50 mm a 400 mm.
h1, cl, rho = 0.1, 3200.0, 2400.0
ratios = np.linspace(0.5, 4.0, 36)
curves = {"X esquina": [], "X recta": [], "unión en T (1) esquina": [],
          "L esquina": []}
for ratio in ratios:
    h2 = h1 * float(ratio)
    res_x = junction_transmission("X", h1, cl, rho * h1, h2, cl, rho * h2)
    curves["X esquina"].append(res_x.corner_reduction_index)
    # En el resultado solo viene precalculado el índice de esquina; el camino
    # recto es la media angular tau13 convertida de la misma forma.
    curves["X recta"].append(float(wave_vibration_reduction_index(
        res_x.straight_average, res_x.critical_frequency2)))
    res_t = junction_transmission("T1", h1, cl, rho * h1, h2, cl, rho * h2)
    curves["unión en T (1) esquina"].append(res_t.corner_reduction_index)
    res_l = junction_transmission("L", h1, cl, rho * h1, h2, cl, rho * h2)
    curves["L esquina"].append(res_l.corner_reduction_index)

fig, ax = plt.subplots()
for label, values in curves.items():
    ax.plot(ratios, values, "--" if label == "X recta" else "-", label=label)
# La unión en X de placas idénticas: Kij = 10 lg 12 + 5 lg(fc2/1000).
res_eq = junction_transmission("X", h1, cl, rho * h1, h1, cl, rho * h1)
ax.scatter([1.0], [res_eq.corner_reduction_index], zorder=6,
           label="placas idénticas (tau = 1/12)")
ax.set_xlabel("Relación de espesores h2/h1")
ax.set_ylabel("Índice de reducción vibratoria Kij [dB]")
ax.set_title("Kij de unión por el enfoque ondulatorio (Hopkins Ec. 5.116)")
ax.legend()
plt.show()
```

</details>

## 5. Ejemplo resuelto: llevar Kij a la EN 12354

El número que predice esta página es exactamente el que consume el modelo de
flancos de EN 12354-1. Toma la unión en X de hormigón de 100 mm / 200 mm de la
figura de $\tau(\theta)$ del apartado 2: su camino de esquina da
$K_{12} = 9{,}8\ \text{dB}$.
Entregarlo a
`flanking_element` en lugar de un valor tabulado del Anexo E pone precio a las
tres trayectorias por flancos de la unión y su efecto sobre el índice aparente:

```python
from phonometry import building, junction_transmission

# La unión en X de hormigón de 100 mm / 200 mm de la figura de tau(theta):
res = junction_transmission("X", 0.1, 3200.0, 240.0, 0.2, 3200.0, 480.0)
k12 = res.corner_reduction_index                     # 9.8 dB (camino de esquina)

# Llévalo al modelo simplificado de EN 12354-1 como Kij de esta unión:
ff, df, fd = building.flanking_element(
    label="suelo", r_flanking=49.0, r_separating=57.0,
    k_ff=k12, k_fd=k12, k_df=k12, separating_area=11.5, coupling_length=4.5)
pred = building.predicted_airborne_insulation(r_direct=57.0,
                                              flanking_paths=[ff, df, fd])
print(round(pred.r_prime_w, 1))                      # 55.4  (Rw 57 directo)
print(pred.dominant.label, round(pred.dominant.fraction, 2))   # Dd 0.68
```

Una sola unión con un $K_{ij}$ moderado ya recorta 1,6 dB al
$R_\mathrm{w} = 57\ \text{dB}$ directo; un edificio completo repite esto para cada
unión, que es la
[guía de predicción EN 12354](/phonometry/es/buildings/design/insulation-prediction/).

La contraparte de $K_{ij}$ medida según la EN 12354 (a partir de la diferencia
de niveles de velocidad promediada en dirección) es el
`vibration_reduction_index` separado de la transmisión por flancos; esta
página es el valor *predicho* en forma cerrada del enfoque ondulatorio.

## 6. SEA experimental: factores de acoplamiento a partir de energías medidas

Todo lo anterior es la vía **predictiva**: un factor de pérdidas por
acoplamiento deducido de un modelo ondulatorio de la unión. Las uniones reales
(soldaduras, filas de tornillos, puntos de soldadura, adhesivos) no son
tratables así, y la vía **experimental** invierte en su lugar el balance de
potencia SEA en régimen estacionario a partir de energías *medidas* de los
subsistemas (Norton y Karczub 2003, secciones 6.3.3 y 6.3.4). Para dos
subsistemas,

$$
\Pi_1 = \omega\left[(\eta_1 + \eta_{12})\,E_1 - \eta_{21}\,E_2\right]
\quad (6.10)
$$

$$
0 = \omega\left[(\eta_2 + \eta_{21})\,E_2 - \eta_{12}\,E_1\right]
\quad (6.11)
$$

con $E_i = M_i \langle v_i^2 \rangle$ la energía en banda del subsistema $i$
(su masa por la velocidad cuadrática media promediada en espacio y tiempo). Se
excita solo el subsistema 1, se añade la relación de consistencia
(reciprocidad) SEA $n_1\eta_{12} = n_2\eta_{21}$ (Ec. 6.8) y ambos factores de
acoplamiento se deducen de las dos energías medidas (Ec. 6.15):

$$
\eta_{12} = \frac{\eta_2 E_2}{E_1 - E_2\,n_1/n_2}, \qquad
\eta_{21} = \eta_{12}\,\frac{n_1}{n_2}, \qquad
\Pi_\text{in} = \omega\,(\eta_1 E_1 + \eta_2 E_2)
$$

La potencia inyectada se reduce a la potencia total disipada, como debe ser en
régimen estacionario: sustituir la Ec. (6.11) en la Ec. (6.10) cancela
exactamente los dos términos de acoplamiento, lo que es una comprobación que
sale gratis en cualquier medida, y de las que hay que ejecutar sobre datos
reales, no solo sobre el papel.

### La medición que hay detrás de esos símbolos

$E_i$ y $\Pi_\text{in}$ son magnitudes medidas, y la inversión vale lo que
valgan ellas. La sección 6.6.4 de Norton describe el experimento; los requisitos
de abajo son los que deciden si hay resultado o no.

- **Mide la potencia inyectada, no la deduzcas.** Excita a través de un
  transductor de fuerza o de una cabeza de impedancia para que
  $\Pi_\text{in} = \tfrac{1}{2}\operatorname{Re}\{F v^*\}$ se forme en el punto
  de excitación (Norton Ec. 6.50). Tomada del espectro cruzado de las señales de
  fuerza y de velocidad es un promedio temporal y se porta bien con excitación
  aleatoria de banda ancha; tomada de $\operatorname{Re}\{Z\}$ no, porque la
  impedancia es pequeña justo en una resonancia y la estimación del factor de
  pérdidas hereda entonces un error grande.
- **Promedia las velocidades en el espacio.** $\langle v_i^2 \rangle$ es un
  promedio espacial *y* temporal, así que exige varias posiciones de
  acelerómetro por subsistema, lejos de los bordes y lejos del punto de
  excitación, y repetir la excitación en varios puntos elegidos al azar para que
  la excitación en un solo punto cumpla la hipótesis de independencia
  estadística sobre la que se apoya el modelo.
- **Elige bandas que contengan varios modos.** El balance SEA es un promedio
  sobre los modos de una banda, así que la banda debe contener los suficientes,
  que es para lo que sirven las densidades modales que calcula esta sección, y
  la razón de que las calcule.
- **Consigue $\eta_1$ y $\eta_2$ por separado, o excita dos veces.** La
  inversión con una sola excitación de la Ec. (6.15) toma los factores de
  pérdidas internos como *datos de entrada*. Salen de un experimento aparte
  sobre los subsistemas desacoplados: una medición de decaimiento reverberante,
  o la técnica de flujo de energía en régimen estacionario de Norton 6.5.3
  ($\eta = \Pi_\text{in}/(\omega E)$, que necesita otra vez la misma medición de
  potencia de entrada). Si no hay ninguna de las dos, excita cada subsistema por
  turnos: es el esquema de dos excitaciones de más abajo, que no necesita ningún
  valor previo.
- **Deja fuera las pérdidas por los contornos.** El modelo de dos subsistemas
  supone que la energía que sale del par por sus contornos lejanos es
  despreciable: apoyos puntuales de hilo fino o almohadillas de espuma que
  aproximen condiciones libre-libre es lo que usa la literatura. La carga de
  masa, el amortiguamiento de contacto y la realimentación entre excitador y
  estructura en el punto de excitación son los mismos errores que cuantifica la
  [sección de transductores](/phonometry/es/vibration/structural/mechanical-mobility/)
  de la guía de movilidad, y aquí se aplican sin cambios.
- **Lee el acoplamiento contra el amortiguamiento.** El criterio de aceptación
  de la propia figura: los factores de pérdidas por acoplamiento deben quedar al
  menos un orden de magnitud por debajo de los factores de pérdidas internos, o
  los subsistemas no están débilmente acoplados y el modelo no se sostiene.
  `PowerInjectionResult.coupling_strength` da esa razón.

`power_injection_clf` realiza esa inversión, y junto a ella están las
densidades modales de la sección 6.4.1 de Norton:
`flat_plate_modal_density` (Ec. 6.25), `bar_modal_density` (6.23),
`beam_modal_density` (6.24) y `cylindrical_shell_modal_density` (6.27 a 6.29,
las aproximaciones de Szechenyi en tres regímenes en torno a la
`ring_frequency` de la Ec. 6.26). La expresión de placa plana
$n(f) = S\sqrt{12}/(2 c_\mathrm{L} t)$ es la misma magnitud que la
$n = \pi S f_\mathrm{c} / c_0^2$ de la EN 12354-4 que usa el
[modelo de flancos](/phonometry/es/buildings/insulation/flanking-lab/), solo que
parametrizada por la propia placa en vez de por su frecuencia crítica.

*Izquierda: dos formas de unir las mismas dos placas. Derecha: el balance de
factores de pérdidas invertido a partir de un par de velocidades medidas; el
acoplamiento se mantiene un orden de magnitud por debajo del amortiguamiento,
que es la condición para que un modelo SEA de dos subsistemas sea fiable.*

<details>
<summary>Ver el código de esta figura</summary>

```python

from phonometry import (
    coupling_loss_factor,
    cylindrical_shell_modal_density,
    flat_plate_modal_density,
    plate_bending_stiffness,
    point_connection_coupling_loss_factor,
    power_injection_clf,
    right_angle_transmission_coefficient,
)
from phonometry.vibration.structural.point_mobility import plate_bending_wave_speed

rho, nu, young = 2700.0, 0.33, 7.1e10                 # aluminio
cl = math.sqrt(young / (rho * (1.0 - nu**2)))         # 5432 m/s (Ec. 6.25)
bands = np.array([125.0, 250.0, 500.0, 1000.0, 2000.0])

# Predicción: una placa de 3 mm x 2,5 m x 1,2 m que se une a otra de
# 5,5 mm x 2,0 m x 1,2 m en ángulo recto por el borde de 1,2 m, soldada y
# después atornillada.
h1, h2, area1, length = 0.003, 0.0055, 2.5 * 1.2, 1.2
tau = right_angle_transmission_coefficient(h1, h2, density1=rho, density2=rho,
                                           wave_speed1=cl, wave_speed2=cl)
cb = plate_bending_wave_speed(bands, plate_bending_stiffness(young, h1, nu),
                              rho * h1)
welded = [float(coupling_loss_factor(tau, 2.0 * c, length, f, area1))
          for c, f in zip(cb, bands, strict=True)]
bolted = point_connection_coupling_loss_factor(
    bands, 12, thickness1=h1, thickness2=h2, surface_density1=rho * h1,
    surface_density2=rho * h2, wave_speed1=cl, wave_speed2=cl,
    plate_area1=area1)

# Medida: una plataforma de 5 mm excitada directamente y un cilindro de 3 mm
# excitado solo a través de las uniones; 27,2 y 13,2 mm/s en la octava de 500 Hz.
t_p, t_c, radius = 0.005, 0.003, 0.75
area_c = 2.0 * math.pi * radius * 2.0
area_p = 3.5 * 3.0 - math.pi * radius**2
sea = power_injection_clf(
    500.0, rho * t_p * area_p * 0.0272**2, rho * t_c * area_c * 0.0132**2,
    4.4e-3, 2.4e-3,
    flat_plate_modal_density(area_p, t_p, cl),
    float(cylindrical_shell_modal_density(500.0, area_c, t_c, radius, cl)[0]))

print(f"{float(sea.coupling_loss_factor12[0]):.2e}")   # 4.26e-04
print(f"{float(sea.coupling_loss_factor21[0]):.2e}")   # 3.91e-04
print(round(float(sea.input_power[0]), 2))             # 1.31 W
sea.plot(language="es")
plt.show()
```

</details>

Entre ambas vías hay dos formas cerradas, y son ellas con las que normalmente
se contrasta un valor medido. `right_angle_transmission_coefficient` da el
coeficiente de transmisión de onda de una unión de placas en ángulo recto sin
ninguna integración angular (Ecs. 6.53 a 6.55, según Bies y Hamid y Cremer et
al.); pasarlo a `coupling_loss_factor` reproduce idénticamente la Ec. (6.52)
de Norton, porque esa ecuación y la Ec. (2.154) de Hopkins son la misma
expresión en cuanto $c_\mathrm{g} = 2 c_\mathrm{B}$. Y `point_connection_coupling_loss_factor`
cubre las placas unidas en $N$ puntos discretos en vez de a lo largo de una
línea (Ec. 6.56). Cuál de las dos se aplica lo decide la longitud de onda de
flexión: la forma puntual cuando es menor que la longitud de la unión, y la
lineal cuando es mayor. Las dos difieren en pendiente además de en nivel,
$1/f$ frente a $1/\sqrt{f}$, así que atornillar y soldar no son
intercambiables a lo largo del espectro.

Cuando no se dispone de un valor independiente de los factores de pérdidas
internos, la inversión con una sola excitación queda indeterminada, y el
**método clásico de inyección de potencia** excita cada subsistema por turnos
midiendo ambas energías en cada caso: los dos estados que dibuja el esquema de
más arriba. Eso da cuatro ecuaciones para $\eta_1$,
$\eta_2$, $\eta_{12}$ y $\eta_{21}$ sin ninguna hipótesis previa, que
`power_injection_matrix` resuelve banda a banda, tomando los dos pares de
energías y las dos potencias inyectadas y sin necesitar ninguna densidad modal.
Cuesta una tanda más y elimina la medición que suele ser la más difícil de
conseguir (el decaimiento desacoplado), que es la razón de que sea la forma
clásica. Aplicado al ejemplo de plataforma y cilindro de la figura anterior
devuelve un `modal_density_ratio` de 0,919, frente a un cociente geométrico
`flat_plate_modal_density / cylindrical_shell_modal_density` de 0,919 para las
mismas estructuras: que coincidan es la comprobación.

La reciprocidad pasa entonces a
ser una *comprobación* de la medida en lugar de un dato de entrada:
`PowerInjectionResult.modal_density_ratio` es una propiedad, no una función, y
devuelve únicamente el $n_1/n_2$ que *implican* los factores de pérdidas por
acoplamiento medidos, $\eta_{21}/\eta_{12}$. Convertirlo en comprobación es
tarea del lector: compáralo con la relación construida a partir de la geometría
con `flat_plate_modal_density` y sus hermanas, y una discrepancia grande
significa que las fronteras de los subsistemas se trazaron en el sitio
equivocado. `coupling_strength` es el otro diagnóstico del mismo resultado, y
dice si la hipótesis de acoplamiento débil sobre la que se apoya la inversión
se sostiene siquiera.

## Qué cubre esta guía

Los coeficientes de transmisión de unión rígida, independientes de la
frecuencia, de Cremer, Heckl y Ungar (1973), tabulados por Craik (1981/1996) y
recogidos en Hopkins (2007, apartado 5.2.1.3), para las uniones X, T, L y en
línea de placas delgadas, homogéneas e isótropas: los parámetros de onda
$\chi$/$\psi$, los coeficientes de esquina y de tramo recto
$\tau_{12}(\theta)$/$\tau_{13}(\theta)$, su media angular en campo difuso, el
factor de pérdidas por acoplamiento SEA y el índice de reducción vibratoria
$K_{ij}$ del enfoque ondulatorio, mediante `junction_wave_parameters`,
`corner_transmission_coefficient`, `straight_transmission_coefficient`,
`angular_average_transmission_coefficient`, `inline_transmission_coefficient`,
`coupling_loss_factor`, `wave_vibration_reduction_index` y
`junction_transmission`.

La sección 6 cubre la vía **experimental** del capítulo 6 de Norton y Karczub:
el balance de potencia de dos subsistemas y su inversión in situ
(`power_injection_clf`, `power_injection_matrix`), las densidades modales de
barras, vigas, placas planas y envolventes cilíndricas de pared delgada con la
`ring_frequency` en torno a la que se reparten (`bar_modal_density`,
`beam_modal_density`, `flat_plate_modal_density`,
`cylindrical_shell_modal_density`), y las dos formas cerradas que quedan entre
ambas vías (`right_angle_transmission_coefficient`,
`point_connection_coupling_loss_factor`).

Este $K_{ij}$ predicho es una idealización en forma cerrada para una unión
rígida y simplemente apoyada, no una medición: el $K_{ij}$ medido y empírico a
partir de una diferencia de niveles de velocidad promediada en dirección (ISO 10848)
es el `vibration_reduction_index` separado de la [guía de Transmisión por
flancos en laboratorio](/phonometry/es/buildings/insulation/flanking-lab/). El
coeficiente de tramo recto $\tau_{13}$ no está definido para las geometrías de
unión T (2) y L, que no tienen una tercera placa colineal, así que ahí solo se
aplica el camino de esquina. Los coeficientes tabulados suponen además una
unión *simétrica* (placas opuestas idénticas), y aquí no hay forma cerrada
para una que no lo sea. Del lado experimental, la inversión de la sección 6
está escrita solo para **dos** subsistemas, y
`PowerInjectionResult.modal_density_ratio` es una comprobación de coherencia
que hace el lector, no una que automatice la biblioteca.

## Véase también

- [Predicción del aislamiento acústico (EN 12354)](/phonometry/es/buildings/design/insulation-prediction/):
  el modelo de flancos que consume $K_{ij}$ unión a unión.
- [Transmisión por flancos en laboratorio (ISO 10848)](/phonometry/es/buildings/insulation/flanking-lab/):
  la medición de $K_{ij}$ a partir de diferencias de niveles de velocidad, la
  contraparte empírica de las formas cerradas de esta página.
- [Potencia acústica estructural de equipos (EN 15657)](/phonometry/es/buildings/design/structure-borne-power/):
  la potencia de la fuente que estas transmisiones de unión reparten por el
  edificio.
- [Movilidad mecánica y la familia de FRF (ISO 7626-1)](/phonometry/es/vibration/structural/mechanical-mobility/):
  las movilidades de placa tras los parámetros de onda.
- Referencia de la API: [`vibration.structural.junction_transmission`](/phonometry/es/reference/api/vibration/junction-transmission/).
- Teoría: [Movilidades puntuales y eficiencia de radiación](/phonometry/es/reference/theory/vibration/#movilidades-puntuales-y-eficiencia-de-radiación-cremer-5-hopkins-29): la descripción en movilidades que hay detrás de una unión, y la eficiencia de radiación que lleva cada elemento.
