Ogłoszenie

Collapse
No announcement yet.

XMachina: maszyna do projektowania zwrotnic pasywnych

Collapse
X
 
  • Filtr
  • Czas
  • Pokaż
Clear All
new posts

    XMachina: maszyna do projektowania zwrotnic pasywnych


    Może komuś się przyda takie narzędzie: XMachina - aplikacja do automatycznego projektowania zwrotnic pasywnych.

    Proces projektowania przebiega w kilku etapach. W skrócie wygląda to tak:
    • Tworzenie list elementów do dyspozycji.
      • Najprościej wygenerować je automatycznie, wtedy zajmuje to chwilę.
      • Można załadować też listy elementów z opisami i cenami (istnieje możliwość optymalizacji kosztów zwrotnicy)
    • Tworzenie dróg.
      • Załadowanie charakterystyk frd i zma dla każdej z dróg.
      • Opcjonalnie można załadować pomiary kierunkowe do optymalizacji power response.
    • Tworzenie celów.
      • Stworzenie charakterystyki docelowej, którą można sobie wyklikać dowolnie.
      • Stworzenie punktów podziału między drogami oraz zdefiniowanie nachylenia zbocz które nie powinny być przekroczone.
      • Zdefiniowanie minimalnego poziomu modułu impedancji który nie powinien być przekroczony.
    • Tworzenie zadania dla maszyny.
      • Zadanie tworzy się przez powiązanie danych wejściowych (zbiory elementów, drogi) z celami do osiągnięcia (charakterystyka sytemu, punkty podziału, zbocza, moduł impedancji).
      • Dodatkowo wybiera się strategię aplikacji części oraz definiuje się czas który XMachina ma do dyspozycji na stworzenie projektu (im więcej czasu dostanie tym potencjalnie lepszy wynik).
    • Uruchomienie zadania tworzenia projektu. Aplikacja tworzy obwody nie trzymając się ściśle żadnej architektury. W zależności od ustawień filtry mogą wychodzić proste lub skomplikowane i odpowiednio gorzej lub lepiej realizować postawione cele.
    • Analiza wyników i ewentualne modyfikacje obwodów. Analiza często kończy się również modyfikacją ustawień i uruchomieniem kolejnego przebiegu projektowania i tak aż do skutku.

    Aplikacja działa w środowisku zgodnym z Win32.

    Program był pomyślnie przetestowany na Win10/64, Win7/64, WinXP/32.

    XMachina może działać pod Wine/Linux, sprwdzone na wersji O/S 5.9.16-1-MANJARO Wersja wine-6.4,
    prawdpodobnie na innych wersjach również.

    Rozmiar pliku .exe to około 3 MB.

    XMachina jest bezpłatna do użytku osobistego DIY.

    Pobierz XMachina

    Dokumenty .pdf (niestety dawno nie uaktualniane)

    XMachina na YouTube kilka nagrań z pulpitu z pracą nad przykładowymi projektami.

    #2
    Witam w nowym wątku :)
    Tak jak pisałem, dla prostego 2W dostaję poniższy schemat. 15 elementów po kilku próbach. Co robię nie tak?

    Skomentuj


      #3
      A jaką masz częstotliwość podziału i jak przypisane zbocza filtrów czy np nie są zamienione HP z LP bo widzę, że tweeter masz zamieniony z wooferem (wg konwencji nazewniczej przyjętej w aplikacji). 2min to wydaje się za mało nawet jak na testy. Do wstępnego testowania "co wychodzi" przydałby się 5-10min, a jeśli wszystko wychodzi w miarę ok to wtedy warto "dokręcić śrubę" i uruchomić projektowanie na godzinę lub więcej.
      Parę rzeczy byłoby jeszcze do sprawdzenia najlepiej jakbyś załączył plik projektu.

      Skomentuj


        #4
        W załączeniu plik. Nie wiem czy charakterystyki potrzebnie załączałem, czy nie. 2 minuty z obserwacji, bo po 2 minutach właściwie nie próbuje już wymyślać kolejnych charakterystyk, tylko kręci się zbieżnie wokół jakiegoś jednego rozwiązania.
        Załączone pliki

        Skomentuj


          #5
          1)
          Target minimum impedancji jest ustawiony wyżej niż minimum impedancji głośnika. Tu wprawdzie jest to głośnik wysokotonowy który zwykle jest tłumiony rezystorami, więc jest jeszcze jakieś pole manewru żeby osiągnąć cel. Tym niemniej co do zasady lepiej takich sytuacji unikać.


          2)
          Lista cewek zawiera blisko 500 pozycji, na której jest nawet po kilkanaście elementów o tej samej indukcyjności różniących się nieznacznie rezystancją szeregową. To nie bardzo ma sens. Co gorsza między niektórymi indukcyjnościami są duże odstępy np. po kilkunastu elementach 0.75mH następną wartością jest 1mH (w tej indukcyjności też mnóstwo wersji). Lepiej zrobić tak, że z każdej wartości wziąć 2-3 cewki różniące się rezystancją: mała duża średnia. Indukcyjności zagęścić, między 0.75 a 1 dodać przynajmniej typowe wartości 0.82mH 0.91mH a może parę więcej (jest w czym wybierać). Myślę, że lista powinna zawierać max 100 pozycji, inaczej to będzie niepotrzebne mulenie komputera.

          Do wstępnych eksperymentów można korzystać z generatora komponentów i np. połączyć listy tych samych indukcyjności wygenerowane z dwoma różniącymi się rezystancjami.

          3)
          Kolejna sprawa: uruchamiamy projektowanie i powstaje pytanie jakiej komplikacji obwodów należy się spodziewać. Jeśli oba filtry mają 18dB/oktawę to 3 komponenty drogę, nie licząc rezystorów. Być może jakaś pułapka na rezonans, korekcja impedancji, korekcja zgrania fazowego więc w sumie trzeba zakładać konieczność użycia kolejnego elementu. Kolejna sprawa to czy filtr coś ma korygować w paśmie użytecznym przetwornika np. jakieś fluktuacje charakterystyki przetwornika czy choćby baffle step. Tu target ustawiony jest płasko, więc aplikacja będzie próbować wyprostować charakterystyki a to będzie zwiększało presję na dodatkowe elementy. W sumie spodziewałbym się (obie drogi w razem) 8-10 kondensatorów i cewek i oraz 1-3 rezystorów . Można prościej? można oczywiście, ale trzeba pójść na kompromisy. Oprócz zwiększania kosztu użycia komponentu (zaznaczony suwak) można też znieczulić algorytm na odstępstwa rozwiązania od celu, zwiększając parametr tolerancji błędu (w zaznaczonym miejscu okienku) :



          Tu na przykład zwiększyłem tolerancję na rozbieżności względem celu i wyszło m. in. coś takiego:


          udało się uzyskać odpowiednią stromość zboczy oraz kompensację baffle step ale nie ma pułapki na breakup przy 5kHz Sam wyskok breakup'u zmieścił się jednak pod założonym zboczem. W filtrze wysokotonowym również mamy odpowiednie nachylenie, ale wyskok przy 9kHz pozostał bez korekcji. Liczba komponentów R-L-C: 1-4-2 czyli mniejsza niż szacowana ale kosztem wspomnianych problemów.

          a tu drugi przykład, przy też zwiekszonej (ale nieco mniej) współczynniku tolerancji błędu.

          w stosunku do poprzedniego rozwiązania jest pułapka na rezonans breakupu, a w filtrze wysokotonowym jest korekcja wyskoku przy 9kHz oraz pułapka na fs . Niby lepiej ale odbyło się to kosztem 4 dodatkowych elementów (R-L-C: 2-6-4), z drugiej jednak strony liczba elementów nie przekracza wstępnie szacowanej.

          4) Warto stosować dłuższe czasy wykonywania projektu. 2min to zdecydowanie za mało nawet dla testowych przebiegów. Zwiększenie czasu to możliwość sprawdzenia dodatkowych możliwości modyfikacji obwodu i z reguły pozytywnie wpływa na rezultaty. Warto też ustawiać projekt na dostarczenie kilku rozwiązań. proces projektowy to proces stochastyczny i za każdym uruchomieniem (z tymi samymi ustawieniami) może dostarczyć trochę inne lub zupełnie inne rozwiązanie.



          Skomentuj


            #6
            Super, dzięki. Znaczy trzeba się nauczyć jak każdego softu lista elementów zrobiona na szybko, bardzo się do niej nie przyłożyłem. Lista polinku jest bardzo długa. Ale może dorzucę cenę i będę próbował optymalizować pod tym kątem. Jak już podstawy opanuję:)

            Skomentuj


              #7
              W jakim języku i w jakim IDE została napisana XMachina?

              Skomentuj


                #8
                https://www.lazarus-ide.org/index.php

                Skomentuj


                  #9
                  Tak sobie myślę, jeśli mogę coś podrzucić. Interfejs do zakładania targetów działa mi coś słabo. Nie udało mi się na przykład usunąć błędnego punktu, brakuje jakiegoś ctrl-z. No i może dałoby się dołożyć możliwość importu targetu z pliku? Można byłoby eksportować, zmodyfikować w notatniku, excelu czy czymś i zaimportować na powrót...

                  Skomentuj


                    #10
                    Istnieją metody prostego poprawienia błędnego punktu, np. tak:

                    Z menu kontekstowego wybrać pozycję "Allow dragging points":


                    Naprowadzić mysz na punkt do poprawienia i nacisnąć lewy przycisk.


                    Przeciągnąć mysz w odpowiednie miejsce i puścić przycisk. Punkt zostanie przesunięty:


                    Jakoś łatwiej pracuje mi się ze standardową metodą korekcji punktów (opisanej w pdf) ale ta wydaje się bardziej intuicyjna.

                    Jeśli za bardzo namieszaliśmy edytując istniejący target, to jest też możliwość zamknięcia okna bez zapisu.

                    Ale "Undo" by się przydało, to fakt... Jeśli aplikacja wróci do stanu dewelopmentu postaram się o tym pamiętać.
                    Last edited by XMechanik; 26.09.2022, 21:42.

                    Skomentuj


                      #11
                      Są jakieś podręczniki lub tutoriale po polsku do Lazarusa?

                      Skomentuj


                        #12
                        IDE jest podobne do Delphi natomiast sam język programowania to Pascal. Jest zdaje się sporo podręczników do jednego i drugiego. Można też spróbować wrzucić w do wyszukiwarki coś w rodzaju "lazarus tutorial pdf po polsku".
                        Last edited by XMechanik; 27.09.2022, 23:00.

                        Skomentuj

                        Czaruję...
                        X