SPICE - elektronika ze smakiem (2)

SPICE - elektronika ze smakiem (2)

W poprzedniej części kursu opanowaliśmy podstawy obsługi programu LTspice i poznaliśmy pierwsze dyrektywy. Głównym tematem były analizy stanu ustalonego w obwodach elektrycznych (.OP i .DC). Stan ustalony oznacza niezmienność wszystkich parametrów i sygnałów w czasie. Dlatego też w wyniku tych analiz otrzymywaliśmy pojedyncze wartości. Jednak, aby układ znalazł się w takim stanie, musi upłynąć trochę czasu, na przykład od włączenia zasilania. I między innymi tym tematem, czyli analizą czasową, zajmiemy się w niniejszym odcinku. Oprócz tego poznamy również analizę zmiennoprądową.

Mówimy, że układ znajduje się w stanie nieustalonym, jeśli wartości napięć i prądów w nim panujących ulegają zmianie w czasie. Tę problematykę najłatwiej będzie wytłumaczyć na przykładzie, dlatego rozpatrzmy niekomplikowany obwód RC z rysunku 1, w którym R=159,154 kV, C=10 pF, a źródło napięcia ma wartość 1 V. Choć mamy skupić się na stanach nieustalonych, zacznijmy od poznanej już analizy .OP, która wskaże nam, jakich wartości napięć i prądów możemy oczekiwać po okresie przejściowym (gwoli przypomnienia: symulację uruchamiamy za pomocą ikonki z ludzikiem, a po jej zakończeniu program wyświetli wartości prądów i napięć w pliku tekstowym, warto także zaglądnąć do pliku log).

Rysunek 1. Schemat układu RC po wykonaniu analizy .OP

Jak mogliśmy się spodziewać w stanie ustalonym, czyli po naładowaniu kondensatora, napięcia w węzłach NR i NC wynoszą 1 V, więc prąd nie płynie, choć program pokazuje wartości na poziomie 1e-21, 1e-24 A. Dla weryfikacji sprawdźmy, jak zachowa się analiza stanów nieustalonych, którą definiuje dyrektywa .TRAN – skrót od „transient state”. Możemy w tym celu zapisać utworzony wcześniej schemat pod nową nazwą i zamienić dyrektywę .OP np. na .TRAN 100u, co oznacza wykonanie tej analizy od czasu 0 do 100 ms. Domyślna jednostka czasu to sekunda – rysunek 2. Proszę zauważyć, że symbol mikro jest tutaj zastąpiony literą „u”, której kształt jest bardzo podobny do tego znaku. Oczywiście nie ma przeszkód, aby przy deklaracji tej analizy użyć także jednostki czasu (.TRAN 100us). W tym miejscu chciałbym także przypomnieć, aby dla każdego analizowanego przykładu oglądać jego netlistę (z menu View wybrać SPICE netlist). Ułatwi to zrozumienie i przyswojenie sobie komend, deklaracji analiz, wymuszeń i elementów.

Rysunek 2. Schemat, przebiegi i okno kursora po wykonaniu analizy .TRAN

Po wykonaniu analizy warto wyświetlić przebiegi napięcia w węzłach NR i NC, a także prądu płynącego przez rezystor i kondensator na wykresie, i porównać z wynikami wcześniejszej analizy .OP. Nie ma przeszkód, żeby użyć kursorów i tym samym ułatwić sobie to porównanie. Wykonuje się to przez kliknięcie myszką na nazwie wyświetlanego przebiegu np. „V(nr)” w oknie z przebiegami. Zostaje wówczas wyświetlony symbol dłoni, a już po kliknięciu będą pokazane: kursor w oknie z wykresami i nowe okno z wartościami w miejscu przecięcia kursora z charakterystyką (rysunek 2). Sam kursor jest wyświetlany jako biała, przerywana linia, która może być słabo widoczna na tej ilustracji. Gdy najedziemy myszką na kursor, zostanie pokazana cyfra „1” oznaczająca jego numer. Klikając i przeciągając, można przesunąć kursor w dowolne miejsce na charakterystyce. LTspice umożliwia obsługę dwóch kursorów i wyświetla wówczas także różnice w czasie i wartości.

