Ankündigung

Einklappen
Keine Ankündigung bisher.

Soll Boxsim 2.0 einen Weichenoptimierer bekommen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • UweG
    Registrierter Benutzer
    • 29.07.2003
    • 5606

    #61
    Vertue dich nicht, was die Rechenzeit angeht. Es sind in Boxsim nicht nur ein paar simple Filterfunktiönchen zu errechnen, sondern es ist eine, aus einem freien Schaltplan zu analysierende Weiche in ein lineares Gleichungssystem mit komplexen Koeffizienten zu überführen, die Ergebnisse sind mit den Ergebnissen der Schallwandberechnung, der Thiele-Small-Berechnung etc. zu synthetisieren und daraus über 100 Ergebnisfunktionen zu erstellen. Zum Schluss muss noch eine vernünftige Bewertung der Ergebnisse stattfinden und dann kommt der nächste Schritt.
    Klar ist, ein Weichenoptimierer für Boxsim wäre relativ langsam. Mit Rechenzeiten im Bereich einiger Minuten ist auch auf einem modernen PC durchaus zu rechnen. Es kann auch deutlich mehr sein.
    "Durchprobieralgorithmen" für die komplette Weiche muss man wohl aus diesem Grund verwerfen. Bislang bewähren sich Probierverfahren mit automatischer Schrittweiteneinstellung in Kombination mit einer Art Gradientenabstiegsverfahren recht gut.
    Zuletzt geändert von UweG; 12.05.2007, 00:18.
    Boxsim ... wenn Lautsprechersimulation gelingen soll.

    Kommentar

    • Mr.E
      Registrierter Benutzer
      • 02.10.2002
      • 5291

      #62
      Hier bekommt Hochsprache für mich mal wieder eine völlig neue Bedeutung.

      Kommentar

      • UweG
        Registrierter Benutzer
        • 29.07.2003
        • 5606

        #63
        Die Optimierungen moderner Compiler sollte man auch nich unterschätzen. Ich hatte mal einen CRC-Berechnungsalgorithmus im Netz gefunden, mit dem bewiesen werden sollte, dass Assembler schneller als Delphi ist. Nach zwei, drei Codeänderungen schrumpfte der Unterschied auf <1%.
        Boxsim ... wenn Lautsprechersimulation gelingen soll.

        Kommentar

        • jaywalker
          Registrierter Benutzer
          • 16.02.2005
          • 337

          #64
          Original geschrieben von UweG
          Vertue dich nicht, was die Rechenzeit angeht. Es sind in Boxsim nicht nur ein paar simple Filterfunktiönchen zu errechnen, sondern es ist eine, aus einem freien Schaltplan zu analysierende Weiche in ein lineares Gleichungssystem mit komplexen Koeffizienten zu überführen, die Ergebnisse sind mit den Ergebnissen der Schallwandberechnung, der Thiele-Small-Berechnung etc. zu synthetisieren und daraus über 100 Ergebnisfunktionen zu erstellen. Zum Schluss muss noch eine vernünftige Bewertung der Ergebnisse stattfinden und dann kommt der nächste Schritt.
          Hallo Uwe,

          leider kenne ich natürlich den Quellcode nicht. Aber auf den ersten Blick hätte ich jetzt das Gefühl, daß sich der Schaltplan ja nicht wesentlich ändert, wenn man einen Bauteilwert ändert. Da sollten sich auch die jeweiligen Gleichungssysteme etc. nur unwesentlich ändern. Kann man sich dann die Berechnung nicht sparen? Oder falls nicht: Kannst Du mir kurz und halbwegs verständlich erklären, woher die hohe Komplexität entsteht, wenn man nur einen Bauteilwert ändert? Das fände ich jetzt schon sehr interessant.

          Grüße
          Heiner

          Kommentar

          • UweG
            Registrierter Benutzer
            • 29.07.2003
            • 5606

            #65
            Boxsim hat derzeit nicht die Fähigkeit, dieses Gleichungssystem nachträglich zu ändern. Es muss also völlig neu synthetisiert werden. Der Hauptgrund ist aber, dass ja nicht nur ein Frequenzgang errechnet wird sondern bei einer Dreiwegebox z. B.:
            - 30 Frequenzgänge in verschiedene Richtungen pro Chassis
            - 30 Frequenzgänge der Gesamtbox
            - Impedanzgang, Belastbarkeit, Bündelungsmaß .....
            Klar, man kann da sicherlich noch Codeoptimierung betreiben, aber der Vergleich zu simpler Filteroptimierung auf eine Kurve hinkt trotzdem. Die Boxsim-interne Struktur TResult, in Boxsim seine Ergebnisse (zumeist als double=8Byte pro Wert) ablegt, ist über 11 MB groß.

            Nachtrag: Ich habe eben mal ein paar Zeitmessungen gemacht. Ich denke, die Anzahl der Optimierungsschritte pro Sekunde wird einstellig bleiben. Leider ist das ganz schön wenig. Selbst die Bewertung der Ergebnisse macht einen nennenswerten Anteil an der Rechenzeit.
            Zuletzt geändert von UweG; 14.05.2007, 00:40.
            Boxsim ... wenn Lautsprechersimulation gelingen soll.

            Kommentar

            • jaywalker
              Registrierter Benutzer
              • 16.02.2005
              • 337

              #66
              Original geschrieben von UweG

              Nachtrag: Ich habe eben mal ein paar Zeitmessungen gemacht. Ich denke, die Anzahl der Optimierungsschritte pro Sekunde wird einstellig bleiben. Leider ist das ganz schön wenig. Selbst die Bewertung der Ergebnisse macht einen nennenswerten Anteil an der Rechenzeit.
              Hallo Uwe,

              schade, das ist doch etwas zu langsam, um wirklich brauchbar zu werden, fürchte ich. Man kann dann wohl wirklich nur aus einer handvoll Bauteilen die besten raussuchen lassen. Schade, ein wirklicher Optimierer wäre da schon interessanter.
              Ich würde das trotzdem implementieren und einfach mal sehen, wie praxistauglich das wird. Man kann ja später die Berechnungsroutinen immer noch optimieren oder es zumindest versuchen.
              Oder ist es viel Aufwand, eine erste Testversion des Optimierers zu basteln?

              Grüße
              Heiner

              Kommentar

              • Peter K
                Registrierter Benutzer
                • 18.10.2000
                • 927

                #67
                Hallo Uwe,

                wenn es überhaupt machbar ist:

                Wäre es nicht denkbar, um den Optimierer zu beschleunigen, nur das jeweils ausgewählte Kriterium intern zu "exportieren", zu optimieren (z.B. Schalldruckkurve 30°, da gehören dann natürlich noch Phase, Impedanz und evtl elektrische Phase dazu) und erst nach Abschluss des Optimiererdurchlaufs dann die gefundenen neuen Werten in das "Hauptprogramm" zu "exportieren" und das dann eben nur einmal die ganze Latte an Berechnungen ausführen zu lassen ?

                Gruß
                Peter Krips

                Kommentar

                • UweG
                  Registrierter Benutzer
                  • 29.07.2003
                  • 5606

                  #68
                  ... nur das jeweils ausgewählte Kriterium intern zu "exportieren", ...
                  Was hätte denn das für einen Sinn. Am Ende steht eine optimierte Box, da muss doch alles passen, nicht nur der Frequenzgang unter Winkel xy. Ich denke, das größte Beschleunigungspotenzial liegt in einem effektiven Optimierungsalgorithmus selbst.
                  Ich werde mal ein wenig basteln ...
                  Boxsim ... wenn Lautsprechersimulation gelingen soll.

                  Kommentar

                  • Peter K
                    Registrierter Benutzer
                    • 18.10.2000
                    • 927

                    #69
                    Hallo Uwe,

                    Original geschrieben von UweG
                    Was hätte denn das für einen Sinn. Am Ende steht eine optimierte Box, da muss doch alles passen, nicht nur der Frequenzgang unter Winkel xy. Ich denke, das größte Beschleunigungspotenzial liegt in einem effektiven Optimierungsalgorithmus selbst.
                    Ich werde mal ein wenig basteln ...
                    Gut, das ist deine Baustelle, nur einen Sinn sehe ich persönlich nicht darin, alle klangrelevanten Parameter wie Bündelung, Energieverhalten, Frequenzgänge unter Winkel etc komplett gemeinsam zu "optimieren".
                    Wenn ich dich da nicht missverstehe, dann soll das auf: "vorne auf Knopf drücken und hinten kommt die perfekte Box raus" hinauslaufen ??
                    Wenn du das meinst und das auch noch für sinnvoll hälst, bin ich echt gespannt auf das sicher irgendwann erhältlich Ergebnis.

                    Gruß
                    Peter Krips

                    Kommentar

                    • UweG
                      Registrierter Benutzer
                      • 29.07.2003
                      • 5606

                      #70
                      Vielleicht muss man noch etwas mehr machen als auf den Knopf zu drücken, abr wenn hinten nicht die perfekte Box, oder zumindest eine Annäherung dazu, herauskommt, dann macht die Optimiererei doch irgendwie keinen Sinn.
                      Boxsim ... wenn Lautsprechersimulation gelingen soll.

                      Kommentar

                      • jhohm
                        Registrierter Benutzer
                        • 24.09.2003
                        • 4535

                        #71
                        Original geschrieben von Peter K
                        Hallo Uwe,



                        Gut, das ist deine Baustelle, nur einen Sinn sehe ich persönlich nicht darin, alle klangrelevanten Parameter wie Bündelung, Energieverhalten, Frequenzgänge unter Winkel etc komplett gemeinsam zu "optimieren".
                        Wenn ich dich da nicht missverstehe, dann soll das auf: "vorne auf Knopf drücken und hinten kommt die perfekte Box raus" hinauslaufen ??
                        Wenn du das meinst und das auch noch für sinnvoll hälst, bin ich echt gespannt auf das sicher irgendwann erhältlich Ergebnis.

                        Gruß
                        Peter Krips

                        Original geschrieben von UweG
                        Vielleicht muss man noch etwas mehr machen als auf den Knopf zu drücken, abr wenn hinten nicht die perfekte Box, oder zumindest eine Annäherung dazu, herauskommt, dann macht die Optimiererei doch irgendwie keinen Sinn.
                        Hallo Peter,

                        ich sehe das aber auch wie Uwe, wenn mann nicht einfach den Button "optimieren" drücken kann - und ggfs noch auswählen kann "über Alles" oder "Energiefrequenzgang Priorität" bzw "Winkel-F-Gang Prio" etv, dann würde die ganze Optimierung keinen Sinn machen, imho.

                        Ich lasse mich gerne überraschen und werde dann einfach mal sehen :-)

                        Gruß Jörn
                        ...Gruß Jörn

                        Kommentar

                        • Uibel
                          Registrierter Benutzer
                          • 29.09.2002
                          • 6

                          #72
                          Optimierer

                          Hallo Uwe,

                          Peter und CastorPollux aus dem HiFi-Forum waren heute bei mir und bekamen AudioCad erschöpfend erklärt, wobei Peter dabei nicht mehr viel dazugelernt hat. Er ist wohl einer meiner kompetentesten User und hat mich auf diesen Thread aufmerksam gemacht.

                          Da ich keine Lust habe AudioCad auf Windows umzustellen, aber selbst auch an einer Windows-SW interessiert bin, die für mich AudioCad ablösen könnte wäre ich gerne bereit, Dich bei der Programmierung eines Optimierers zu unterstützen.

                          Zunächst einmal ein paar Worte zum Sinn und Zweck eines Optimierers: Vergleichen wird diesen mal mit einer Bohrmaschine vs. Drillbohrer. Die Bohrmaschine weiß nicht, wo ich das Loch bohren will und tut es auch nicht für mich. Ich muß an der richtigen Stelle ansetzen und auch den notwendigen Druck ausüben. Mit dem Drillbohrer bekomme ich das Loch zwar auch rein, allerdings habe ich bei Beton ziemlich schlechte Karten und brauche "ewig und drei Tage".

                          Frequenzweichen sind in diesem Sinne Beton. Das Ausprobieren von verschiedenen Bauelementewerten ist einen Sysiphusarbeit, die einem der Optimierer abnimmt und dafür nur Sekunden benötigt, wofür ich Tage brauchen würde. Ich muß dem Optimierer natürlich sagen, "wo er das Loch bohren" soll, d.h. ich muß ihm eine sinnvolle Weichenschaltung und eine sinnvolle Zielfunktion vorgeben, aber den arbeitsintensiven Rest nimmt mir die "Elektrik" ab.

                          Ein Optimierer ist eigentlich ganz einfach. Der AudioCad-Optimierer ist innerhalb 1-2 Wochen entstanden, wobei die meiste Zeit damals für die Tests draufging. Auf meinem damaligen "pfeilschnellen" 25 MHz 386-er (ohne CoProzessor) dauerte so ein Optimierungslauf schon bis zu einer halben Stunde. Mit einem, heutzutage "gammeligen", 1,4 GHz PIII reduziert sich das auf wenige Sekunden - soviel zur erforderlichen Rechenzeit.

                          AudioCad ECNC arbeitet so:

                          - Man gibt eine Zielfunktion vor (linearer Verlauf, aus externer Datei, aus Idealsimulation)

                          - Man bekommt die aktuelle Kurve (Impedanz oder Amplitude) angezeigt und markiert den zu betrachtenden Frequenzbereich

                          - Man markiert im Frequenzweichenschaltbild die Bauteile, die vom Optimierer "durchprobiert" werden sollen, wobei man durch die Reihenfolge des Anklickens auch die Reihenfolge bestimmt, in der der Optimierer an den Bauteilen "dreht".

                          - Der Optimierer startet ...

                          Die Bauteile werden entsprechend der Anklickreihenfolge zunächst 10 Prozentweise verändert. Ergibt sich z.B. durch die erste Vergrößerung eine Verschlechterung, dann probiert der Optimierer in die andere Richtung. Z.B: Aus 1 mH wird 1,1 mH. Ist das schlechter als 1 mH, dann probiert der Optimierer 0,9 mH. Ist das besser macht er 0,8 mH draus, usw.. Ergibt sich keine Verbesserung mehr kehrt der Optimierer zum letzten besseren Wert zurück und nimmt das nächste Bauelement in Angriff. Die besser/schlechter-Entscheidung wird anhand der Summe der Fehlerquadrate (Damit positive und negative Abweichungen mit gleicher Gewichtung eingehen wird die Abweichung quadriert.) beurteilt.

                          Nachdem die Variation um 10 Prozent keine Verbesserung mehr bringt wird auf 1-prozentige Veränderungen umgeschaltet und das Ganze nochmals durchgeführt.

                          Sinnvoll ist es, Mindest- und Höchstgrenzen einzuführen, damit der Optimierer bei unsinnigen Weichenschaltungen sich nicht "totrechnet". Bewährt haben sich in AudioCad 0,1 bis 5000. Werden diese Werte erreicht kann man die Bauteile üblicherweise aus der Schaltung löschen, was aber dem User überlassen bleibt. Der Optimierer hört bei Erreichung einer solchen Grenze lediglich auf, diesen Bauteilewert zu verändern. Diese Grenzwerte sind in AudioCad einstellbar.

                          Die Prozentzahlen, um die die Bauteilewerte in AudioCad verändert werden, sind einstellbar. Man könnte z.B. auch 25% für den ersten Schritt vorgeben und für den zweiten Schritt 2,5%. 10% und 1% haben sich aber bewährt.

                          Viel Rechenzeit spart man, indem man nur den vom User ausgewählten Frequenzbereich simuliert. Bei der Amplitudenoptimierung einer 2-Wege-Weiche sind das typischerweise 800 - 10.000 Hz.

                          - ... und bringt nach wenigen Sekunden (typisch < 10 Sekunden) ein Ergebnis. Sollte eine Optimierung zu lange dauern (shit in - shit out) hat der User die Möglichkeit diese abzubrechen und bekommt das bis dahin erreichte Ergebnis angezeigt.

                          Das Ergebnis hängt natürlich von der Vorgabe des Anwenders ab (shit in - shit out ), aber wer eine Weiche "zu Fuß", durch Ausprobieren von Bauteilewerten hinbekommt, der bekommt das auch mit dem Optimierer hin. Er spart halt mit dem Optimierer einige Stunden bis Tage.

                          Peter Krips hat die Anwendungsmöglichkeiten des Optimierers oben schon sehr gut beschrieben, aber es haben wohl die wenigsten verstanden.

                          Ein paar Facts:

                          - Der Optimierer spuckt nicht auf Knopfdruck die ideale Weichenschaltung mit den idealen Bauteilewerten aus.

                          - Der Optimierer nimmt die vom Anwender vorgegebene Schaltung und verändert die einzelnen Bauteile, um zu einem Optimum zu gelangen. Dieses "Optimum" ist wie bei jeder nichtlinearen Optimierung (Es gibt nicht nur ein "optimales" Ergebnis.) abhängig von den Ausgangswerten und der Zielfunktion.

                          - Die Optimierung, z.B. einer "Über-Alles-Impedanzentzerrung" für Röhrenverstärker dauert insgesamt mit allen Anwender-Klick-Aktionen gerade mal eine Minute. Den will ich sehen, der das in einigen Stunden mit gleicher Genauigkeit "zu Fuß" ermittelt.

                          - Alle Impedanzentzerrungen (RC-Glieder, RCL-Glieder) sind innerhalb kürzester Zeit fertig. Das kann "jeder".

                          - Amplitudenoptimierungen erfordern Fachwissen beim Anwender, da es hier viele Einflussfaktoren (Treiberpolarität, sinnvolle Ausgangssituation, sinnvolle Zielfunktion, etc.) gibt.

                          Jetzt müßtest Du eigentlich schon imstande sein, einen Optimierer zu programmieren. Falls nicht, mußt Du halt nach Bruchsal kommen, dann führe ich Dir es vor und evtl. kannst Du auch noch ein bißchen Programmcode "abstauben". Alle User, die sich ein kleines bißchen in die Möglichkeiten eines solchen einzudenken bereit sind würden es Dir danken.

                          Meinerseits wird es bei diesem einen Posting in diesem Thread bleiben. Wenn Du aufgrund obiger Ausführungen nicht weiterkommst kannst Du mich gerne per Email (Email-Adresse auf meiner Website) oder telefonisch (Uibel in Bruchsal) erreichen.

                          Was ich dafür will? Alle zukünftigen Versionen von BoxSim für "lau". Das müßte doch zu machen sein.
                          Zuletzt geändert von Uibel; 12.10.2007, 02:01.
                          Grüße
                          Michael


                          http://www.uibel.net

                          Kommentar

                          • c-h-r-i-s
                            Registrierter Benutzer
                            • 02.01.2007
                            • 238

                            #73
                            Huiii, hier tun sich ja ganz neue Perspektiven auf.
                            Ich fände eine Kooperation von Euch beiden super!
                            Eine Frage an Uibel: Wird bei der Zielfunktion auch die akustische Phase berücksichtigt?

                            Gruß, chris

                            Kommentar

                            • Peter K
                              Registrierter Benutzer
                              • 18.10.2000
                              • 927

                              #74
                              Hallo,

                              Eine Frage an Uibel: Wird bei der Zielfunktion auch die akustische Phase berücksichtigt?
                              bin zwar nicht der Michael, aber:

                              Neee, wozu auch, die Phase ist ohnehin eine Funktion der Filterfunktion/Übertragungsfunktion.....

                              Gruß
                              Peter Krips

                              Kommentar

                              • Peter K
                                Registrierter Benutzer
                                • 18.10.2000
                                • 927

                                #75
                                Hallo,

                                mal ein Beispiel zur Arbeit mit dem Audiocad-Optimierer....

                                1. Ausgangslage

                                [IMG][/IMG]


                                2. Frequenzgänge Weichenzweige nach Optimierung

                                [IMG][/IMG]


                                3. Summenkurve

                                [IMG][/IMG]


                                hier mal einen "schweren" Fall simuliert:
                                Weiche mit akustischer Filterfunktion 6. Ordnung Linkwitz, beim Übergang MT/HT nicht ganz erreicht.

                                Arbeitsschritte:
                                Definition der Zielfunktionen mittels "Dummi-Chassis", Zielfunktionen abspeichern,

                                Eingabe der Startweichenschaltung im Frequenzweicheneditor

                                Optimierung TT-Zweig
                                Otimierung MT-Zweig
                                Optimierung HT-Zweig

                                jeweils nach den oben definierten Zielfunktionen

                                Optimierung Summenkurve Übergang TT/MT
                                Optimierung Summenkurve Übergang MT/HT

                                fertig...

                                Zeitaufwand für die gesamte Prozedur
                                1 Stunde und 55 Minuten


                                Gruß
                                Peter Krips

                                P.S. Alle Messungen sind übrigens ungeglättet im realen Gehäuse entstanden mit DLSA, alle auf 30 Grad Groundplane.....

                                Kommentar

                                Lädt...
                                X