Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Symulacja układów elektronicznych

maszynaz 25 Lip 2014 09:51 2241 10
  • #1 25 Lip 2014 09:51
    maszynaz
    Poziom 11  

    Witam,
    Chciałbym napisać prosty symulator układów elektronicznych z kilku podstawowych elementów. Kluczowe elementy to R,L,C i klucze przełączające np. tranzystory. Oczywiście byłoby fajnie gdyby symulator radził sobie też z innymi elementami, ale nie jest to konieczne. Symulator będzie budował układy przy użyciu algorytmu genetycznego w oparciu o pewien ogólny opis założeń, który będzie mógł podać użytkownik. Idea jest taka:
    1. tworzenie populacji początkowej (losowanie osobników genetycznych - każdy osobnik to układ składający się z losowych elementów elektronicznych)
    2. wyświetlenie najlepszego układu
    3. krzyżowanie układów
    4. mutacja układów
    4. przeliczenie układów
    5. ocena w jakim stopniu układy spełniają założenia
    6. selekcja (tworzenie nowej populacji, najsłabsze osobniki są odrzucane i na ich miejsce losowane są nowe)
    6. skok do 2
    Chodzi mi o takie rzeczy jak: zapisanie obwodu w pamięci komputera, wybór metody (Eulera, RK, DAE - równania różniczkowo macierzowe, w tym wyliczanie indeksów dzięki którym można sprawdzać, który obwód da się rozwiązać a który nie itp.), jak generować i krzyżować układ tak by zawsze powstawały poprawne układy itp.
    Ma ktoś jakieś pomysły?

  • #2 25 Lip 2014 11:05
    Andrewl0
    Poziom 9  

    maszynaz napisał:
    każdy osobnik to układ składający się z losowych elementów elektronicznych
    pomyśl jeszcze o tym ile masz kombinacji połączeń pomiędzy elementami
    maszynaz napisał:
    jak generować i krzyżować układ tak by zawsze powstawały poprawne układy
    moim zdaniem nie da się trzeba je po prostu odrzucić z populacji jako najsłabsze

    maszynaz napisał:
    zapisanie obwodu w pamięci komputera,

    nie widziałbym problemu obiekt z listą elementów, ich parametrów i połączeń

    no i metoda Eulera to chyba dla komputera jest nieodpowiednia

    jakie doświadczenie ma kolega w posługiwaniu się algorytmami genetycznymi?
    jakie doświadczenie w obliczeniach obwodów?

  • #3 25 Lip 2014 17:33
    jarek_lnx
    Poziom 43  

    Opróch liczby kombinacji połączeń dodał bym jescze liczbę wartości elementów.
    W niezbyt wyrafinowanych układach stosujemy rezystory obejmujące osiem dekad (razem 192 wartości jeśli mówimy o E24), wartości popularnych kondensatorów obejmują 10 dekad, cewek znacznie mniej może z 5 dekad, liczbę tranzystorów trudno oszacować.

    Problem jest trudny, więc zajmij sie tym co najważniejsze, uzyj gotowego symulatora typu SPICE, są takie z otwartym kodem, dane wprowadzasz jako tzw netlistę prosty i wygodny (dla komputera) sposób zapisu układu, dane wyjściowe dostraniesz jako wartości napieć i prądów, przebiegi czasowe albo wykresy Bode-go, zostanie ci napisać kod który zinterpretuje wyniki, elektronicy oceniaja układy na podstawie bardzo wielu różnych parametrów, zazwyczaj każdy układ ma swoje własne wyznaczniki jakości, co innego oceniamy w generatorze co innego w zasilaczu, co innego we wzmacniaczu.

  • #4 26 Lip 2014 12:56
    ronwald
    Poziom 27  

    maszynaz napisał:

    Chciałbym napisać prosty symulator układów elektronicznych z kilku podstawowych elementów. Kluczowe elementy to R,L,C i klucze przełączające np. tranzystory. Oczywiście byłoby fajnie gdyby symulator radził sobie też z innymi elementami, ale nie jest to konieczne. Symulator będzie budował układy przy użyciu algorytmu genetycznego w oparciu o pewien ogólny opis założeń, który będzie mógł podać użytkownik.
    Ma ktoś jakieś pomysły?


    Fajna praca dyplomowa tylko po co chcesz korzystać z czyich pomysłów ? :)

  • #5 26 Lip 2014 21:30
    jarek_lnx
    Poziom 43  

    Cytat:
    Fajna praca dyplomowa tylko po co chcesz korzystać z czyich pomysłów ? Smile
    Podobno mamy więcej wykształconych młodych ludzi (40%) niż średnia europejska, więc musi być to wykształcenie gorszej jakości ;)

    Pomysły można rzucać, jeśli ktoś zaczyna od zupełnego zera i nie ma nawet ogólnej orientracji w temacie, to raczej nie zdąży z nich skorzystać.

  • #6 26 Lip 2014 22:33
    Urgon
    Poziom 36  

    AVE...

    Można ograniczyć liczbę tranzystorów do modeli rzeczywistych z losowanym wzmocnieniem prądowym i założyć, iż komponenty są niezniszczalne. Potem w fazie weryfikacji odrzucać układy z elementami o zbyt przesadzonych parametrach (na przykład tranzystory 10kV/5kA)...

  • #7 28 Lip 2014 08:23
    maszynaz
    Poziom 11  

    ronwald napisał:

    Fajna praca dyplomowa tylko po co chcesz korzystać z czyich pomysłów ? :)

    To nie jest praca dyplomowa. Ja jestem po informatyce a nie elektronice i stąd prośba o pomoc. Ten projekt chciałem zrobić z Waszą pomocą od deski do deski i opublikować całość rozwiązania na tym forum i na jakiejś darmowej stronie www tak żeby każdy mógł z niego korzystać i rozwijać. Niestety nigdzie nie można znaleźć szczegółowo wyjaśnionego algorytmu symulacji.
    jarek_lnx napisał:

    Podobno mamy więcej wykształconych młodych ludzi (40%) niż średnia europejska, więc musi być to wykształcenie gorszej jakości Wink

    Masz rację. Jestem przekonany, że większość elektroników nie widziała nigdy ani nawet nie potrafiłaby napisać tak fundamentalnej sprawy jak symulator, a przecież to powinno być podstawą w nauczaniu kierunków technicznych. Dzisiaj tworzy się jedynie produkty konsumpcyjne, sztywne i ograniczone, które służą jedynie do wyklikania czegoś a nie ma możliwości rozwiązania problemów mieszanych sformułowanych ogólnikowo np. ktoś chciałby, żeby mu komputer wymyślił obwód, który zawiera możliwie najmniejszą liczbę elementów, zawiera jedne elementy, innych nie zawiera i spełnia częściowo jakąś charakterystykę. Żaden komercyjny produkt nie daje takiej możliwości.

  • #8 28 Lip 2014 14:02
    ronwald
    Poziom 27  

    maszynaz napisał:
    Ja jestem po informatyce a nie elektronice i stąd prośba o pomoc. Ten projekt chciałem zrobić z Waszą pomocą od deski do deski i opublikować całość rozwiązania na tym forum i na jakiejś darmowej stronie www tak żeby każdy mógł z niego korzystać i rozwijać. Niestety nigdzie nie można znaleźć szczegółowo wyjaśnionego algorytmu symulacji.
    [



    1. Trzeba Ciebie pochwalić za ambicje !
    2. Zganić za zadęcie, że piszesz o brakach elektroników nie znając się na
    elektronice.
    Nie poznałeś wielu dostępnych programów symulacyjnych a ferujesz wyroki!

  • #9 28 Lip 2014 17:08
    Urgon
    Poziom 36  

    AVE...

    Jeśli to nie praca dyplomowa, to na co komu taki program? Dobry elektronik nie generuje sobie losowego układu, tylko zwykle z góry wie, czego chce, wie jak to zrobić, jakie rozwiązanie układowe zastosuje, i jak policzy parametry elementów. Twoja praca psu na budę pójdzie...

    Masz SPICE na licencji Open Source. Zgodnie z filozofią UNIX kod jest swoją własną dokumentacją. Czytaj kod, informatyku...

  • #10 28 Lip 2014 17:49
    jarek_lnx
    Poziom 43  

    Cytat:
    Jestem przekonany, że większość elektroników nie widziała nigdy ani nawet nie potrafiłaby napisać tak fundamentalnej sprawy jak symulator, a przecież to powinno być podstawą w nauczaniu kierunków technicznych.
    Większość symulatorów dostepnych na rynku pochodzi od wspólnego przodka którego stworzono jako studencki projekt na uczelni ponad 40 lat temu, skoro nie stworzono dziesiątek takich programów to znaczy że nie są aż tak "fundamentalne".
    Piszesz że większość elektroników nie widziała symulatora, pewnie w twoim wyobrażeniu elektronik to taki wąsaty dziadek co za PRL'u naprawiał telewizory?

    Jest wiele gotowych SPICE'ów, ale nie korzysta sie z nich zbyt intensywnie, bo jak ktoś jest dobrym elektronikiem to SPICE'a nie potrzebuje, a jak jest słabym to nie zrozumie dlaczego wyniki symulacji tak bardzo różnią sie od rzeczywistych układów i co zrobić żeby były choć trochę podobne.

    Cytat:
    Dzisiaj tworzy się jedynie produkty konsumpcyjne, sztywne i ograniczone, które służą jedynie do wyklikania czegoś a nie ma możliwości rozwiązania problemów mieszanych sformułowanych ogólnikowo np. ktoś chciałby, żeby mu komputer wymyślił obwód, który zawiera możliwie najmniejszą liczbę elementów, zawiera jedne elementy, innych nie zawiera i spełnia częściowo jakąś charakterystykę. Żaden komercyjny produkt nie daje takiej możliwości.
    Racja nikt nie stworzył takiego programu, tylko że jest jeden problem, nie doceniasz mnogości rozwiązań, liczby parametrów które taki program powinien móc umieć przeanalizować, oraz tego że symulacje liczy sie dość wolno, więc trudno mi sobie wyobrazić taki program który działał by całkowicie losowo, uważam że powinien mieć jakąś "bazę wiedzy" jak elementy łączyć i jakie właściwości ma jaki element, przykładowo: choć to matematycznie porawne rozwiązanie, nie budujemy filtrów LC na niskie częstotliwości, a skąd program ma wiedzieć że cewka 1H to nie tylko duża indukcyjność ale i duża nieliniowość słaba stabilność oraz mała dobroć i duże pojemności międzyzwojowe - bo tylko takie są możliwości technologii, elektronik wie że cewkę można zastąpić układem aktywnym na wzmacniaczu operacyjnym - godząc sie z pewnymi skutkami ubocznymi, a program skąd ma to wiedzieć?
    Z symulacją są jescze inne problemy istnieją układy całkowicie poprawne, dla których trudno zmusić symulator do wygenerowania jakiegokolwiek rozwiązania i nie mówię tu o trywialnym przypadku że oscylatory zazwyczaj nie oscylują jeśli nie dostaną "kopa".

    Żeby program miał sens, powinien dawać elektronikowi możliwość wykorzystania swojej wiedzy, a jest tego sporo, w tym fachu można pracować kilkadzesiąt lat i ciągle uczyć sie czegoś nowego, jak stworzyć uniwersalny język opisu reguł wg których program ma pracować i żeby napisanie tych reguł nie trwało duzo dłużej niż zaprojektowanie układu na kartce.

    Jeśli program miał by tylko generować losowo schematy był by narzędziem dla idiotów i to gorszym od ograniczonych komercyjnych narzędzi o których piszesz.

    Myślę żeby to miało jakikolwiek szanse na realizację powinieneś skupić sie na tylko jednej z dziesiątek funkcji jakie realizują układy elektroniczne. W Wikipedii piszą o użyciu algorytmów genetycznych do projektowania filtrów, to może być dobry kierunek, każde połączenie RLC będzie jakimś tam filtrem, jeśli zrezygnyjesz z elementów aktywnych każdy układ będzie sie nadawał do oceny - a to już coś.

    Cytat:
    ktoś chciałby, żeby mu komputer wymyślił obwód, który zawiera możliwie najmniejszą liczbę elementów, zawiera jedne elementy, innych nie zawiera i spełnia częściowo jakąś charakterystykę.


    Filtry jako temat mają tą wadę, że teoria dokładnie wszelkie rozwiązania wśród których twój program bedzie się "poruszał", gdy da wynik możemy matematycznie udowodnić czy dany schemat jest najprostszy, czy można go zbudować z innych elementów i czy spełnia założoną charakterystykę.

    Punkt widzenia zależy od punktu siedzenia więc napiszę tak żebyś zrozumiał.
    Szanujący sie programista unika narzędzi które automatycznie generują kod, kod taki zazwyczaj jest kiepskiej jakości, profesjonalista woli zmieć zrobione dobrze i oszczędność czasu lub pracy nie ma tu znaczenia, elektronicy mają taki podobny punkt widzenia w sprawie układów.

  • #11 27 Sie 2014 16:58
    AIVA.PL
    Poziom 1  

    Witam serdecznie. Zajmowalem się tym tematem ponad 18 lat temu. Jesli jest Pan zainteresowany tematyką symulacji to prosze o kontakt.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME