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

[Daños en estructuras por vibración](/phonometry/es/vibration/structural/structural-damage/)
lee una velocidad medida frente a un valor de referencia que depende de la
frecuencia, y en el plano de la última planta deja de depender de ella porque
el edificio responde en la suya. Las dos lecturas dan por hecho que sabes más o
menos dónde está esa frecuencia propia. Esta página es lo que dice ISO 4866
cuando no puedes medirla.

Mídela si puedes: eso es el cuerpo de la norma y va primero. El anexo D es el
recurso de reserva, para cuando no se puede medir directamente, o un
amortiguamiento alto, las resonancias de subcomponentes u otros problemas
prácticos limitan lo que vale la medida. Ofrece cuatro predictores y es franco
con todos.

## 1. Cuatro predictores, y de qué están hechos

El más simple cuenta plantas. $f = 10/n$ hercios, que es la misma regla que
imprime DIN 4150-3 en su 6.4 y que esta biblioteca ya publica como
`storey_fundamental_frequency`; aquí es el modelo ``"storeys"``, para poder
comparar los cuatro predictores por la misma puerta.

Los otros tres son las formas que toma el periodo $T$ en las normas nacionales,
cada una con un coeficiente en el que esas normas no se ponen de acuerdo:

$$
T = k_1 h \qquad
T = \frac{k_2 h}{\sqrt{b}} \qquad
T = \frac{k_3 h}{\sqrt{b}} \sqrt{\frac{h}{h + b}}
$$

con $h$ la altura y $b$ la anchura paralela a la fuerza, las dos en metros. La
primera solo sabe lo alto que es el edificio. La segunda añade lo ancho que es,
que es lo que de verdad se opone al balanceo. La tercera añade un factor de
esbeltez, $\sqrt{h/(h+b)}$, siempre menor que 1, que acorta el periodo respecto
a la segunda forma. Lo acorta *menos* en un edificio alto y estrecho, donde el
factor se acerca a 1, y más en uno bajo y ancho.

El D.2 imprime un **intervalo** para cada coeficiente en vez de un valor: de
0,014 a 0,03 para $k_1$, de 0,087 a 0,109 para $k_2$, de 0,06 a 0,08 para
$k_3$. El intervalo es la dispersión entre las normas de las que los recogió, y
el anexo no da ningún criterio para elegir dentro de él, así que
`fundamental_period` toma el punto medio salvo que se le indique un
coeficiente.

*El edificio que el código de abajo describe dos veces, y lo que cada predictor
toma de él. Las tres formas normativas dan un periodo y un intervalo para su
coeficiente, así que en un mismo edificio dan un tramo y no una frecuencia; el
ajuste a la medida da un único valor, alrededor del cual errores del ± 50 % no
son raros, y para el amortiguamiento no hay ningún método probado.*

Los cuatro predictores toman argumentos distintos, así que compararlos obliga a
describir el mismo edificio dos veces: dieciocho plantas de poco más de tres
metros son los sesenta metros que reciben los otros tres.

```python
from phonometry import vibration

# El mismo edificio de sesenta metros, quince de ancho, por cada uno de los cuatro.
for model, kwargs in (
    ("storeys", {"storeys": 18}),        # 18 plantas, de unos 3,3 m
    ("height", {"height_m": 60.0}),
    ("height_width", {"height_m": 60.0, "width_m": 15.0}),
    ("slenderness", {"height_m": 60.0, "width_m": 15.0}),
):
    f = vibration.fundamental_frequency(model, **kwargs)
    print(model, round(f, 2), "Hz")
# storeys 0.56 Hz / height 0.76 Hz / height_width 0.66 Hz / slenderness 1.03 Hz
```

## 2. El ajuste a la medida, y el error que admite

El D.2 cierra dejando las normas a un lado y ajustando una curva a los datos:
163 edificios de planta rectangular dan $f = 46/h$ hercios, o lo que es lo
mismo $T = 0{,}022\,h$ segundos. De esa recta merece la pena llevarse dos cosas.

La primera es discreta y esta biblioteca la fija con un test: **0,022 es
también el punto medio del intervalo de $k_1$** que abarcan las normas. La más
antigua y tosca de las formas normativas, tomada en el centro de su
dispersión, es el ajuste medido.

La segunda es la franqueza del anexo con la exactitud. Alrededor de esa recta,
errores del **± 50 % no son raros**, y el D.2 dice que eso es lo típico de lo
que puede dar una fórmula empírica. El D.3 añade después algo que el lector no
espera: la correlación entre las frecuencias *calculadas* con un modelo
estructural al uso y las medidas es **peor** que la correlación con $46/h$,
porque un modelo vale lo que valga su idea de con qué está hecho el edificio.

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

