Wprowadzenie do elektroniki/Symulacja Spice/Filtr aktywny dolnoprzepustowy
Z Spice na Linux jest kilka problemów, które sprawiają, że proste symulacje mogą sprawić kłopoty.
Sporym problemem okazał się dla mnie dopasowanie modelów elementów z symbolami w edytorze graficznym.
Budowanie środowiska
[edytuj]sudo apt-get install geda sudo apt-get install ngspice
Alternatywny symulator.
sudo apt-get install gnucap
Pierwsza symulacja. Aktywny filtr dolnoprzepustowy
[edytuj]Symulacja filtru dolnoprzepustowego, który to filtr posłuży do zamiany sygnału prostokątnego PWM na analogowy.
Rysujemy Schemat w programie Geda
[edytuj]Jak widać na schemacie wykorzystamy wzmacniacz operacyjny LM741. O ile symbol graficzny wzmacniacza jest mniej istotny (wstawiłem dowolny) o tyle model do symulacji jest już istotny. W Googlach szukamy modelu:
Pierwszy link z góry dostarcza nam wymaganego modelu (tu link szczegółowy http://www.ti.com/lit/zip/snom211). W edytorze Geda dodajemy element typu A? Spice Model i wypełniamy pola:
- Model name:LM741
- File: /LM741.mod (Jeśli model jest w tym samym katalogu co schemat)
Nie wolno zapomnieć o atrybucie model-name przy symbolu wzmacniacza operacyjnego !!!!
Sygnał prostokątny reprezentowany jest przez element:
Źródło VPulse parametryzuje się w następujący sposób.
PULSE ( V1 V2 TD TR TF PW PER ) PULSE ( 0 10 0 0 0 50m 100m )
- V1 - napięcie niskie (u nas 0)
- V2 - napięcie impulsu (u nas 10 Voltów)
- TD - opóźnienie startu impulsów
- TR - czas narastania
- TF - czas opadania
- PW - czas trwania impulsu (u nas 50ms)
- PER - Okres Czas po którym impuls się powtórzy (u nas 100 ms)
Uwaga!!!!
[edytuj]Poniżej fragment (lekko zedytowany aby pokazać mapowanie) pobranego pliku modelu układu LM741. W pliku modelu znajduje się mała pomoc odnośnie wyprowadzeń.
* connections: non-inverting input * | inverting input * | | positive power supply * | | | negative power supply * | | | | output * | | | | | * | | | | | .SUBCKT LM741 1 2 99 50 28 *[...] | | | | | * XU5 2 out Vcc -Vcc out LM741 *tak będzie zmapowany układ z modelem - dwie ostatnie linijki nie znajdują się w modelu
Inaczej. Pobrany plik modelu zawiera pewien opis wyprowadzeń a w wygenerowanej netliście (rozdział niżej) znajduje się taka linijka
XU5 2 out Vcc -Vcc out LM741
Układ U5 zostaje zmapowany następująco
- Wejście nieodwracające modelu - do etykiety oznaczonej nr 2 w liście połączeń
- Wejście odwracające do etykiety out
- + zasilania modelu do Vcc na schemacie
- - zasilania modelu do -Vcc na schemacie
- wyjście modelu do etykiety "out" na schemacie
Zawsze to mapowanie lepiej sprawdzić przed symulacją bo będzie boleć
Aby przystosować schemat do symulacji konieczne są jeszcze dwa kroki.
- Musimy jeden punkt (najczęściej masę układu) opatrzyć etykietą. Na linii połączeń klikamy ppm i wybieramy: dodaj_atrybut->netname ustawiamy wartość 0
- Punkt obserwacji musimy opatrzyć dowolną etykietą (PPM->Dodaj_atrybut->netname ustawiamy na "out").
Generowanie Net-listy
[edytuj]gnetlist -g spice-sdb -o spice.net fdp.sch
gdzie fdp.sch to plik schematu a spice.net to plik wynikowy polecenia.
następnym krokiem jest uruchomienie symulatora
ngspice
w powłoce ngspice wczytujemy netlistę
ngspice 1 -> source spice.net
wykonanie symulacji w dziedzinie czasu
ngspice 2 -> tran 1us 3s
Symulacja będzie wykonywana z krokiem mikro sekundy, a czas symulacji wyniesie 3 sekundy. Po wykonaniu symulacji rysujemy wykres
ngspice 3 -> plot out
out to punkt dla którego rysujemy wykres.
Podsumowanie symulacji
[edytuj]Ponieważ na wejściu filtra jest sygnał prostokątny o amplitudzie 10 [V] i wypełnieniu 50% Napięcie na wyjściu filtra ustabilizuje się na poziomie 5V po czasie około 1,6 [s] Cały projekt do pobrania http://chomikuj.pl/mysiadziura/www.marekk.dreamhosters.com/filt+dolnoprzepustowy,4367917128.zip(archive)