Zapewne niejeden Czytelnik zwrócił już uwagę, iż ta symulacja miała zobrazować przebieg stanu nieustalonego, a pokazuje to samo, co poprzednio przeprowadzona analiza punktu pracy, czyli stan ustalony. Otóż, aby skrócić czas wykonania symulacji, LTSpice najpierw oblicza punkty pracy, czyli dokonuje analizy .OP, a dopiero w kolejnej fazie przeprowadza symulację czasową. Pozwala to na pominięcie etapu ustalania się wartości napięć i prądów w układzie. Jednak nic nie stoi na przeszkodzie, aby uzyskać to, do czego dążymy, czyli niejako zmusić program do zasymulowania działania analizowanego układu „od samego początku”, a więc od stanu, w którym wszystkie prądy i napięcia są równe 0. W tym celu zmienimy deklarację .TRAN 100u na .TRAN 1.5u UIC. Po kliknięciu prawym przyciskiem myszy na dotychczasowej deklaracji, otworzy się okno (rysunek 3), w którym Stop time zmieniamy na „1.5u” i zaznaczamy „Skip initial operating point solution” (pomiń obliczanie początkowego punktu pracy). Zgodnie z naszym wyborem zmieni się również deklaracja, która jest wyświetlana na dole tego okna.

Rysunek 3. Okno edytowania rodzaju analizy; analiza .TRAN z warunkami początkowymi

Po wykonaniu symulacji przebiegi napięcia i prądu zostaną zaktualizowane. Tym razem widać ładowanie kondensatora: jego napięcie narasta od 0 do 1 V, a prąd przez niego płynący skokowo wzrasta do wartości około 6,28 mA, a następnie maleje do 0. Zaleca się potwierdzenie tego poprzez pomiar przy użyciu kursorów, a także obliczenie tej wartości z prawa Ohma (w chwili, gdy napięcie na kondensatorze wynosi 0 V, napięcie na rezystorze 159, 154 kV jest równe 1 V).

Warto także porównać pliki rejestru zdarzeń (log) obu tych symulacji (skrót klawiszowy Ctrl+L). Pierwszy z nich (dla analizy układu z rysunku 2) zawiera informację o wykonaniu analizy .OP:

Direct Newton iteration for .op point succeeded.

A drugi (symulacja układu rysunku 4) zawiera informację o jej pominięciu:

Per .tran options, skipping operating point for transient analysis.

Rysunek 4. Schemat i przebiegi po wykonaniu analizy .TRAN z zerowymi warunkami początkowymi

Opcja UIC (Use Initial Conditions) oznacza, że program SPICE zamiast obliczania punktu pracy bierze wyspecyfikowane wartości początkowe napięcia lub prądu. W powyższym przykładzie nie podaliśmy żadnych takich informacji, więc program domyślnie przyjął zerowe napięcia i prądy. Żeby wskazać wyjściową wartość, np. napięcia, należy skorzystać z dyrektywy .IC – warunek początkowy (initial condition). Taką dyrektywę podaje się tak samo jak te definiujące rodzaj analizy, czyli na przykład poprzez wybranie ikonki z napisem .OP lub za pomocą skrótu k lawiszowego „S” i wprowadzenie .IC V(NC)=3 (rysunek 5). Jak można wywnioskować, ten zapis oznacza wskazanie początkowej wartości potencjału w węźle NC (czyli napięcia pomiędzy węzłami NC i 0) równej 3 V. Schemat oraz charakterystyki napięcia i prądu uzyskane w wyniku tej symulacji są zaprezentowane na rysunku 6.

Rysunek 5. Okno wprowadzania deklaracji warunku początkowego
Rysunek 6. Schemat i przebiegi po wykonaniu analizy .TRAN z niezerowymi warunkami początkowymi

Również i w tym wypadku zaleca się policzenie maksymalnej wartości prądu w chwili początkowej. Jednak teraz początkowa wartość napięcia na kondensatorze jest o 2 V większa niż na rezystorze, czyli kondensator jest rozładowywany. Prąd w stanie nieustalonym płynie w przeciwnym kierunku niż poprzednio, co widać jako prąd o ujemnym natężeniu.

Wymuszenia impulsowe i sinusoidalne

