Se simula la respuesta libre del edificio de tres plantas a un impulso en la cubierta (S2); se aísla el primer modo con una máscara espectral entre \(0{,}8\) y \(1{,}5\) Hz, y se calcula la señal analítica.
Ver el código
functionrespuesta_libre(N, dt) M, C, K =edificio_tres_plantas() A, B =espacio_estados(M, C, K, [0.0, 0.0, 1.0]) Ad, Bd =discretizar_zoh(A, B, dt) Mi =inv(M) x =zeros(6) a =zeros(N)for k in1:N u = k ==1 ? 1.0e6:0.0 acc = Mi * ([0.0, 0.0, u] - C * x[4:6] - K * x[1:3]) a[k] = acc[3] x = Ad * x + Bd * [u]endreturn aendN, dt =4096, 0.01a =respuesta_libre(N, dt)t = (0:N-1) .* dtfr = [(k <= N ÷2 ? k : k - N) / (N * dt) for k in0:N-1]modo1 =real(ifft_radix2(fft_radix2(a) .* (0.8.<abs.(fr) .<1.5)))z1 =hilbert_analitica(modo1)env1, ph1 =abs.(z1), fase_instantanea(z1)ajuste =300:2500# sin los bordespendiente = ([ones(length(ajuste)) t[ajuste]] \log.(env1[ajuste]))[2]f_inst =diff(ph1[ajuste]) ./ (2π * dt)M0, _, K0 =edificio_tres_plantas()ω1=2π *modos_propios(K0, M0)[1][1]zeta_est =-pendiente / ω1(zeta_estimada = zeta_est, frecuencia_media =mean(f_inst), desviacion =std(f_inst))
La pendiente de \(\ln A(t)\) da \(\zeta=\) 0,998 % (verdadero: \(1{,}000\,\%\)) y la frecuencia instantánea media es 1,1051 Hz (verdadero: \(1{,}1048\) Hz), con una desviación de 0,0078 Hz que es, básicamente, el efecto del filtrado y del redondeo.
Figura 1: Respuesta libre de la cubierta tras aislar el primer modo (banda 0,8–1,5 Hz). Arriba, la señal y su envolvente (naranja). Abajo, el logaritmo de la envolvente con el ajuste lineal (negro) en el tramo sin bordes; su pendiente es \(-\zeta\omega_n\).
Qué falla si no se filtra. Con la respuesta completa (tres modos), la «frecuencia instantánea» oscila entre valores como -36 Hz y 12 Hz: es el batido de tres componentes, no la frecuencia de nada.