Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Hörner und Waveguides mit ATH: Austausch, Tips & Tricks
#1
Hallo Freunde der gerichteten Schallabstrahlung,

hier soll es um die Definition und Simulation von Hörnern und Waveguides unter Nutzung des Tools "Advanced Transition Horn" ATH von Marcel Batik (mabat) gehen.
Das ist kein Tutorial, dafür ist die Originalanleitung besser geeignet, sondern um Erfahrungsaustausch.

Was das ist, kann dem Steckbrief im Threat zu aktuellen Tools entnommen werden:
https://diy-hifi-forum.eu/showthread.php...#pid331831

Schritt 0: Einrichten
Zunächst sollte man sich das Tool herunterladen:
https://at-horns.eu/release/ath-2025-06.zip

Es arbeitet rein skriptbasiert (was ein Riesenvorteil ist, weil es schnell geht). D.h. ein guter Texteditor wie Notepad++ mit Syntaxhighlighting ist von Vorteil.

Parallel hilft es die Anleitung offen zu haben:
https://at-horns.eu/release/Ath-4.8.2-UserGuide.pdf

Um die Toolchain für die Simulation zu komplettieren, benötigt man ein Mesh-tool. ATH unterstützt nativ gmsh
Und für die Simulation des akustischen Verhaltens eine BEM Simulation, ideal ABEC (wird von ATHdirekt unterstützt) bzw. aktuell eben AKABAK.
Das lässt sich weiter Fortsetzen in CAD und die automatische Reportgenerierung mit gnuplot. Das würde ich erst mal weglassen. Kann manspäter noch hinzufügen.

ATH selbst erstellt die Horngeometrie (geo-file), die anschließende in ein Netz (msh-file) durch gmsh gewandelt wird.
Außerdem erstellt ATH ein ABEC-Projekt, welches sich in AKABAK importieren lässt.

Zunächst wird das zip File in einen geeigneten Ordner entpackt und das Konfig-file (ATH.cfg) angepasst. Da sind die Pfade für die Tools drin:
Bei mir:
Code:
OutputRootDir = "C:\users\XXX\Documents\Audio\ATH\Horns"
;MeshCmd = "gmsh %f -"
;GnuplotPath = "C:\Program Files\gnuplot\bin\gnuplot"

Offensichtlich habe ich gmsh und gnuplot auskommentiert, da ich das unter Linux nutze und die Linux-Version von gmsh nutze. Dafür muss ich eben manuell gmsh ausführen.

Der Ordner, in dem die exe lebt sollte sich vom Ordner der Horndefinitionen und Ergebnisse unterscheiden, damit man einfacher eine neue Version des Tools nutzen kann.
Bei mir sind die Horn-configs in
Code:
/home/XXX/Dokumente/Audio/ath-2025-06/Ath-4.7.0/demos/

ATH legt die Ergebnisse dann in 
Code:
...\Documents\Audio\ATH\Horns
jeweils in einem Subordner mit dem Namen der Horn-Konfig ab.

Schritt 1: ATH ausführen:
Gut, zum Einstieg lohnt es sich mit den Demos loszulegen. Die Demos eignen sich hervorragend nachher an eigene Bedürfnisse angepasst zu werden.
Bsp. (nochmal, ich nutze Linux unter windows dann ohne Wine aufrufen):
Code:
wine ath.exe ../Ath-4.7.0/demos/demo1.cfg

-destination directory: C:\users\XXX\Documents\Audio\ATH\Horns\demos\demo1
-calculating profiles
Maximum radius: 126.818 mm (253.636 mm diameter)
-writing ABEC project
-writing geo file bem_mesh.geo
-average mesh throat angle: 7.000 deg
-matched wavefront radius: 104.210 mm
Warning: nothing defined for MeshCmd
-IB offset set to 94.000 mm
Warning: nothing defined for MeshCmd
-exporting grid ''
Done.