Analizowany obwód jest nazywany układem całkującym lub filtrem dolnoprzepustowym. Pierwsza nazwa wywodzi się z jego działania, a polega ono na tym, że w określonych warunkach sygnał wyjściowy (napięcie na kondensatorze) jest w przybliżeniu przeskalowaną całką z funkcji wejściowej (napięcie pomiędzy węzłami NR i 0). Z kolei jego druga nazwa wzięła się stąd, że jeżeli na jego wejście podamy napięcia sinusoidalne o różnych częstotliwościach, ale o identycznej amplitudzie i fazie początkowej, to na wyjściu otrzymamy także napięcia sinusoidalne, lecz ich amplitudy i przesunięcia fazowe mogą zostać zmienione. Oznacza to, że część sygnałów o określonej częstotliwości jest przepuszczana z wejścia na wyjście filtra praktycznie bez zmiany amplitudy i fazy, a część nie (jest tłumiona i jednocześnie sygnał jest przesunięty w fazie). W wypadku rozpatrywanego układu przenoszone są sygnały o częstotliwości mniejszej niż tak zwana górna częstotliwość graniczna fg, której wartość wynika z zastosowanych elementów:

gdzie t oznacza stałą czasową i wynosi:

Dla omawianego układu t=159,154 ns, co daje w zaokrągleniu częstotliwość fg=1 MHz. Zatem sprawdźmy za pomocą analizy czasowej zachowanie tego filtra dla trzech częstotliwości: 1 kHz, 1 MHz i 10 MHz. W tym celu zmodyfikujmy czas trwania analizy na 5 kresów sygnału wejściowego, czyli dla pierwszej częstotliwości jest to 5 ms. Aby źródło napięciowe ustawić jako sinusoidalne, należy kliknąć na nim prawym przyciskiem myszy i wybrać ustawienia zaawansowane (Advanced), jak na rysunku 7, a w nowo otwartym oknie zaznaczyć funkcję SINE i w polach DC offset (składowa stała sygnału), Amplitude (amplituda sinusoidy) i Freq (częstotliwość) wpisać odpowiednio 1, 1 kV i 1 kV (rysunek 8). Dzięki temu uzyskamy napięcie sinusoidalne o amplitudzie 1 V oscylujące z częstotliwością 1 kHz wokół 1 V.

Rysunek 7. Okno wyboru zaawansowanych ustawień źródła napięcia
Rysunek 8. Okno wyboru rodzaju niezależnego źródła napięcia – źródło sinusoidalne

Przy definiowaniu częstotliwości w MHz, jako wielokrotność jednostki mega podaje się „MEG”. Jak już wcześniej wspomniano, wielkość liter nie ma znaczenia, więc samo „m” oznacza „mili”. Rysunek 9 ilustruje wyniki otrzymane dla kolejnych częstotliwości. Dla lepszej przejrzystości pokazane są mniej więcej dwa ostatnie okresy tych sygnałów. Napięcia wejściowe „V(NR)” i wyjściowe „V(NC)” są identyczne dla częstotliwości równej 1 kHz. W wypadku częstotliwości granicznej, amplituda „V(NC)” wynosi w przybliżeniu

a dla 10 MHz już tylko około 0,11 V. Porównując ostatnią parę przebiegów, łatwo zauważyć, że maksymalne i minimalne wartości napięcia wyjściowego są opóźnione w odniesieniu do wejściowych i pojawiają się w podobnym czasie co zera napięcia wejściowego. Oznacza to opóźnienie fazy około 90°. Dla górnej częstotliwości granicznej opóźnienie to wynosi 45°.

Rysunek 9. Wyniki analizy .TRAN dla sinusoidalnego źródła napięcia o częstotliwościach: 1 kHz, 1 MHz i 10 MHz

Dodatkowa oś Y na rysunku 9 dla charakterystyk o częstotliwości 10 MHz ma pomóc w spostrzeżeniu, że jeśli sygnał wejściowy jest sinusem, to napięcie wyjściowe jest funkcją –cosinus (minus cosinus). A Czytelnicy, którzy mieli już do czynienia z całkami, wiedzą, że ta druga jest całką z pierwszej.