```python

from phonometry import vibration

heights = np.logspace(np.log10(6.0), np.log10(250.0), 300)
fit = np.asarray(vibration.height_fundamental_frequency(heights))

fig, ax = plt.subplots()
ax.fill_between(
    heights,
    fit * (1.0 - vibration.EMPIRICAL_FREQUENCY_TOLERANCE),
    fit * (1.0 + vibration.EMPIRICAL_FREQUENCY_TOLERANCE),
    alpha=0.2,
    label=r"$\pm$50 %",
)
ax.loglog(heights, fit, label="$f = 46/h$")

# Las tres formas normativas encima, para un edificio cuatro veces más alto
# que ancho, que es lo que las hace comparables en un mismo eje.
for model in ("height", "height_width", "slenderness"):
    values = [
        vibration.fundamental_frequency(
            model,
            height_m=float(h),
            **({} if model == "height" else {"width_m": float(h) / 4.0}),
        )
        for h in heights
    ]
    ax.loglog(heights, values, "--", label=model)

ax.set(xlabel="Altura del edificio $h$ [m]",
       ylabel="Frecuencia fundamental $f$ [Hz]")
ax.grid(True, which="both", alpha=0.3)
ax.legend()
plt.show()

# Una estimación, dibujada sobre esa misma recta con su banda:
res = vibration.estimate_fundamental_frequency(
    "height_width", height_m=60.0, width_m=15.0
)
print(round(res.frequency_hz, 2), tuple(round(b, 2) for b in res.bounds_hz))
# 0.66 (0.33, 0.99)
res.plot(language="es")
plt.show()
```

</details>

*Los predictores unos frente a otros. La forma en altura cae sobre el ajuste
medido porque el centro de su intervalo de coeficiente es el coeficiente del
propio ajuste. El panel de la derecha es lo que cuesta la elección: en un
edificio, elegir norma en lugar de fórmula mueve el resultado un factor de
dos.*

## 3. Amortiguamiento, que no predice nadie

El D.4 es corto y su brevedad es el mensaje. No existe ningún método probado
para predecir el amortiguamiento. Lo que el anexo aporta son medidas: entre el
**0,5 % y el 2,1 %** del crítico en diez edificios donde la interacción
suelo-estructura era despreciable, y con los dos modos de traslación
ortogonales de un mismo edificio a menudo muy separados. El amortiguamiento
depende en parte del procedimiento de construcción y de la ejecución, así que
cuenta con errores grandes.

```python
from phonometry import vibration

low, high = vibration.DAMPING_RATIO_RANGE
print(f"{100 * low:g} % to {100 * high:g} % of critical")   # 0.5 % to 2.1 %
```

La biblioteca publica el intervalo y ningún estimador, que es la forma honesta
del D.4: un número con el que contrastar una caída medida, no uno que suponer.

## Qué cubre esta guía

Los cuatro **predictores empíricos** del anexo D: la regla por plantas del D.2,
las tres formas normativas (D.1), (D.2) y (D.3) con los intervalos de
coeficiente que el D.2 imprime para cada una, y el ajuste $f = 46/h$ con el que
cierra el D.2, como frecuencias o como periodos.

El **error** que llevan esas predicciones: la banda del ± 50 % del D.2,
publicada como constante y como cotas alrededor de cualquier predicción.

El **intervalo de amortiguamiento** medido en el D.4, como intervalo y no como
estimador, porque el anexo no ofrece ninguno.

**Aquí no se mide ninguna frecuencia.** El cuerpo de ISO 4866, que es la medida
para la que este anexo es el recurso de reserva, no está implementado: ni
requisitos de captadores, ni adquisición de datos, ni extracción modal de una
respuesta medida.

**Las clasificaciones no están.** El anexo B clasifica edificios, cimentaciones
y suelos en los grupos y clases que deciden qué tolerancia le corresponde a una
estructura, y el anexo A da rangos de respuesta estructural; los dos se
describen en la norma y ninguno se implementa. El anexo E, la interacción
vibratoria entre la cimentación y el terreno, también queda fuera.

**Ningún modelo de ordenador.** El D.3 cita los métodos ESDU para edificios de
núcleo, de cortante y de pórtico, y dice que a un método no calibrado contra
datos experimentales fiables no se le debe suponer más exactitud que a los
predictores empíricos. Ninguno de ellos está aquí, y esta página no sustituye a
uno.

## Véase también

- [Daños en estructuras por vibración (DIN 4150-3)](/phonometry/es/vibration/structural/structural-damage/):
  la pregunta por el daño para la que se estima una frecuencia de edificio, y
  donde también aparece la regla por plantas; sus valores de referencia se leen
  a la frecuencia dominante de la vibración medida, no a la que aquí se
  predice.
- [Evaluación de la vibración de máquinas (ISO 20816-1)](/phonometry/es/vibration/machinery/machine-vibration-evaluation/):
  la misma idea de criterio conformado en frecuencia, aplicada a una máquina.
- [Movilidad mecánica y la familia de FRF (ISO 7626-1)](/phonometry/es/vibration/structural/mechanical-mobility/):
  el vocabulario en el que se expresa una respuesta medida, cuando la hay.
