PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Waveguides+Hörner per Python für ABEC



rkv
07.04.2021, 18:41
Hallo,

über Ostern wollte ich mal was anderes machen und motiviert durch die Hornbastelei mit Onnos 2344-Clon habe ich mich an den Feiertagen mal in ABEC tiefer eingearbeitet. Natürlich will ich dann auch schnell verschiedene Schallführungsformen ausprobieren, aber da war ich dann schnell davon genervt, daß ich die Geometrie immer per Hand eintippen sollen. Und der Weg über Fusion->Gmesh->ABEC nervt auf Dauer auch ganz schön bzw. ist zeitraubend. Also habe ich mich gefragt, ob das nicht auch anders geht. Da ich beruflich bedingt, in der Karwoche Python gelernt habe, habe ich damit auch gleich ein kleines Skript geschrieben, dass mir die Sache erleichtert.
Derzeit macht dieses Skript erstmal nichts weiter als ein rotationssymmetrisches, konisches Horn zu parametrisieren. Es kann der Öffnunswinkel und die Grenzfrequenz festgelegt werden, optional kann der Hornmund mit einem frei wählbaren Radius und frei wählbarer Tiefe verrundet werden. Somit kann ich schonmal verschiedene Geometrieen zügig ausprobieren.
Das Skript möchte ich Euch nicht vorenthalten und habe es hier angehängt. Einfach das Projektarchiv entpacken, in den Projekt per Kommandozeile wechseln und python yawt.py aufrufen. Das ist alles noch sehr rudimentär, Parameter müssen noch mit einem Texteditor im Skript selber geändert werden.
Ich möchte in den kommenden Wochen sporadische weitere Geometrieen hinzufügen und auch andere Formen als Rotationssymmetrie sollen dazu kommen (deswegen ja ABEC und nicht AxiDriver). Trotzdem wäre es cool, wenn der eine oder andere mal draufschaut, ob die Ergebnisse plausibel sind.

Raphael

3eepoint
07.04.2021, 18:52
EDIT: Hat sich erledigt ^^

rkv
07.04.2021, 18:53
War zuschnell auf einer Taste, jetzt ist alles da.

rkv
10.04.2021, 17:20
Es gibt Nachschub, habe heute folgende Konturen hinzugefügt:
- Exponential
- Bezier (S. Waveguides von Samsung)
- Oblate-Spheroidal mit Superellipsenabschluss
- JFA's VarExpo aus diesem Thread: https://www.diy-hifi-forum.eu/forum/showthread.php?13448-Vergleich-von-Hornkonturen (https://www.diy-hifi-forum.eu/forum/showthread.php?13448-Vergleich-von-Hornkonturen&highlight=oblate)

Noch alles rotationssymmetrisch. Umbau auf rechteckig mache ich, sobald ich Lust dazu habe, vielleicht in einer der kommenden Mittagspausen.

Raphael

JFA
11.04.2021, 13:29
- JFA's VarExpo aus diesem Thread: https://www.diy-hifi-forum.eu/forum/showthread.php?13448-Vergleich-von-Hornkonturen (https://www.diy-hifi-forum.eu/forum/showthread.php?13448-Vergleich-von-Hornkonturen&highlight=oblate)

Donnerwetter! Hatte ich tatsächlich schon wieder vergessen, dass ich mal so etwas geschrieben hatte. Danke fürs Ausgraben.


- Bezier (S. Waveguides von Samsung)

Gibt es dazu nähere Infos?

rkv
11.04.2021, 13:55
Und ich warte noch auf das angekündigte Patent von Dir. ;)

Zum Samsung-Waveguide: https://www.aes.org/e-lib/browse.cfm?elib=19772

Der weisse Prototyp hat durchaus Ähnlichkeit zu den Waveguides in den JBL Synthesis Wandlautsprechern, wen wundert es bei den Eigentumsverhältnissen...

Raphael

JFA
11.04.2021, 16:10
Danke. In dem Paper geht es ja hauptsächlich um Optimierungsstrategien, und da bietet sich ein WG auf Basis von WG-Kurven wunderbar an, weil man über mehrere freie Parameter verfügt, die Kurve aber immer "glatt" bleibt, und eigentlich jedes CAD-Programm solche Kurven bzw. Flächen unterstützt (NURBSe basieren darauf).

Mit solchen WGs habe ich auch schon gearbeitet und u. a. auch in dem verlinkten Thread erwähnt: https://www.diy-hifi-forum.eu/forum/showthread.php?13448-Vergleich-von-Hornkonturen&p=183275&viewfull=1#post183275
Der allereinfachste Ansatz (aus CAD-Sicht) ist:
- Hornhalsdurchmesser definieren
- Hornmund definieren (gerne auch elliptisch oder rechteckig oder was überlagertes)
- Horntiefe definieren
- Randbedingungen definieren => am Hals senkrechter (bei Kalotten, bei HT-Treibern anders), am Mund tangentialer Abschluss
- Das CAD-Programm eine NURBS-Fläche einzeichnen lassen.

Man hat dann zwei freie Parameter (Tiefe und Mund, Hals ist ja meistens durch den Treiber bestimmt) über die man untere Grenzfrequenz und Abstrahlcharakteristik bestimmen kann. Klappt super mit SolidEdger (und wahrscheinlich mit allen anderen Parasolid-Modellern auch).

