Rozwiązywanie problemów z symulacją

Gdy układ nie chce się symulować, musisz ustalić, czy problem leży w samym układzie, czy w procesie symulacji. Postępuj zgodnie z informacjami zawartymi w tej części dokumentacji i przechodź przez sugerowane punkty, testując je po kolei – po jednym naraz.

Czasami podczas symulacji wyświetlany jest komunikat informujący o błędach lub ostrzeżeniach. Komunikaty te są wymienione w panelu Messages .

  • Warning Messages – komunikaty ostrzegawcze nie są krytyczne dla symulacji. Zwykle dostarczają informacji o zmianach, które SPICE musiał wprowadzić w układzie, aby dokończyć symulację. Obejmują one m.in. nieprawidłowe lub brakujące parametry itp.
  • Error Messages – komunikaty o błędach informują o problemach, których symulator nie był w stanie rozwiązać i które były krytyczne dla procesu symulacji. Komunikaty o błędach oznaczają, że nie można było wygenerować wyników symulacji, więc muszą zostać poprawione, zanim będzie można analizować układ.

Rozwiązywanie problemów z niepowodzeniami analizy symulacji

Jednym z wyzwań wszystkich symulatorów jest zbieżność. Co dokładnie oznacza ten termin, convergence? Jak większość symulatorów, silnik SPICE w Altium Designer używa procesu iteracyjnego, polegającego na wielokrotnym rozwiązywaniu równań opisujących układ, aby znaleźć spoczynkowe napięcia i prądy w obwodzie. Jeśli nie uda się znaleźć tych napięć i prądów (brak zbieżności), nie będzie możliwe wykonanie analizy układu.

SPICE używa układu równań liniowych rozwiązywanych jednocześnie, zapisanego w postaci macierzy, aby wyznaczyć punkt pracy (napięcia i prądy DC) układu na każdym kroku symulacji. Układ jest redukowany do tablicy konduktancji, które są umieszczane w macierzy w celu utworzenia równań (G * V = I). Gdy układ zawiera elementy nieliniowe, SPICE wykonuje wiele iteracji równań liniowych, aby uwzględnić nieliniowości. SPICE wykonuje wstępne przybliżenie napięć w węzłach, a następnie oblicza prądy gałęzi na podstawie konduktancji w układzie. Potem wykorzystuje prądy gałęzi do ponownego przeliczenia napięć w węzłach i cykl się powtarza. Cykl trwa, aż wszystkie napięcia węzłowe i prądy gałęzi znajdą się w zadanych tolerancjach (osiągną zbieżność).

Jeśli jednak napięcia lub prądy nie osiągną zbieżności w określonej liczbie iteracji, SPICE generuje komunikaty o błędach (takie jak singular matrix, Gmin stepping failed, source stepping failed lub iteration limit reached) i przerywa symulację. SPICE wykorzystuje wyniki każdego kroku symulacji jako przybliżenia początkowe dla następnego kroku. Jeśli wykonujesz analizę Transient (czyli czas jest próbkowany krokami) i SPICE nie może uzyskać zbieżnego rozwiązania przy zadanym kroku czasowym, krok czasowy jest automatycznie zmniejszany i cykl jest powtarzany. Jeśli krok czasowy zostanie zmniejszony zbyt mocno, SPICE wyświetla komunikat Timestep too small i przerywa symulację.

Ogólne rozwiązywanie problemów ze zbieżnością symulacji

Gdy analiza symulacji kończy się niepowodzeniem, najczęstszą przyczyną jest brak zbieżności układu do sensownego punktu pracy. Użyj poniższych technik, aby rozwiązać problemy ze zbieżnością.

