HIFI-FORUM » Do it yourself » Lautsprecher » Mathemathik-Nüsschen | |
|
Mathemathik-Nüsschen+A -A |
||||
Autor |
| |||
castorpollux
Inventar |
21:43
![]() |
#1
erstellt: 02. Okt 2008, |||
Hallo allemagne! folgendes: ich bastele gerade an einem Akabak-Script, bei welchem man nicht nur die Position des Lautsprechers in einer Transmissionline beliebig festlegen kann, sondern nebenher auch noch Verjüngung oder Erweiterung der TL parametrisch festlegen kann. Das geht zwar prinzipiell so schon, dann bräuchte ich aber jeweils ein Script für verjüngende, gleichmäßig verlaufende sowie sich erweiternde, also 3 scripts, nur um mal eben zwischen erweiternden, verjüngenden und gleichmäßigen Lines hin und her zu wechseln - schlecht :-D Um das ganze nun insgesamt parametrisieren zu können, muss ich die TML-Fläche bei gegebener Wegstrecke vom Anfang weg berechnen können. Relativ betrachtet geht das einfach, weil sich außer der Höhe auf der Lauflänge der TL im Script nichts ändert. Praktisch ist das gar nicht so einfach, aber erst mal ein paar Bilder: ![]() Ein Trapez, kennen wir alle aus dem Geometrie-Unterricht, ist die Basis für meine Überlegungen. Genau genommen ist eine Transmissionline im Querschnitt betrachtet meist nichts anderes: ![]() Dies stellt eine sich verjüngende TML dar, eine der drei möglichen Formen. Schaut man sich das so an, so lässt sich sehen, das Seite a, b, und c sowie die Winkel beta und gamma bekannt sind: a=6cm (Stellvertretend für die Höhe/Fläche der TL am Anfang) b/h=20cm (die Länge der TL) c=2cm (Stellvertretend für Höhe/Fläche der TL am Ende/Ausgang) beta/gamma=90Grad - der einfachheit wegen, für die mathematik reicht es, wenn eine Seite schräg steht ![]() Das gute an dieser aktuellen Situation ist: man kann den Winkel alpha berechnen über alpha=arctan ((2*h) / (a-c)) Wenn ich alpha habe, kann ich C berechnen über eine weitere Formel, bei jeder gegebenen Seitenlänge von b(Höhe/Länge der TL) - genau das, was ich brauchen würde. Das problem ist, es funktioniert nur, wenn Seite C kleiner ist, als A. Ist sie gleich groß, liefert obige Formel eine division durch null und damit einen Fehler. Ist sie größer, ist das Ergebnis negativ. Beides mag Akabak gar nicht :-D ...eine "IF"-Funktion vermisse ich in Akabak leider, sonst hätte ich mir schon zu helfen gewusst.
Mancher mag sich an dieser Stelle schon fragen, warum ich das hier so umständlich aufziehe... es ist so, das ich das gerne per Formel automatisieren und vereinfachen möchte. Sicher könnte ich vor jeder Berechnung manuell herausfinden, wo welche Winkel anliegen, aber da kann ich auch weiterhin drei Scripte pflegen, das macht keinen Spaß. Im Script wird Seite A immer der Anfang der Line sein und Seite C immer das Ende - die oben bekannten/genannten Werte sind daher bei jeder Berechnung bekannt und bis auf die Winkel variabel, da kann ich akabak nicht die entscheidung überlassen, was wo ist...no good ![]() Und eigentlich brauche ich ja nur eine Formel, mit der ich Alpha ausrechnen kann UND über die immer ein positiver Wert zwischen 1 und 179 herauskommt...irgendwelche Mathe-Asse hier? ![]() ![]() Viele Grüße, Alex |
||||
Bee
Inventar |
22:09
![]() |
#2
erstellt: 02. Okt 2008, |||
Hallo Alex, ich hab' aus Deiner Beschreibung noch nicht verstanden, welche Form die Formel haben muß bzw. was sie ausspucken soll. Wahrscheinlich schon zu spät heute.... ![]() ![]() Wird der Querschnitt entlang der Länge benötigt, oder womit rechnet das ganze? |
||||
|
||||
not0815
Inventar |
22:15
![]() |
#3
erstellt: 02. Okt 2008, |||
Hi, mir ist zwar nicht ganz klar was Du im Ergebnis errechnen willst, aber das Problem mit der "Null im Nenner" kann einem beim Programmieren ganz schön nerven. Ich verhindere die "Null im Nenner" beim Programmablauf immer durch Addition eines sehr sehr kleinen Wertes der aber das Ergebnis praktisch nicht mehr beeinflusst. Und durch setzen des Nenner als Absolut sind die Winkelwerte auch immer positiv. Beispiel: X = 0,000000000....01 alpha=arctan ((2*h) / (ABS(a-c)+ X) Gruß Sven |
||||
castorpollux
Inventar |
22:44
![]() |
#4
erstellt: 02. Okt 2008, |||
Hi Bernd, Hi Sven, die gesuchte Formel soll am Ende einen positiven Wert für alpha des trapezes ausgeben, der auch über 90 liegen können soll, wenn C mal größer ist als A, das bringt eben die Formel mit dem arctan von sich aus nicht. Sven, dank dir, das ist schon mal eine Idee, führt aber leider dazu, das immer für einen Winkel kleiner 90Grad gerechnet wird. Ein anderer Gedankengang wäre... im Script IMMER 45Grad aufzuschlagen und davon auszugehen, das in dem Script keine stärkeren "Öffnungswinkel" als 135° unterstützt werden...wirklich sauber wärs aber auch nich...*grübel* Grüße, Alex |
||||
anymouse
Inventar |
23:30
![]() |
#5
erstellt: 02. Okt 2008, |||
Das Problem mit dem arctan ist halt, dass dieser normalerweise Werte zwischen -90° ... 90° liefert, bei Dir aber etwas zwischen 0°...180° erzeugen soll. Sei einmal flexibel, und beharre nicht zu stark auf dem einen Standpunkt ![]() Nimm daher statt alpha (Winkel zwischen a und der schrägen Linie den Winkel, den die schräge Linie mit der Seite h bildet und der außerhalb des Trapez/der Linie liegt, nenne ich mal alpha'. Für den kriegst Du dann die Formel
und da alpha = 90°-alpha' ist, erhälst Du
[Beitrag von anymouse am 02. Okt 2008, 23:31 bearbeitet] |
||||
castorpollux
Inventar |
08:05
![]() |
#6
erstellt: 03. Okt 2008, |||
Genial! Danke! ![]() Habs grade mal auf dem Papier durchgespielt, es scheint genau richtig zu funktionieren, berechnete Werte stimmen sehr gut mit abgelesenen überein. Was ich aber noch nicht ganz verstanden habe: wo genau liegt alpha' ? so wie ich dich verstanden hab' würde es da liegen, wo sich d und b normalerweise treffen würden - da die formel funktioniert, gehe ich davon aus, das es ihr gleich ist, ob die beiden sich "oberhalb" oder "unterhalb" A treffen - es wird nur der Winkel ausgerechnet. Jetzt muss ich das "nur" noch in das Script einbinden... Da an dieser Stelle evtl. noch nicht klar ist, weshalb der ganze Zauber: Bis dato sind die Stellen, an denen sich der Querschnitt der TML berechnet, "fest" definiert, sie dehnen sich zwar mit einer langen TL aus und ziehen sich mit einer kurzen zusammen, ihre Position in der TML relativ zum Anfang/Ende/Chassis ist aber immer gleich. Soll heissen, es gibt drei Lineabschnitte, bis das Chassis kommt, deren Gesamtlänge beträgt genau 1/3 der Gesamtline, die Höhe ist über den Lineverlauf veränderlich. Möchte ich nun das Chassis frei positionierbar in der TML gestalten, so wird die Anzahl der Abschnitte vor und nach dem Chassis nicht dynamisch festgelegt, sondern deren einzelne Länge in Bezug auf die Gesamtlänge. Möchte ich nun also ein Chassis auf 1/2 in einer verjüngenden TML positionieren, so müssen die einzelnen Abschnitte selbstständig herausfinden, wie groß ihr Querschnitt ist, da ihre Anzahl vor und hinter dem Chassis gleich bleibt, aber die Länge sich mit der Position des Chassis ändert. Und genau da kommt die obige Formel ins Spiel, sobald der Winkel alpha bekannt ist, kann man nämlich über Veränderungen des Wertes h (oder auch b) die neue Länge von c ausrechnen und hierüber finally den Querschnitt der TML ![]() Ergebnisse gibts (hoffentlich ![]() ![]() ![]() |
||||
anymouse
Inventar |
09:21
![]() |
#7
erstellt: 03. Okt 2008, |||
Für die Bezeichnungen übernehme ich mal die Lage vom Wiki-Trapez (Trapez1 von 2005) ; ich hoffe, es wird auch ohne Grafik klar ![]() Verschiebe die Höhe h so lange, bis sie durch A geht (oder nimm eine Parallele zu h und b durch A) -- dies nennen wir h'. Dann betrachte die Winkel W(a -> h')=90°, W(a -> d) = alpha und W(h' -> d)=alpha'. Winkel, deren Drehung gegen den Uhrzeigersinn ist, sind positiv, Drehrichtung im Uhrzeigersinn negativ. |
||||
not0815
Inventar |
09:40
![]() |
#8
erstellt: 03. Okt 2008, |||
Aber auch bei dieser Umformung bleibt das Code-Problem mit einer Null im Nenner bestehen, nur dass nun halt h ggf. Null werden kann und jedes Programm dann abstürzt. |
||||
ukw
Inventar |
09:57
![]() |
#9
erstellt: 03. Okt 2008, |||
Moin Alex, Wenn es nur darum geht die Fläche des Trapez auszurechen => very easy => Trapez zu Rechteck wandeln Kurze Seite + Lange Seite / 2 somit erhältst Du die Durchschnittsbreite * Länge und ab dafür. ![]() ![]()
Moin sven - soeben hast Du die open loop eines Verstärkers entdeckt. Der macht das genau so, um den gewünschten Verstärkungsfaktor einzustellen (und produziert immer eine minimale Abweichung dabei (darum gibt es den linearen Verstärker nicht) |
||||
not0815
Inventar |
16:01
![]() |
#10
erstellt: 03. Okt 2008, |||
Tach UKW, x/0 = ERROR ist zunächst ein mathematisches und damit auch ein progammiertechnisches Problem! Das zwar auch in Grenzen beim Verstärkerbaus auftritt aber auch hier liegt der Grund in der Mathematik. Für alle die dies weiter interessiert, siehe ![]() |
||||
dazydee
Stammgast |
18:32
![]() |
#11
erstellt: 03. Okt 2008, |||
Da sich die Flaeche/Hoehe proportional linear mit der Laenge der TL aendert, wuerde ich mir die ganzen Winkel schenken. Die Flaeche an einer beliebigen Laenge der TL ist die Grundflaeche am Anfang - der Flaechenunterschied (Anfang-Ende) mal dem Anteil der TL-Laenge (Gesamtlaenge / gegebene Wegstrecke). In Buchstaben: A = a - (a - b) * s / h A Flaeche bei Weg s a Anfangflaeche TL b Endflaeche TL s gegebene Weglaenge h Laenge der TL Grusz Danny |
||||
castorpollux
Inventar |
23:15
![]() |
#12
erstellt: 03. Okt 2008, |||
Das wäre denkbar, dann wäre der benutzer aber insofern selbst schuld, als das er die Kommentierung bei den paramtern überliest, das Script enthält nämlich bereits den einen und anderen bereits entsprechend kommentierten Parameter, der nicht null sein darf, wie anfangs/endfläche ![]() Hi Uwe, um die Fläche des Trapezes geht es mir damit eigentlich nicht, denkbar wäre das aber schon über diesen Weg... müsste ich mal durchkauen ![]() Hi Dazy, hab deine Formel gerade mal an meinem Beispieltrapez oben durchprobiert - haut leider gar nicht hin, da s/h immer kleiner wird, je näher der Anfag der Line ist - über einen ähnlichen Weg werde ich es aber auch lösen. Zunächst muss der Abstand des Chassis vom Lineanfang vom User in cm definiert werden, das Script rechnet das dann auf ein Verhältns zur Linelänge um - es gibt nun eine Strecke vor dem Chassis und nach dem Chassis. Die einzelnen vorhandenen Lineabschnitte bekommen dann über Division die entsprechende Länge zugewiesen ![]() anymouse, das werd' ich mir morgen bei ner tasse tee noch mal zu gemüte führn, vom lesen her klappts schon ![]() Grüße, Alex edith sagt, ich soll mir spät abends nicht immer solche Dinge anschauen, das geht in die Hose. Bei Dannys Formel hätte ich nur die Regel "punktrechnung vor Strichrechnung" beachten müssen, schon passts (auch für sich erweiternde Lines), oder für Dummys:
hm, dieser Weg funktioniert auch, was mache ich denn jetzt mit den schönen arcustangenten? 2 Lösungen für ein Problem, dat is ja ma wat :-D ...*überleg*...daher, das ich von einer konstanten querschnittsänaderung ausgehe, sollte diese Formel in der Tat verwendbar sein - ich spiels mal durch ![]() [Beitrag von castorpollux am 04. Okt 2008, 08:11 bearbeitet] |
||||
Chlang
Stammgast |
21:47
![]() |
#13
erstellt: 04. Okt 2008, |||
Hallo Alex, ich bin das bei meinen modifizierten Scripten über die Geradengleichung angegangen - vielleicht kann ich dir ja mit diesem Tipp mal weiterhelfen: ![]() Man muss nur den Anfangsquerschnitt (den Y-Wert des Nulldurchgangs der Geraden) und die Steigung m (Öffnungsverhältnis) festlegen und schon lässt sich für jede Entfernung vom Anfang (Wert auf der X-Achse) der Y-Wert (Querschnittsfläche) bestimmen -> nix mit komplizierten Winkelfunktionen reine Plutifikation... Grüße Chlang |
||||
Chlang
Stammgast |
21:52
![]() |
#14
erstellt: 04. Okt 2008, |||
Vielleicht hätte ich den ganzen Thread lesen sollen... im Prinzip wollte ich das gleiche wie Danny sagen. Grüße Chlang |
||||
castorpollux
Inventar |
13:29
![]() |
#15
erstellt: 05. Okt 2008, |||
Es ist vollbracht! die beiden Berechnungsformeln nehmen sich in der Tat nichts - ich hab mal zwei gleiche Transmissionlines erstellt und auf einem Screen begutachtet, es ändert sich nichts. Da es aber so viele graue Haare gekostet hat, die Version mit Berechnung über Winkel zu erstellen, weil mittendrin hin- und herkonvertiert werden muss zwischen Zahlenformaten, verwende ich die ![]() Weil wir alle so gerne Bildchen gucken, hier mal eine kleine Animation, was passiert, wenn man einen SLS10 in einer 3m Line, der Querschnitt verdoppelt sich von 1*Sd auf 2*Sd, verschiebt, angefangen bei 1cm, aufgehört bei 150cm - in schrittgröße 5cm: ![]() Und hier das Script:
Ich danke sehr und vielmals für die Hilfe - soll ich es in den Thread in den FAQ dazupacken? Was nun nicht mehr geht, ist Bedämpfung einzusimulieren, der benutzer kann zwar hinter jeden der 34 Lineabschnitte Sonofil packen, das ist aber jeweils in relation zu dessen länge zu betrachten und würde den Eingabebereich nur weiter und unnötig aufblähen...tut nich not. Viele Grüße, Alex |
||||
|
|
Das könnte Dich auch interessieren: |
3 Wege Trennfrequenzen festlegen holzholgi am 02.01.2012 – Letzte Antwort am 03.01.2012 – 12 Beiträge |
Ciare CH 250 in Transmissionline-Gehäuse ede90 am 17.03.2009 – Letzte Antwort am 26.03.2009 – 7 Beiträge |
Impedanzverlauf eines Lautsprechers in einer Transmissionline abhängig von der Positionierung josh am 06.03.2024 – Letzte Antwort am 30.06.2024 – 25 Beiträge |
Hornresponse-AkAbak P.Krips am 15.11.2008 – Letzte Antwort am 15.11.2008 – 5 Beiträge |
Transmissionline vs. BR Rufus49 am 09.02.2021 – Letzte Antwort am 17.02.2021 – 72 Beiträge |
Transmissionline Mundöffnungsgestaltung :D doctrin am 05.01.2006 – Letzte Antwort am 19.01.2006 – 35 Beiträge |
Wirkung v. sich öffnenden o. verjüngenden BRkanälen Nico87 am 04.03.2007 – Letzte Antwort am 04.03.2007 – 2 Beiträge |
Unterschied TL zu BR Jan86 am 03.06.2004 – Letzte Antwort am 06.06.2004 – 5 Beiträge |
Transmissionline - Berechnungen Rufus49 am 29.05.2012 – Letzte Antwort am 01.06.2012 – 4 Beiträge |
Transmissionline-löcher und andere Stolperfallen... castorpollux am 22.09.2005 – Letzte Antwort am 28.09.2005 – 19 Beiträge |
Foren Archiv
2008
Anzeige
Produkte in diesem Thread
Aktuelle Aktion
Top 10 Threads der letzten 7 Tage
- Hotel Modus deaktivieren
- "diese anwendung wird jetzt neu gestartet um mehr speicherplatz verfügbar zu machen"
- Von HD+ zurück zu Standard-TV
- Remotekabel anschließen, aber wie und wo?
- Hisense verbindet sich nicht mehr mit dem WLAN
- Audiodeskription ausschalten (in ZDF App) 803er
- Umschalten von TV auf Radio
- Satellitenschüssel was und wie einstellen am TV
- Pro 7 und Sat 1 auf einmal weg.
- Markierung an Lautsprecherkabel - welche Norm?
Top 10 Threads der letzten 50 Tage
- Hotel Modus deaktivieren
- "diese anwendung wird jetzt neu gestartet um mehr speicherplatz verfügbar zu machen"
- Von HD+ zurück zu Standard-TV
- Remotekabel anschließen, aber wie und wo?
- Hisense verbindet sich nicht mehr mit dem WLAN
- Audiodeskription ausschalten (in ZDF App) 803er
- Umschalten von TV auf Radio
- Satellitenschüssel was und wie einstellen am TV
- Pro 7 und Sat 1 auf einmal weg.
- Markierung an Lautsprecherkabel - welche Norm?
Top 10 Suchanfragen
Forumsstatistik
- Registrierte Mitglieder928.776 ( Heute: 1 )
- Neuestes MitgliedKatieresia
- Gesamtzahl an Themen1.558.940
- Gesamtzahl an Beiträgen21.714.229