Podstawy metody Monte Carlo w SPICE: Teoria i demonstracja

Zachariah Peterson
|  Utworzono: kwiecień 14, 2022  |  Zaktualizowano: wrzesień 3, 2024
Monte Carlo w SPICE

Za każdym razem, gdy umieszczasz komponent na swojej płytce PCB, to niemal jakbyś uprawiał hazard. Wszystkie komponenty mają tolerancje, a niektóre z nich są bardzo precyzyjne (na przykład rezystory), ale inne komponenty mogą mieć bardzo szerokie tolerancje swoich nominalnych wartości (np. induktory drutowe lub ferryty). W przypadku, gdy tolerancje tych komponentów staną się zbyt duże, jak możesz przewidzieć, jak te tolerancje wpłyną na twoje obwody?

Chociaż mógłbyś obliczyć wariacje wokół nominalnych wartości elektrycznych (napięcie, prąd lub moc) ręcznie, przeprowadzanie tych obliczeń ręcznie jest bardzo czasochłonne, szczególnie w dużych obwodach. Jednak symulatory SPICE pożyczyły bardzo użyteczny rodzaj symulacji z teorii prawdopodobieństwa, aby pomóc ci odpowiedzieć na te pytania. Ten rodzaj symulacji jest znany jako Monte Carlo, i teraz możesz przeprowadzić tę symulację z pakietem SPICE w Altium Designer.

W tym artykule przedstawię przegląd teorii związanej z rozumieniem i budowaniem symulacji Monte Carlo, a następnie pokażę przykładowe wyniki dla obwodu regulatora mocy i jak wyniki są wpływane przez tolerancje. Symulacje Monte Carlo generują dużą ilość danych, które możesz wykorzystać do przeprowadzenia statystyk dotyczących działania twojego obwodu, co daje ci dobry pomysł na to, czy twój produkt ma duże szanse działać zgodnie ze specyfikacjami ze względu na tolerancje wartości komponentów.

Monte Carlo w symulacjach SPICE

Symulacje Monte Carlo działają na prostym procesie: losowo generują zestaw liczb, a następnie używają tych losowych liczb w modelu matematycznym do obliczenia czegoś użytecznego. Gdy symulacja Monte Carlo jest używana w SPICE, symulacja generuje losowo wartości komponentów w twoim obwodzie, używając tolerancji, które zdefiniowałeś. Następnie używa tych losowo wygenerowanych wartości komponentów do przeprowadzenia standardowej symulacji SPICE. Proces ten jest powtarzany wielokrotnie (czasami setki razy), aby dać ci zestaw danych opisujących, jak zachowanie twojego obwodu zmienia się ze względu na tolerancje komponentów.

Pakiety SPICE implementują symulacje Monte Carlo poprzez prosty proces. Obejmuje to generowanie liczb losowych i obliczanie napięcia oraz prądu w standardowym algorytmie SPICE, a następnie wyświetlanie wyników w tabeli lub na wykresie:

  1. Wybierz, które komponenty mają doświadczać losowych wahań i zdefiniuj tolerancję dla komponentu.
  2. Wybierz rozkład tolerancji komponentów (najczęściej używany jest Gaussa) oraz liczbę przebiegów symulacji.
  3. Symulator SPICE generuje losowe wartości komponentów używając nominalnych wartości zdefiniowanych w schemacie oraz tolerancji/rozkładu zdefiniowanego w kroku 2.
  4. Symulator SPICE oblicza docelowe napięcie/prąd/moc w każdym punkcie obwodu, używając losowych wartości komponentów z kroku 3.
  5. Kroki 3 i 4 są powtarzane do momentu osiągnięcia żądanej liczby przebiegów symulacji.
  6. Wyniki z kroku 5 są kompilowane do wykresu lub tabeli w celu dalszego przeglądu lub analizy.

Przykład: Symulacja Monte Carlo regulatora napięcia

W nadchodzącym przykładzie użyłem układu przetwornicy obniżającej napięcie pokazanego poniżej. Ten obwód używa stosunkowo dużego dławika w głównej sekcji (L1), po którym następuje filtr L na wyjściu, aby jeszcze bardziej zmniejszyć szum przełączania. Kondensator wyjściowy ma rezystor tłumiący, który pomaga zmniejszyć siłę odpowiedzi przejściowej i wygładza napięcie wyjściowe.

Monte Carlo SPICE buck converter
Obwód konwertera Buck, którego użyję w tej przykładowej symulacji.

Ten obwód ma na celu obniżenie napięcia wejściowego z 25 V do około 6,75 V. W mojej symulacji pozwolę, aby wartości indukcyjności zmieniały się o maksymalnie 30%, i przeprowadzę 15 prób. Tak duża zmienność może występować w niektórych induktorach drutowych i ferrytach, a użycie tak dużego zakresu zmienności może pomóc zobaczyć, jakie mogą być ekstremalne wartości szumów i przepięć.

Innym powodem, dla którego induktor jest zmiennym komponentem, jest to, że jest on głównym determinantem szumów wyjściowych gdy przetwornica pracuje w trybie ciągłej przewodności. Moglibyśmy nawet pójść o krok dalej i przyjrzeć się samemu prądowi induktora, aby zobaczyć, jak blisko prąd induktora zbliża się do ciągłej przewodności, jeśli naprawdę musielibyśmy zweryfikować najgorsze przypadki zachowań elektrycznych.

Wyniki

Początkowe wyniki pokazujące odpowiedź przejściową przy 30% zmianach wartości komponentów przedstawiono poniżej. Z tego okna widzimy, że przetwornica już wykazuje pewne przeregulowanie w zakresie od 8,37 V do 8,56 V, w zależności od wartości dławików. Wartości dla dolnego konturu (na zielono, L1 = 91,9 uH, L2 = 6,16 uH) i górnego konturu (na fioletowo, L1 = 122uH, L2 = 7,64 uH) są zaznaczone na poniższym wykresie.

Monte Carlo SPICE simulation
Wyniki analizy stanów przejściowych dla naszego konwertera buck wygenerowanego przy użyciu Monte Carlo w SPICE.

Każda krzywa odpowiada parze losowo wygenerowanych wartości dławików. Z wyników jasno wynika wpływ zmian dławika:

  1. Występują pewne zmiany w czasie narastania, przeregulowaniu i odpowiedzi przejściowej, gdy regulator się włącza.
  2. Każda możliwa wartość indukcyjności powoduje bardzo małe zmiany w tętnieniach na przebiegu napięcia wyjściowego.

Fakt, że tętnienia wyjściowe pozostają tak niskie, jest zachęcający; oznacza to, że możemy polegać na tej konstrukcji pod względem wydajności tętnień przy założeniu małych zmian we wszystkich innych parametrach.

Dlaczego zmiana tętnień jest tak niska?

Nie zaglądając do równania dla napięcia tętnień na wyjściu jako funkcji indukcyjności wyjściowej, naturalnym jest zakładanie, że zmiana indukcyjności o +/- 30% spowodowałaby podobnie duże zmiany w indukcyjności wyjściowej. Jednakże, jeśli przyjrzymy się równaniu dla tętnienia napięcia na prądzie wyjściowym dla przetwornicy typu buck pracującej w trybie ciągłego przewodzenia, możemy zrozumieć, dlaczego nie jest to prawda:

Monte Carlo SPICE
Tętnienia prądu wyjściowego przetwornicy obniżającej napięcie.

Ponieważ wartość indukcyjności znajduje się w mianowniku, wpływ tych zmian jest zmniejszony. Można to zobaczyć, biorąc pod uwagę zaburzenie wokół nominalnych wartości induktora i patrząc, jak wrażliwość tętnień jest proporcjonalna do jakiejkolwiek zmiany w indukcyjnościach:

Monte Carlo SPICE
Zmiany wyjściowego prądu tętniącego dla naszej 30% tolerancji na cewkach indukcyjnych. Widzimy, że wpływ tych zmian jest mniejszy, gdy cewka jest większa.

Wpływ tych zmian jest zmniejszony przez wartość induktora. Innymi słowy, tolerancja 30% dla dużego induktora spowoduje znacznie mniejszą zmianę tętnień na wyjściu niż ta sama tolerancja 30% na mniejszym induktorze. To zachowanie jest typowe, gdy związek między pewną wartością elektryczną (w tym przypadku prądem) jest nieliniowo związany z wartością danego komponentu.

Ponadto częstotliwość zaniku 3 dB w filtrze wyjściowym (L2 + C2) jest już poniżej częstotliwości PWM modulującej Q1. Zanik 3 dB w tej sekcji filtru wynosi nominalnie 41,1 kHz, podczas gdy częstotliwość tętnień odpowiada częstotliwości PWM wynoszącej 100 kHz. Tętnienia będą już znacząco filtrowane, więc wynikające zmiany w częstotliwości zaniku nie mają tak dużego wpływu na tętnienia na wyjściu.

Analiza Statystyczna

Jeśli zamierzasz przeprowadzić analizę Monte Carlo, możesz potrzebować pewnej analizy statystycznej, aby naprawdę zrozumieć granice zachowania twojego obwodu z powodu losowych zmian wartości komponentów. Na poniższym wykresie wziąłem moje powyższe wyniki analizy przejściowej i wyodrębniłem maksymalne napięcie, które występuje podczas fazy włączania z powodu przesterowania. Obliczyłem średnią i odchylenie standardowe, aby ocenić wpływ zmian wartości indukcyjności.

Aby wyeksportować swoje wyniki przejściowe w formacie CSV lub innym formacie danych, użyj polecenia Plik → Eksportuj → Wykres z głównego menu w Altium Designer. Następnie możesz zaimportować swoje dane do Excela, MATLABa, Mathematici lub innego programu do analizy danych.

Monte Carlo SPICE statistics
Średnie i odchylenie standardowe napięcia przekroczenia wyznaczone na podstawie reakcji przejściowych.