Kroki rozwiązywania problemów ze zbieżnością

  • Gdy masz problem ze zbieżnością, najpierw wyłącz wszystkie analizy poza analizą Operating Point.
  • Sprawdź panel Messages pod kątem błędów/ostrzeżeń związanych z symulacją.
  • Upewnij się, że układ jest poprawnie połączony. Niedopuszczalne są „wiszące” węzły i przypadkowe, niepodłączone elementy.
  • Upewnij się, że układ ma węzeł masy oraz że każdy węzeł w układzie ma ścieżkę DC do tej masy. Elementy, które mogą odizolować węzeł, to m.in. transformatory i kondensatory. Źródła napięciowe są traktowane jako zwarcie dla DC, a źródła prądowe jako rozwarcie dla DC.
  • Upewnij się, że podczas wprowadzania parametrów symulacji nie pomylono zera z literą O.
  • Upewnij się, że dla wartości elementów lub parametrów symulacji podano poprawne mnożniki SPICE (MEG zamiast M dla 1e6). Mnożniki nie rozróżniają wielkości liter. Niedozwolone są też spacje między wartością a mnożnikiem. Na przykład powinno być 1.0uF, a nie 1.0 uF.
  • Upewnij się, że wszystkie elementy i źródła mają ustawione właściwe wartości.
  • Upewnij się, że wzmocnienie każdego źródła zależnego jest ustawione poprawnie.
  • Tymczasowo usuń kondensatory szeregowe lub źródła prądowe i uruchom symulację ponownie.
  • Tymczasowo usuń cewki równoległe lub źródła napięciowe i uruchom symulację ponownie.
  • Na karcie Advanced w oknie dialogowym Advanced Analysis Settings (dostępnym po kliknięciu Settings w obszarze Analysis Setup & Run panelu Simulation Dashboard) zwiększ wartość parametru ITL1 do 300. Pozwoli to analizie Operating Point wykonać więcej iteracji, zanim się podda.
  • Na karcie Advanced w oknie dialogowym Advanced Analysis Settings ustaw wartość RSHUNT1. Ta wartość rezystancji jest dodawana między każdy węzeł układu a masę i pomaga korygować problemy takie jak błędy „singular matrix”. Zasadniczo wartość RSHUNT musi być ustawiona na bardzo dużą rezystancję, np. 1e12.
  • Dodaj elementy .NS (Nodeset), aby zdefiniować napięcia węzłowe. Jeśli wstępne przybliżenie napięcia węzła jest bardzo nietrafione, element Nodeset może posłużyć do wstępnego zdefiniowania napięcia startowego używanego w przejściowym przebiegu analizy punktu pracy. Skonfiguruj parametr Initial Voltage w każdym umieszczonym elemencie Nodeset. Nodeset można wstawić z biblioteki Simulation Generic Components.
  • Jeśli element Nodeset nie pomaga w uzyskaniu zbieżności, spróbuj zdefiniować warunki początkowe, umieszczając elementy .IC. W tym przypadku napięcia węzłowe są utrzymywane na zadanych wartościach podczas analizy Operating Point, a następnie zwalniane podczas analizy Transient. Elementy Initial Condition można wstawić z tych samych bibliotek co Nodeset; parametr Initial Voltage należy skonfigurować w ten sam sposób.
  • Włącz opcję Use Initial Conditions w ustawieniach Transient w obszarze Analysis Setup & Run panelu Simulation Dashboard . Ta opcja działa w połączeniu z elementami .IC (lub parametrem IC elementów). Po jej ustawieniu analiza Operating Point nie jest wykonywana, a podane napięcia są używane jako warunki początkowe dla analizy Transient.
  • Określ parametry rezystancji szeregowej w swoich modelach i zwiększ opcję GMIN (karta Advanced w oknie dialogowym Advanced Analysis Settings) o współczynnik 10.
  • Określ warunek początkowy (Starting Condition) elementów półprzewodnikowych, szczególnie diod, jako OFF. Może to pomóc rozwiązać numeryczne problemy ze zbieżnością, pomijając diodę (lub element półprzewodnikowy) w pierwszej iteracji, co poprawia zbieżność.

Rozwiązywanie problemów z analizą DC Sweep

Gdy masz problem z analizą DC Sweep, najpierw wypróbuj kroki wymienione powyżej w sekcji rozwiązywania problemów ze zbieżnością. Jeśli nadal występują problemy, spróbuj poniższego:

  • Zmień wartość parametru Step w sekcji Analysis Setup & Run w Simulation Dashboard. Jeśli w modelu elementu występują nieciągłości (np. między obszarem liniowym a nasycenia), zwiększenie kroku może pozwolić symulacji „przeskoczyć” nieciągłość. Zmniejszenie kroku z kolei pozwoli symulacji rozwiązać szybkie nieciągłości przejść napięcia.
  • Nie używaj analizy DC Sweep. Niektórych problemów (np. histerezy) nie da się rozwiązać analizą DC. W takich przypadkach skuteczniejsze jest użycie analizy Transient i płynne narastanie (rampowanie) wartości odpowiednich źródeł zasilania.

Rozwiązywanie problemów z analizą Transient

Gdy masz problem z analizą Transient, najpierw wypróbuj kroki wymienione powyżej w sekcji rozwiązywania problemów ze zbieżnością. Jeśli nadal występują problemy, spróbuj poniższego.

Na karcie Advanced w oknie dialogowym Advanced Analysis Settings (dostępnym po kliknięciu Settings w obszarze Analysis Setup & Run panelu Simulation Dashboard):

  • Ustaw parametr RELTOL na 0.01. Zwiększenie tolerancji z wartości domyślnej 0.001 (dokładność 0,1%) spowoduje, że do uzyskania zbieżnego rozwiązania będzie potrzebnych mniej iteracji, a symulacja zakończy się znacznie szybciej.
  • Zwiększ wartość parametru ITL4 do 100. Pozwoli to analizie Transient wykonać więcej iteracji dla każdego kroku czasowego, zanim się podda. Podniesienie tej wartości może pomóc wyeliminować błędy timestep too small , poprawiając zarówno zbieżność, jak i szybkość symulacji.
  • Zmniejsz dokładność, zwiększając wartości ABSTOL i VNTOL, jeśli poziomy prądu/napięcia na to pozwalają. Twój układ może nie wymagać rozdzielczości aż do 1uV lub 1pA. Należy jednak zachować co najmniej rząd wielkości poniżej najniższych oczekiwanych poziomów napięć lub prądów w układzie.
  • Zmień Integration Method na jedną z metod Gear. Całkowanie Gear wymaga dłuższego czasu symulacji, ale jest zazwyczaj stabilniejsze niż metoda trapezów. Całkowanie Gear może być szczególnie przydatne w układach, które oscylują lub mają pętle sprzężenia zwrotnego.

Dodatkowe rzeczy do wypróbowania:

  • Modeluj układ realistycznie. Dodaj realistyczne pasożyty, szczególnie pojemności pasożytnicze/złączowe. Stosuj tłumiki RC (snubbery) przy diodach. Zastępuj modele elementów podukładami (subcircuits), szczególnie dla elementów RF i mocy.
  • Zwiększ czasy narastania/opadania wszystkich źródeł Periodic Pulse w układzie. Nawet najlepsze generatory impulsów nie przełączają się natychmiastowo.
AI-LocalizedTłumaczenie SI
Jeśli znajdziesz błąd, zaznacz tekst/obraz i naciśnij Ctrl + Enter aby wysłać nam wiadomość.
Feature Availability

The features available to you depend on which Altium solution you have – Altium Develop, an edition of Altium Agile (Agile Teams or Agile Enterprise), or Altium Designer (on active term).

If you don’t see a discussed feature in your software, contact Altium Sales to find out more.

Legacy Documentation

Altium Designer documentation is no longer versioned. If you need to access documentation for older versions of Altium Designer, visit the Legacy Documentation section of the Other Installers page.

Content