rkv
11.04.2021, 16:23
Wobei genau diese iterative Optimierung in dem Paper ja das eigentlich spannende ist. Wenn Comsol nicht so schweineteuer wäre...

ente
11.04.2021, 19:46
ATH - Advanced Transition Horns (at-horns.eu) (https://at-horns.eu/)
Acoustic Horn Design – The Easy Way (Ath4) - diyAudio (https://www.diyaudio.com/forums/multi-way/338806-acoustic-horn-design-easy-ath4.html)

Gruß
Heinrich

rkv
11.04.2021, 23:06
Kenn ich natürlich, aber ATH kann halt am Ende "nur" OS-SE in diversen Deformationen.

JFA
12.04.2021, 07:08
Wobei genau diese iterative Optimierung in dem Paper ja das eigentlich spannende ist. Wenn Comsol nicht so schweineteuer wäre...

Ich meine gelesen zu haben, dass ein Iterationsschritt oft schon reichen würde. Das deckt sich auch mit meinen manuellen Erfahrungen. Entscheidend sind halt die Anfangswerte. Wenn man da einfach nur ins Blaue hinein schießt, dann braucht man halt mehr Iterationen.

Z. B. das oben beschriebene NURBS-WG. Freie Parameter sind Tiefe und Mund. Dann gilt grob folgendes:
- Tiefe größer => untere Grenzfrequenz runter und mehr Gain*, dafür stärkeres Einschnüren
- Mund größer => weniger Gain, dafür breitbandiger und weniger starkes Einschnüren

Wenn man sich das Ziel vorher passend definiert kommt man dann mit einem oder zwei Iterationsschritten klar.

* Untenrum verhält sich so ein WG fast wie eine Transmissionline, mit maximalem Gain ungefähr bei lambda/4

rkv
12.04.2021, 10:30
Ich meine gelesen zu haben, dass ein Iterationsschritt oft schon reichen würde. Das deckt sich auch mit meinen manuellen Erfahrungen. Entscheidend sind halt die Anfangswerte. Wenn man da einfach nur ins Blaue hinein schießt, dann braucht man halt mehr Iterationen.


Dann habe ich mich wohl bei meinen bisherigen Versuchen wohl zu dösig angestellt... ;)

JFA
12.04.2021, 12:11
Ich habe früher immer den Fehler gemacht, zu viel im Klein-Klein zu verbessern, und nochmal und nochmal weiter zu optimieren. Inzwischen bin ich eher bei "ist gut genug jetzt". Klar, man kann auch noch das letzte herausholen, aber der Aufwand rechtfertigt meistens nicht das Ergebnis.


Außerdem: wenn das Gelumpe verkauft, muss man sich Raum für Verbesserungen lassen, so von wegen "Jetzt neu: verbesserte Rezeptur". Ich frage mich dann immer: "ja wie, war vorher scheiße, oder was?"

rkv
12.04.2021, 12:15
Ich habe früher immer den Fehler gemacht, zu viel im Klein-Klein zu verbessern, und nochmal und nochmal weiter zu optimieren. Inzwischen bin ich eher bei "ist gut genug jetzt". Klar, man kann auch noch das letzte herausholen, aber der Aufwand rechtfertigt meistens nicht das Ergebnis.


Außerdem: wenn das Gelumpe verkauft, muss man sich Raum für Verbesserungen lassen, so von wegen "Jetzt neu: verbesserte Rezeptur". Ich frage mich dann immer: "ja wie, war vorher scheiße, oder was?"

:D:D:D
Alles Trottel und Anfänger. ;)
Wie gut, dass ich da nichts verkaufen muss sondern einfach fröhlich vor mich hinbasteln kann.

pcmurx
12.04.2021, 13:01
Außerdem: wenn das Gelumpe verkauft, muss man sich Raum für Verbesserungen lassen, so von wegen "Jetzt neu: verbesserte Rezeptur". Ich frage mich dann immer: "ja wie, war vorher scheiße, oder was?"

Wenn man erkannt hat, das vorher scheiße war, kann man auch das vermarkten, wie fritz kola zeigt:
https://www.fritz-kola.de/2017/06/08/fritz-mate-jetzt-mit-gutem-geschmack/

Muss halt leider doch zum Rest des Marketings passen...

Ich muss die Tage dringend noch mal mit ABEC und den Python Skripten herumprobieren, das klingt wirklich spannend. Der komplizierte Workflow hat mich bisher auch wirksam daran gehindert, hier großartig Zeit zu investieren. Ein großes Dankeschön an Raphael!

Viele Grüße,
Stefan

rkv
12.04.2021, 13:52
Jo, mach das mal, ich bin gerade dabei, eine Funktion zu ergänzen, die auch gleich die ABEC-Projektdatei und die Observations-Skripte baut, damit man die sich nicht von woanders noch her kopieren muss.

rkv
13.04.2021, 16:37
Ein kleines Update. Das Skript erzeugt jetzt auch direkt das ABEC-Projekt und das Observation Skript um eine Ausgabe in VACS zu erzeugen.

Raphael