🔬 Metamateriały akustyczne
Układy rezonatorów Helmholtza mniejszych od długości fali nadają materiałowi efektywny ujemny moduł ściśliwości w pobliżu rezonansu, otwierając akustyczne pasma zabronione i umożliwiając ujemną refrakcję dźwięku.
Jak to działa
Ten symulator wzbudza jednowymiarowy łańcuch N lokalnie rezonansowych komórek elementarnych falą płaską o częstotliwości f i oblicza, komórka po komórce, czy ta częstotliwość rozchodzi się przez sieć, czy zanika ewanescentnie wewnątrz akustycznego pasma zabronionego. Efektywny moduł ściśliwości K_eff(ω) jest wyznaczany bezpośrednio z modelu oscylatora Lorentza wbudowanych rezonatorów zbliżonych do Helmholtza, a ten sam wzór napędza zarówno animowaną sieć, jak i krzywą transmisji w funkcji częstotliwości poniżej.
Każda komórka elementarna tej jednowymiarowej sieci zawiera mały lokalny rezonator — element masa-sprężyna przypominający rezonator Helmholtza o częstotliwości własnej (kątowej) ω₀ = √(k/m) — słabo sprzężony z ośrodkiem tła, który w innym przypadku przenosiłby dźwięk ze stałą prędkością. Z dala od ω₀ rezonatory reagują ledwie zauważalnie, a sieć zachowuje się jak zwykły ośrodek sprężysty. Blisko ω₀ rezonatory pochłaniają jednak i ponownie promieniują energię z opóźnieniem fazowym, które może odwrócić znak efektywnego, zależnego od częstotliwości modułu ściśliwości materiału K_eff(ω) — dyspersja oscylatora Lorentza znana z optyki, przeniesiona do akustyki.
Wszędzie tam, gdzie K_eff(ω) jest ujemny, równanie falowe nie dopuszcza rozwiązania propagującego się: liczba falowa staje się urojona, a fala padająca zanika wykładniczo wraz z odległością zamiast oscylować w sieci. Ten zabroniony zakres częstotliwości to akustyczne pasmo zabronione. Ponieważ rezonatory można zbudować znacznie mniejsze niż kontrolowana przez nie długość fali dźwiękowej, to lokalnie rezonansowe pasmo zabronione otwiera się przy częstotliwościach, które normalnie wymagałyby sieci wielokrotnie większej (jak w zwykłych fononicznych kryształach rozpraszających Bragga) — to jest kluczowa sztuczka metamateriałów akustycznych.
🔬 Co przedstawia
Żywa sieć N komórek, której chwilowe wychylenie jest obliczane z zespolonej liczby falowej k(f), więc wzbudzana fala albo płynnie propaguje się przez łańcuch, albo zanika wykładniczo w ciągu kilku komórek — plus krzywa transmisji w funkcji częstotliwości, obliczona z tego samego modelu K_eff(ω), która analitycznie wyznacza pasmo zabronione.
🎮 Jak korzystać
Ustaw rezonans komórki elementarnej f₀, siłę sprzężenia ωp (szerokość pasma zabronionego), tłumienie γ, częstotliwość wzbudzenia f oraz liczbę komórek N, a następnie obserwuj, jak wskaźnik stanu przełącza się między „Propagacja” a „Pasmo zabronione (ewanescencja)”, gdy f przekracza [f₀, √(f₀²+fₚ²)]. P wstrzymuje, R resetuje.
💡 Czy wiesz, że?
Lokalnie rezonansowe kryształy soniczne mogą otworzyć pasmo zabronione przy długościach fali kilkadziesiąt razy większych niż sama komórka elementarna — w przeciwieństwie do zwykłych fononicznych kryształów z pasmem Bragga, które potrzebują komórki o rozmiarze porównywalnym z połową długości fali dźwiękowej, by zablokować tę samą częstotliwość.
Najczęściej zadawane pytania
Dlaczego wyświetlany zakres pasma zabronionego zależy tylko od f₀ i fₚ, a nie od tłumienia?
Funkcja bandGapEdges() zwraca [params.f0, Math.sqrt(f0*f0+fp*fp)] — miejsce zerowe nietłumionej formy Lorentza z keffOf(); tłumienie γ wpływa jedynie na część urojoną mianownika wewnątrz keffOf(), co wygładza i spłaszcza przejście na krawędziach, zamiast przesuwać same nominalne krawędzie.
Jak suwak tłumienia zmienia obraz, nie zmieniając odczytu [f_low, f_high]?
Zwiększenie params.gamma podnosi część urojoną mianownika wewnątrz keffOf(f), co podnosi Im(waveNumberOf(f)) nawet dla częstotliwości spoza nominalnej luki — więc wyższe tłumienie dodaje rzeczywiste straty w regionie „propagującym” na sieci i krzywej transmisji, podczas gdy analityczne wartości pasma zabronionego pokazane w statystykach pozostają stałe.
Dlaczego zwiększenie liczby komórek elementarnych N zmienia obwiednię zaniku, ale nie sam wzór transmisji?
transmissionAt(f) oblicza Math.exp(-waveNumberOf(f).im * params.N); zwiększenie N jedynie mnoży tę samą szybkość zaniku na komórkę przez większy wykładnik, więc dłuższa sieć tłumi częstotliwość z pasma zabronionego znacznie mocniej, podczas gdy keffOf() i waveNumberOf() — fizyka na komórkę — nigdy się nie zmieniają wraz z N.
Dlaczego część urojona k jest wymuszana jako nieujemna w waveNumberOf()?
waveNumberOf() oblicza zespolony pierwiastek kwadratowy z ρ₀/K_eff(ω), a następnie stosuje Math.abs() do jego części urojonej przed przeskalowaniem przez ω, wybierając fizycznie przyczynową gałąź, tak aby energia zawsze zanikała z dala od wzbudzanej lewej krawędzi sieci, a nie sztucznie rosła — to poprawne zachowanie dla pasywnego, stratnego ośrodka.
Dlaczego zwiększenie siły sprzężenia ωp poszerza pasmo zabronione, zamiast przesuwać jego środek?
params.fp wchodzi do bandGapEdges() tylko wewnątrz pierwiastka kwadratowego jako f_high = √(f0² + fp²), więc większe fp przesuwa górną krawędź na zewnątrz, podczas gdy f_low pozostaje przypięte do params.f0 — dokładnie zgodnie z fizycznym obrazem, że silniejsze sprzężenie między ośrodkiem nośnym a lokalnymi rezonatorami poszerza zakres częstotliwości, w którym keffOf() pozostaje ujemne.