Rozwiązywanie problemów z symulacją
W skrócie
- Dowiedz się, jak interpretować ostrzeżenia i błędy symulacji oraz jakie informacje dostarczają one o przyczynach jej niepowodzenia.
- Skorzystaj z listy kontrolnej, która krok po kroku prowadzi przez rozwiązywanie problemów ze zbieżnością — od sprawdzenia połączeń i uziemienia po dostosowanie zaawansowanych ustawień analizy.
- Poznaj wskazówki dotyczące rozwiązywania problemów z analizą punktu pracy, analizą stałoprądową z przemiatanem parametru i analizą stanów przejściowych, aby dobrać właściwe rozwiązanie do rodzaju symulacji, która kończy się niepowodzeniem.
Jeśli nie można przeprowadzić symulacji obwodu, należy ustalić, czy problem dotyczy obwodu, czy procesu symulacji. Postępuj zgodnie z informacjami zawartymi w tej sekcji dokumentacji i sprawdzaj kolejno sugerowane rozwiązania, po jednym naraz.
Czasami podczas symulacji wyświetlany jest komunikat o błędach lub ostrzeżeniach. Komunikaty te są wymienione w panelu Messages .
- Warning Messages – komunikaty ostrzegawcze nie powodują przerwania symulacji. Zazwyczaj informują o zmianach, które silnik SPICE musiał wprowadzić w obwodzie, aby ukończyć symulację. Dotyczą one między innymi nieprawidłowych lub brakujących parametrów.
- Error Messages – komunikaty o błędach informują o problemach, których symulator nie mógł rozwiązać i które spowodowały przerwanie procesu symulacji. Komunikaty te wskazują, że nie udało się wygenerować wyników symulacji, dlatego przed przystąpieniem do analizy obwodu należy usunąć przyczyny błędów.
Rozwiązywanie problemów z niepowodzeniem analiz symulacyjnych
Jednym z wyzwań we wszystkich symulatorach jest zbieżność. Co dokładnie oznacza termin convergence? Podobnie jak większość symulatorów, silnik SPICE w Altium Designer wykorzystuje proces iteracyjny polegający na wielokrotnym rozwiązywaniu równań opisujących obwód w celu wyznaczenia napięć i prądów w stanie spoczynkowym. Jeśli nie uda się wyznaczyć tych napięć i prądów (uzyskać zbieżności), przeprowadzenie analizy obwodu nie będzie możliwe.
SPICE wykorzystuje układ równań liniowych zapisany w postaci macierzowej do wyznaczania punktu pracy obwodu (napięć i prądów stałych) na każdym kroku symulacji. Obwód jest sprowadzany do zbioru konduktancji, które są umieszczane w macierzy w celu utworzenia równań (G * V = I). Jeśli obwód zawiera elementy nieliniowe, SPICE wykonuje wiele iteracji równań liniowych, aby uwzględnić nieliniowości. SPICE przyjmuje wstępne oszacowanie napięć węzłowych, a następnie oblicza prądy gałęzi na podstawie konduktancji w obwodzie. Następnie wykorzystuje prądy gałęzi do ponownego obliczenia napięć węzłowych i cykl się powtarza. Trwa to do momentu, aż wszystkie napięcia węzłowe i prądy gałęzi znajdą się w określonych granicach tolerancji (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 wstępne oszacowania dla następnego kroku. Jeśli wykonywana jest analiza stanów przejściowych (czyli czas jest zwiększany krokowo), a SPICE nie może uzyskać zbieżnego rozwiązania przy określonym kroku czasowym, krok ten jest automatycznie zmniejszany i cykl się powtarza. Jeśli krok czasowy zostanie nadmiernie zmniejszony, SPICE wyświetla komunikat Timestep too small i przerywa symulację.
Ogólne rozwiązywanie problemów ze zbieżnością symulacji
Gdy analiza symulacyjna kończy się niepowodzeniem, najczęstszą przyczyną jest brak zbieżności obwodu do sensownego punktu pracy. Aby rozwiązać problemy ze zbieżnością, zastosuj poniższe metody.
Kroki rozwiązywania problemów ze zbieżnością
- W przypadku problemu ze zbieżnością najpierw wyłącz wszystkie analizy z wyjątkiem analizy punktu pracy.
- Sprawdź w panelu Messages , czy występują błędy lub ostrzeżenia związane z symulacją.
- Upewnij się, że obwód jest prawidłowo połączony. Nie mogą w nim występować niepodłączone węzły ani luźne elementy.
- Upewnij się, że obwód ma węzeł masy i że każdy węzeł obwodu ma ścieżkę stałoprądową do tej masy. Do elementów, które mogą odizolować węzeł, należą transformatory i kondensatory. Źródła napięcia są traktowane jako zwarcie dla prądu stałego, a źródła prądu — jako przerwa w obwodzie dla prądu stałego.
- Upewnij się, że podczas wprowadzania parametrów symulacji nie pomylono zer z literą O.
-
Upewnij się, że dla wszystkich wartości elementów i parametrów symulacji określono prawidłowe mnożniki SPICE (
MEGzamiastMdla1e6). W mnożnikach wielkość liter nie ma znaczenia. Niedozwolone są również spacje między wartościami a mnożnikami. Na przykład należy użyć1.0uF, a nie1.0 uF. - Upewnij się, że wszystkie elementy i źródła mają ustawione prawidłowe wartości.
- Upewnij się, że wzmocnienie każdego źródła sterowanego jest ustawione prawidłowo.
- Tymczasowo usuń szeregowe kondensatory lub źródła prądu i ponownie uruchom symulację.
- Tymczasowo usuń równoległe cewki indukcyjne lub źródła napięcia i ponownie uruchom symulację.
-
Na karcie Advanced w oknie dialogowym Advanced Analysis Settings (otwieranym przez kliknięcie Settings w obszarze Analysis Setup & Run panelu Simulation Dashboard) zwiększ wartość parametru
ITL1do300. Pozwoli to analizie punktu pracy wykonać więcej iteracji przed zakończeniem próby. -
Na karcie Advanced w oknie dialogowym Advanced Analysis Settings ustaw wartość
RSHUNT1. Rezystancja o tej wartości jest dodawana między każdym węzłem obwodu a masą, co pomaga rozwiązać problemy takie jak błędy „macierzy osobliwej”. Z reguły parametr RSHUNT należy ustawić na bardzo dużą rezystancję, taką jak1e12. - Dodaj elementy .NS (Nodeset), aby zdefiniować napięcia węzłowe. Jeśli wstępne oszacowanie napięcia węzłowego znacznie odbiega od właściwej wartości, element Nodeset pozwala wstępnie określić napięcie początkowe używane podczas wstępnego przebiegu analizy punktu pracy. Skonfiguruj parametr Initial Voltage w każdym umieszczonym elemencie Nodeset. Element Nodeset można wstawić z biblioteki Simulation Generic Components.
- Jeśli element Nodeset nie pomaga uzyskać zbieżności, spróbuj zdefiniować warunki początkowe, umieszczając elementy .IC. W tym przypadku napięcia węzłowe są utrzymywane na określonych wartościach podczas analizy punktu pracy, a następnie zwalniane podczas analizy stanów przejściowych. Elementy warunków początkowych można wstawiać z tych samych bibliotek co element Nodeset, a parametr napięcia początkowego należy skonfigurować w taki sam sposób.
- Włącz opcję Use Initial Conditions w ustawieniach Transient w obszarze Analysis Setup & Run panelu Simulation Dashboard. Opcja ta współpracuje z elementami .IC (lub parametrem IC elementów). Po jej włączeniu analiza punktu pracy nie jest wykonywana, a określone napięcia są wykorzystywane jako warunki początkowe analizy stanów przejściowych.
-
Określ parametry rezystancji szeregowej modeli i zwiększ wartość opcji
GMIN(na karcie Advanced w oknie dialogowym Advanced Analysis Settings)10razy. -
Ustaw warunek początkowy (Starting Condition) elementów półprzewodnikowych, zwłaszcza diod, na
OFF. Może to pomóc rozwiązać problemy ze zbieżnością numeryczną dzięki pominięciu diody (lub elementu półprzewodnikowego) w pierwszej iteracji, co sprzyja uzyskaniu zbieżności.
Rozwiązywanie problemów z analizą przemiatania DC
W przypadku problemu z analizą przemiatania DC najpierw wykonaj czynności wymienione powyżej w krokach rozwiązywania problemów ze zbieżnością. Jeśli problemy nadal występują, wypróbuj następujące rozwiązania:
- Zmień wartość parametru Step w sekcji Analysis Setup & Run w Simulation Dashboard. Jeśli w modelu elementu występują nieciągłości (na przykład między obszarem liniowym a obszarem nasycenia modelu), zwiększenie kroku może umożliwić symulacji pominięcie nieciągłości. Z kolei zmniejszenie kroku pozwoli symulacji dokładniej odwzorować nieciągłości związane z gwałtownymi zmianami napięcia.
- Nie używaj analizy przemiatania DC. Niektórych problemów (takich jak histereza) nie można rozwiązać za pomocą analizy DC. W takich przypadkach skuteczniejsze jest zastosowanie analizy stanów przejściowych i liniowej zmiany wartości odpowiednich źródeł zasilania.
Rozwiązywanie problemów z analizą stanów przejściowych
Jeśli występują problemy z analizą stanów nieustalonych, najpierw wypróbuj opisane powyżej kroki rozwiązywania problemów ze zbieżnością. Jeśli problemy nadal występują, wypróbuj poniższe rozwiązania.
Na karcie Advanced w oknie dialogowym Advanced Analysis Settings (otwieranym przez kliknięcie Settings w obszarze Analysis Setup & Run panelu Simulation Dashboard):
-
Ustaw parametr
RELTOLna0.01. Zwiększenie tolerancji z domyślnej wartości0.001(dokładność 0,1%) zmniejszy liczbę iteracji potrzebnych do uzyskania zbieżnego rozwiązania i znacznie przyspieszy symulację. -
Zwiększ wartość parametru
ITL4do100. Pozwoli to analizie stanów nieustalonych wykonać więcej iteracji w każdym kroku czasowym przed przerwaniem obliczeń. Zwiększenie tej wartości może pomóc wyeliminować błędytimestep too small, poprawiając zarówno zbieżność, jak i szybkość symulacji. -
Zmniejsz dokładność, zwiększając wartości
ABSTOLiVNTOL, jeśli pozwalają na to poziomy prądów i napięć. Twój układ może nie wymagać rozdzielczości sięgającej 1 µV lub 1 pA. Należy jednak zachować rozdzielczość co najmniej o rząd wielkości mniejszą od najniższych oczekiwanych wartości napięcia lub prądu w układzie. - Zmień Integration Method na jedną z metod Gear. Całkowanie metodą Geara wymaga dłuższego czasu symulacji, ale jest na ogół bardziej stabilne niż całkowanie metodą trapezów. Metoda Geara może być szczególnie przydatna w układach oscylacyjnych lub zawierających pętle sprzężenia zwrotnego.
Dodatkowe rozwiązania do wypróbowania:
- Modeluj układ w sposób realistyczny. Dodaj realistyczne elementy pasożytnicze, zwłaszcza pojemności rozproszone i pojemności złączy. Zastosuj układy tłumiące RC przy diodach. Zastąp modele elementów podobwodami, zwłaszcza w przypadku elementów RF i elementów mocy.
- Zwiększ czasy narastania i opadania wszystkich źródeł impulsów okresowych w układzie. Nawet najlepsze generatory impulsów nie mogą przełączać się natychmiastowo.