Device width x height = 253.64 x 253.64 mm (9.986 x 9.986")
Device length =         94.00 mm (3.701")

Wie geschrieben, rufe ich gmsh manuell auf, wenn man das konfiguriert hat, erfolgt der Aufruf automatisch (s.o.):
Code:
cd /home/XXX/Dokumente/Audio/ATH/Horns/demos/demo1/ABEC_InfiniteBaffle/

gmsh bem_mesh.geo -

Schritt 2: Simulation in AKABAK:
Nun AKABAK öffnen und mit Projekt öffnen (CTRL+O) das abec-file öffnen

Die gewählte Demo simuliert das Horn in einer unendlichen Schallwand. 
Code:
ABEC.SimType = 1 ; 1 = infinite baffle


Leider ist die Kompatibilität zwischen ABEC Skripten und AKABAK zwar gut aber trotzdem muss man etwas nacharbeiten.
In der gewählten Demo muss in der solver.txt die zweite Subdomain (exterior) eingefügt werden - die fehlt leider zunächst.
D.h. die Zeile
Code:
SubDomain_Properties
  SubDomain=2; ElType=Exterior
wird eingefügt, sieht dann so aus:
Code:
Control_Solver
  f1=1000; f2=10000; NumFrequencies=20
  Abscissa=log; Dim=3D; MeshFrequency=1000; Sym=xy

MeshFile_Properties
  MeshFileAlias="M1"; Scale=1mm


SubDomain_Properties
  SubDomain=1; ElType=Interior

Elements "SD1G0"
  Subdomain=1; MeshFileAlias="M1"
  101 Mesh Include SD1G0

Elements "SD1D1001"
  Subdomain=1; MeshFileAlias="M1"
  102 Mesh Include SD1D1001

Driving "S1001"  // horn driver
  RefElements="SD1D1001"; DrvGroup=1001;

Elements "I1-2"
  SubDomain=1,2; MeshFileAlias="M1"
  103 Mesh Include I1-2
 
SubDomain_Properties
  SubDomain=2; ElType=Exterior

Infinite_Baffle
  Subdomain=2; Position=z offset=94.000mm

Die  Subdomain 2 lässt sich natürlich auch über die GUI einfügen.
Die unendliche Schallwand fehlt dann immer noch. Kann das an der Reihenfolge in der solving.txt liegen?
Egal, ich habe die über die GUI manuell eingefügt und über den Offset-Parameter in den Hornmund gelegt (z-Richtung 94 mm).

Nun das Fixed Driving aktivieren (F12) und im Observation Tab einmal die Radiation Impedance öffnen und Apply klicken. Sonst wird die in VACS nicht angezeigt.

Nun simulieren und die Ergebnisse sollten in VACS angezeigt werden.

Übrigens, das Problem mit der Infinite Baflle und den Subdomains hat man für die Simulation von FreeStandingHorn nicht.
Code:
ABEC.SimType = 2


Soweit erst mal für den Anfang.
Ich würde im nächsten Schritt tatsächlich mal genauer auf die FreeStanding Simulatin schauen und v.a.die verschiedenen Möglichkeiten die Horngeometrie festzulegen anschauenen.

Btw.: wie lassen sich hier eigentlich screenshots einfügen?

Bis dann
André
Zitieren

#2
(06.02.2026, 22:27)ansch schrieb: Btw.: wie lassen sich hier eigentlich screenshots einfügen?

Nur kurz, muss gleich arbeiten gehen: Hier hatte ich mal kurz beschrieben, wie man Bilder einfügen kann.
Viele Grüße
Michael
Zitieren

#3
Hallo zusammen,

zunächst vielen Dank an Azrael.
Mal sehen ob ich hier jetzt screenshots rein bekomme...

Was ich als extrem genial finde, ist die Möglichkeit Hörner beliebiger Konturen rein mathematisch zu beschreiben und dann zu simulieren.

Die von mabat entwickelte Gleichung für OSSE mit seinen Parametern und was sie machen ist in desem Paper beschrieben:
https://at-horns.eu/release/OS-SE%20Waveguide.pdf

Das Paper für R-OSSE ist entsprechend:
https://at-horns.eu/release/R-OSSE%20Wav...20rev7.pdf


Das Handbuch gilt eigentlich für die Version 4.8.2. Inzwischen ist die Entwicklung weitergegangen und neue Möglichkeiten dazugekommen, die leider noch nicht im Handbuch sind.
Das gilt z.B. für die Möglichkeit die horizontale und vertikale Kontur unabhängig festzulegen. Das führt letztlich zu rechteckigen Hörnern mit jeweils eindimensional gekrümmten Flächen.
Das finde ich gerade die für mich spannende Möglichkeit. Daher hier mal ein Beispiel in verschiedenen akustischen Umgebungen.

Zunächst einfach freistehend. (ABEC.SimType=2). Dabei wird auch ein rückseitiges Netz erzeugt. Akustisch sicher die härteste Bedingung, da die Einschnürung am unteren Übertragungsende am stärksten ausgeprägt ist. Man kann nun die Hornparameter so variieren, dass die Einschnürung weitgehend unterdrückt wird und ansonsten der gewünschte Abstrahlwinkel möglichst gut eingehalten wird.

Der Import in Akabak funktioniert direkt und mit minimaler Nachbearbeitung. Nur den Antrieb festlegen (Fixed Driving) und für die VACS-Ausgabe die die Ausgabe der Radiation Impedance bestätigen:

Akabak-Fenster:
   

VACS horizontal und vertikal:
       

Das Ganze für unendliche Schallwand sieht so aus (ABEC.SimType=1; beim Import wie im ersten Post beschrieben, noch die externe Subdomain und das Interface anlegen):
       

Und dann noch die Variante mit Gehäuse:
Das Gehäuse wurde wie im Hanbuch in Abschnitt 6.12.1 beschrieben als einfaches rechteckiges Gehäuse mehr oder weniger automatisch generiert.
   

VACS-Ergebnisse:
       

Das Skript dazu ist wie folgt aufgebaut:

Der Typ der Horngenerierung als explizit H/V-Kontur:
Code:
HornGeometry = 2

Hals festlegen und Hornlänge (hier für 1,4" Treiber):
Code:
Length = 280
Throat.Diameter = 36
Throat.Angle = 0

Dann das erste Segment, welches die Rund-Eckig Transformation festlegt, definieren. Hier kann manexplizite Difraktionsspalte erzeugen (so man denn möchte...). Wenn man dieses Segment mit Länge 0 festlegt, erhält man einen rechteckigen Hornhals. Nützlich, wenn man AMTs o.ä. anschließen möchte. 
Der Parameter ZMap legt den Übergang der Meshgröße von Hals bis Ende erstes Hornsegment fest.
Über den Parameter k lässt sich die Flächenkrümmung variieren.
Code:
Horn.Adapter = {
  L = 40
  k = 1
  Width = 36
  Height = 40
  SC = 0
  Segments = 12
  ZMap = 0.5,0.4,0.5,0.5
}

Nun folgt das  erste Hornsegment. Davon lassen sich mehrere hintereinander hängen:
Code:
Horn.Part:1 = {
  L = 0.985
  Segments = 19
  H = {
    r0 = 25.4
    a0 = 17
    k = 1.0
    s = 0.65
    a = 35
    n = 4.75
    q = 0.996
  }
  V = {
    r0 = 25.4
    a0 = 14
    k = 1.0
    s = 0.2
    a = 20
    n = 4
    q = 0.996
  }
}

Übrigens, wie man oben sieht, werden die Winkel echt gut eingehalten...

Dann folgen die Festlegungen für das Mesh:
Code:
; -------------------------------------------------------
; Mesh Setting
; -------------------------------------------------------

Mesh.AngularSegments = 128
Mesh.ThroatResolution = 5
Mesh.MouthResolution = 15
Mesh.InterfaceResolution = 8
Mesh.RearResolution = 20
Mesh.SubdomainSlices =
Mesh.InterfaceOffset = 0
Mesh.WallThickness = 10

Die Vorgaben für ABEC (AKABAK):
Code:
; -------------------------------------------------------
; ABEC Project Setting
; -------------------------------------------------------

ABEC.SimType = 2
ABEC.f1 = 200 ; [Hz]
ABEC.f2 = 16000 ; [Hz]
ABEC.NumFrequencies = 120
ABEC.MeshFrequency = 1000 ; [Hz]

ABEC.Polars:SPL_H = {
  MapAngleRange = -180,180,73
  Distance = 2
}

ABEC.Polars:SPL_V = {
  MapAngleRange = -180,180,73
  Distance = 2
  Inclination = 90
}

...und schließlich noch die ATH-Ausgaben:
Code:
; -------------------------------------------------------
; Output
; -------------------------------------------------------

Report = {
  Title = "DS6"
  PolarData = SPL_H
  NormAngle = 0
  Width = 1000
  Height = 700
}

Output.STL = 0
Output.ABECProject = 1


In dem Beispiel mit Gehäuse, wurde dieses wie folgt definiert:
Code:
;--------------------------------------------------------
;Enclosure
;--------------------------------------------------------
_Mesh.Enclosure = {
Spacing = 30,30,30,400 ; edge distances (left,top,right,bottom) [mm]
Depth = 400 ; enclosure depth [mm]
EdgeRadius = 20 ; radius of the edge treatment [mm]
EdgeType = 1 ; 1=rounded, 2=chamfered
FrontResolution = 8,8,16,16 ; front side mesh element size (q1,q2,q3,q4) [mm]
}

Was mich interessieren würde, hat sonst noch jemand hier ATH schon mal ausprobiert? Wie sind die Erfahrungen?

Viele Grüße
André
Zitieren

#4
(09.02.2026, 21:01)ansch schrieb: Hallo zusammen,



Was mich interessieren würde, hat sonst noch jemand hier ATH schon mal ausprobiert? Wie sind die Erfahrungen?

Viele Grüße
André

Ich habe aus Neugier mal das Skript vom Tritonia S laufen lassen, da ich gerade ein Waveguide für den SB26ADC entwickeln will. Konstruktives kann ich hier nicht beitragen, da ich noch ganz in den Anfängen stecke. Das Tool an sich finde ich aber total genial und Deinen Thread hier sehr hilfreich!

Viele Grüße
Sebastian
Zitieren



Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste

Deutsche Übersetzung: MyBB.de, Powered by MyBB, © 2002-2026 Melroy van den Berg.