Uogólniając, jeżeli sygnały wejściowe mają częstotliwość dużo większą niż graniczna fg, wówczas filtr dolnoprzepustowy zachowuje się jak układ całkujący. Tym, którzy nie spotkali się jeszcze z całkowaniem funkcji, podpowiedzmy, że całką z funkcji stałej jest funkcja liniowa, a z liniowej – kwadratowa. Wybraliśmy akurat takie funkcje, ponieważ łatwo można je uzyskać zarówno z generatorów napięć, ale też z niezależnych źródeł w SPICE. Jednocześnie, aby być w zgodzie z wcześniejszym warunkiem o częstotliwości, jako funkcję stałą lub liniową będziemy traktować odpowiedni fragment okresowego przebiegu impulsowego.

Definiując impulsowe źródło napięcia należy postąpić tak, jak poprzednio, ale tym razem wybrać funkcję PULSE, a w poszczególne pola wprowadzić:

  • Vinitial –1” (napięcie początkowe),
  • Von 1” (napięcie szczytu impulsu),
  • Tdelay 0” (opóźnienie),
  • Trise 1n” (czas narastania),
  • Tfall 1n” (czas opadania),
  • Ton 49n” (czas trwania szczytu impulsu),
  • Tperiod 100n” (okres) (rysunek 10).
Rysunek 10. Okno wyboru rodzaju niezależnego źródła napięcia – źródło impulsowe; schemat układu do analizy

Poszczególne napięcia i czasy są również sprecyzowane na rysunku 11. Powyższe wartości „PULSE(–1 1 0 1n 1n 49n 100n)” dobrano tak, aby czasy narastania i opadania impulsu były krótkie, a poziomów – jednakowe (wypełnienie 50%). Poziomy przebiegu impulsowego odpowiadają funkcjom stałym.

Rysunek 11. Definicja poszczególnych parametrów impulsowego źródła napięcia

Funkcję liniową otrzymuje się poprzez wydłużenie czasu narastania i/lub opadania przy jednoczesnym skróceniu trwania poziomów, na przykład: „PULSE(–1 1 0 98n 1n 1n 100n)”.

Wyniki działania tych symulacji pokazano na rysunku 12. Widać na nim, że wyjściowe funkcję są zgodne z oczekiwaniami i mają kształt linii (całka ze stałej) i paraboli (całka z funkcji liniowej).

Rysunek 12. Wyniki symulacji czasowej układu całkującego

Analiza małosygnałowa

Za pomocą symulacji transient pokazaliśmy, jak działa filtr w kilku wybranych punktach (częstotliwościach). Pełną charakterystykę częstotliwościową filtru dużo łatwiej jest zobrazować za pomocą małosygnałowej analizy zmiennoprądowej .AC, której zadaniem jest obliczenie wartości napięć i prądów w funkcji częstotliwości. Na początku wykonuje ona obliczenia punktu pracy elementów, który jest następnie wykorzystany do linearyzacji parametrów elementów nieliniowych. W wyniku tego analiza oblicza wzmocnienie, a to oznacza, że warto podać jednostkową amplitudę napięcia wejściowego. Wówczas amplituda sygnału wyjściowego będzie równa wzmocnieniu. Nie ma tutaj obaw, że np. wzmacniacz zostanie przesterowany, ponieważ nie jest to brane pod uwagę.

Przy tworzeniu schematu źródło napięcia AC definiujemy również podobnie jak we wcześniejszych analizach, ale tym razem nie wybieramy żadnej funkcji (Functions – none), tylko w polu AC Amplitude wpisujemy „1” (rysunek 13). Podczas wprowadzania dyrektywy definiującej rodzaj analizy wpisujemy „.AC dec 10 1 1G”. Słowo „dec” wskazuje, że zakres częstotliwości będzie podzielony na dekady. Dekada oznacza przedział pomiędzy dwoma kolejnymi rzędami wielkości, na przykład od 1 Hz do 10 Hz, od 10 kHz do 100 kHz. Liczba „10” definiuje, dla ilu punktów w jednej dekadzie będą przeprowadzone obliczenia. Ostatnie dwie liczby określają zakres częstotliwości, zatem w naszym przykładnie mamy 9 dekad.