Jeśli zbudujemy przedział ufności wykorzystując nasze zebrane dane oraz powyższe wartości statystyczne, 95% tych obwodów będzie wykazywać przekroczenie zakresu od 8,375 V do 8,605 V. Jeśli chcielibyśmy przeprowadzić dalszą analizę, taką jak analiza najgorszego przypadku, moglibyśmy użyć jednej z tych skrajnych wartości, aby zrozumieć zachowanie obwodu.

Ocena niezawodności przy użyciu większych zbiorów danych

Aby statystycznie ocenić niezawodność, można przeprowadzić znacznie większą liczbę symulacji, co oznaczałoby posiadanie dużej liczby punktów danych do analizy. Dysponując większą ilością danych, można by zbudować histogram z wyekstrahowanych pomiarów i użyć go do uzyskania rozkładu prawdopodobieństwa, który definiuje zachowanie obwodu; następnie można by użyć tych wartości do określenia prawdopodobieństwa, że obwód działa w całkowicie nieakceptowalnym reżimie (poza skrajnymi wartościami w naszym przedziale ufności).

Dla zabawy zwiększyłem liczbę symulacji przeprowadzonych w tej analizie do 100 przebiegów. Poniżej pokazano wyniki przejściowe z 100 iteracji. Na podstawie tych krzywych możemy ponownie wyekstrahować maksymalne napięcie przekroczenia podczas fazy włączania.

Monte Carlo SPICE statistics
Reakcja przejściowa w ciągu pierwszych 100 us fazy włączenia. Z tego zestawu 100 krzywych możemy wyodrębnić napięcie przekroczenia dla każdej krzywej i określić rozkład prawdopodobieństwa opisujący napięcie maksymalne.

Jeśli wyeksportujesz wyniki do Excela, będziesz teraz miał wystarczająco dużo danych, aby stworzyć histogram podobny do pokazanego poniżej. Nakładana pomarańczowa krzywa pokazuje skumulowaną funkcję określoną na podstawie danych zgrupowanych; pokazuje, jaki procent danych mieści się na poziomie bieżącego przedziału lub poniżej i może być używany jako miara oczekiwanego zakresu pracy tego obwodu.

Monte Carlo SPICE statistics
Statystyki napięcia przekroczenia ustalone na podstawie 100 symulacji.

Wnioskiem tutaj jest to, że mamy szybki i łatwy sposób, aby sprawdzić, jak zmienność parametrów komponentów wpłynie na wydajność obwodu. Jeśli wyniki nie mieszczą się w naszych specyfikacjach lub marginesach bezpieczeństwa, wtedy obwód będzie musiał zostać zmodyfikowany przed stworzeniem układu PCB i złożeniem prototypu.

Jeśli jesteś zainteresowany przeprowadzaniem symulacji Monte Carlo dla swoich obwodów w Altium Designer®, nie potrzebujesz zewnętrznego pakietu symulacyjnego ani specjalistycznego oprogramowania do analizy. Wszystko, czego potrzebujesz do oceny swoich obwodów i przeprowadzenia symulacji niezawodności, można znaleźć w edytorze schematów w Altium Designer. Gdy już zakończysz pracę nad swoją płytą PCB i będziesz gotowy, aby podzielić się swoimi projektami z współpracownikami lub producentem, możesz udostępnić swoje gotowe projekty za pośrednictwem platformy Altium 365™. Wszystko, czego potrzebujesz do projektowania i produkcji zaawansowanej elektroniki, można znaleźć w jednym pakiecie oprogramowania.

Dotknęliśmy tylko wierzchołka góry lodowej możliwości, jakie daje Altium Designer na Altium 365. Zacznij swoją darmową próbę Altium Designer + Altium 365 już dziś.

About Author

About Author

Zachariah Peterson ma bogate doświadczenie techniczne w środowisku akademickim i przemysłowym. Obecnie prowadzi badania, projekty oraz usługi marketingowe dla firm z branży elektronicznej. Przed rozpoczęciem pracy w przemyśle PCB wykładał na Portland State University i prowadził badania nad teorią laserów losowych, materiałami i stabilnością. Jego doświadczenie w badaniach naukowych obejmuje tematy związane z laserami nanocząsteczkowymi, elektroniczne i optoelektroniczne urządzenia półprzewodnikowe, czujniki środowiskowe i stochastykę. Jego prace zostały opublikowane w kilkunastu recenzowanych czasopismach i materiałach konferencyjnych. Napisał ponad 2000 artykułów technicznych na temat projektowania PCB dla wielu firm. Jest członkiem IEEE Photonics Society, IEEE Electronics Packaging Society, American Physical Society oraz Printed Circuit Engineering Association (PCEA). Wcześniej był członkiem z prawem głosu w Technicznym Komitecie Doradczym INCITS Quantum Computing pracującym nad technicznymi standardami elektroniki kwantowej, a obecnie jest członkiem grupy roboczej IEEE P3186 zajmującej się interfejsem reprezentującym sygnały fotoniczne przy użyciu symulatorów obwodów klasy SPICE.

Powiązane zasoby

Powiązana dokumentacja techniczna

Powrót do strony głównej
Thank you, you are now subscribed to updates.