Rysunek 13. Okno wyboru rodzaju niezależnego źródła napięcia – źródło AC

Po przeprowadzeniu symulacji wyświetlamy uzyskane charakterystyki poprzez kliknięcie na węźle „NC”. W jednym polu są zobrazowane dwa przebiegi: wzmocnienia i fazy. Każdy z nich ma osobną oś Y. Oś X jest wyświetlana w skali logarytmicznej, w której każda dekada ma taką samą „długość”. Jednostką wzmocnienia jest domyślnie decybel dB, zdefiniowany jako

Spadek wzmocnienia dla częstotliwości granicznej (0,707) jest równy –3 dB. Również wykresy fazowe potwierdzają wyniki uzyskane za pomocą analizy transient, czyli faza dla częstotliwości przenoszonych jest równa 0°, dla częstotliwości granicznej jest równa 45°, a powyżej pasma przenoszenia dąży do 90°.

Rysunek 14. Wyniki działania małosygnałowej analizy .AC

Podsumowanie

Analiza transient jest ogólnie definiowana jako .tran krok stop [start] [krokmaks] [uic], gdzie krok jest k rokiem wyświetlania wyników na wykresach, a stop ustala czas symulacji. W LTspice krok nie jest konieczny i dlatego może być p ominięty lub u stawiony na zero. Kolejna i tym razem opcjonalna wartości to start, która domyślnie jest zerem. Nie oznacza ona, że symulacja może rozpocząć się w innym czasie niż zero, a jedynie, że sygnały pomiędzy czasem zero a tym wyszczególnionym nie są zapisywane.

Z kolei krokmaks określa, jaki może być maksymalny krok obliczeń. Ustawienie tego parametru na zbyt małą wartość – wydłuża czas symulacji, ale z drugiej strony przesadnie duża wartość może spowodować niezauważenie czy pominięcie jakiegoś szczegółu w zachowaniu układu. Opcja uic powoduje zaniechanie obliczania początkowego punktu pracy i w zamian użycie wartości podanych przez dyrektywę .IC.

Symulacje małosygnałowe precyzuje się za pomocą deklaracji „.ac oct/dec/lin liczba_ punktów początkowa_częstotliwość końcowa_ częstotliwość”, gdzie:

  • oct, dec, lin oznaczają podział zakresu częstotliwości na oktawy, dekady lub liniowy,
  • liczba_ punktów określa liczbę punktów na oktawę, dekadę bądź całą symulację (dla podziału liniowego),
  • początkowa_częstotliwość i końcowa_częstotliwość definiują zakres badanych częstotliwości.

Ustawienia początkowych warunków symulacji dokonuje się poprzez deklarację „.IC V(węzeł1)=wartość1 [V(węzeł2)=wartość2] …”, gdzie:

  • wartość1 oznacza początkową wartość napięcia w węźle węzeł1 (można wyspecyfikować więcej niż jeden warunek początkowy).

Źródło napięcia sinusoidalnego i impulsowego definiujemy za pomocą następujących deklaracji:

  • Vnazwa_źródła węzeł_dodatni węzeł_ujemny SINE(składowa_ stała amplituda częstotliwość)
  • Vnazwa_źródła węzeł_dodatni węzeł_ujemny PULSE(napięcie_ początkowe napięcie_szczytu_impulsu opóźnienie czas_narastania czas_opadania czas_trwania_szczytu_impulsu okres)

Poznane w tej części kursu analizy: czasowa i małosygnałowa, uzupełniają podstawowe rodzaje symulacji w programach SPICE. Wprowadzono także definicje sinusoidalnych i impulsowych niezależnych źródeł napięcia oraz wykorzystanie warunków początkowych. Opanowanie tych rzeczy daje możliwość badania zachowania układów w dziedzinie czasu i częstotliwości.

Adam Gołda
adlogmada@gmail.com

Bibliografia:

[1] J. Porębski, P. Korohoda, SPICE program analizy nieliniowej układów elektronicznych, WNT 1996
[2] ltwiki.org, styczeń 2019

Artykuł ukazał się w
Elektronika Praktyczna
marzec 2019

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Automatyka, Podzespoły, Aplikacje kwiecień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich maj 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów