PSpice i dyrektywa .FOUR
Masz problem? Zapytaj na forum elektroda.pl z bramką pl.misc.elektronika!
From: Witold Kopacz <wkopacz_at_nospam_panamint.ict.pwr.wroc.pl>
Subject: PSpice i dyrektywa .FOUR
Date: 11 Mar 1998 08:07:44 GMT
Hi !
Pytanie jest proste ( nie mam pod reka literatury...),
jaki poziom znieksztalcen mozemy uznac za wiarygodny...
1% (to na pewno... ?)
0.1% ?
0.01% -a moze jeszcze mniej ?
zalozny ze jest to prosty wzm. tranzystorowy, pracujacy
w liniowej czesci ch-ki (tzn. jeszcze nie obcina...)
Uklony,
WitKo.
--
e-mail: wkopacz_at_nospam_panamint.ict.pwr.wroc.pl
From: "Jaroslaw Lis" <lis_at_nospam_papuga.ict.pwr.wroc.pl>
Subject: Re: PSpice i dyrektywa .FOUR
Date: 11 Mar 1998 17:44:09 GMT
Witold Kopacz <wkopacz_at_nospam_panamint.ict.pwr.wroc.pl> wrote:
Pytanie jest proste ( nie mam pod reka literatury...),
jaki poziom znieksztalcen mozemy uznac za wiarygodny...
1% (to na pewno... ?)
0.1% ?
0.01% -a moze jeszcze mniej ?
zalozny ze jest to prosty wzm. tranzystorowy, pracujacy
w liniowej czesci ch-ki (tzn. jeszcze nie obcina...)
Na prostym, klasycznym, ukladzie wzmacniacza ze sprzezeniem zwrotnym
uzyskasz w granicach 0.1-1% znieksztalcen.
J.
From: Olgierd Cybulski <cybulski_at_nospam_pkpf.if.uj.edu.pl>
Subject: Re: PSpice i dyrektywa .FOUR
Date: Wed, 11 Mar 1998 23:51:51 +0100
Jaroslaw Lis wrote:
jaki poziom znieksztalcen mozemy uznac za wiarygodny...
1% (to na pewno... ?)
0.1% ?
0.01% -a moze jeszcze mniej ?
zalozny ze jest to prosty wzm. tranzystorowy, pracujacy
w liniowej czesci ch-ki (tzn. jeszcze nie obcina...)
Na prostym, klasycznym, ukladzie wzmacniacza ze sprzezeniem zwrotnym
uzyskasz w granicach 0.1-1% znieksztalcen.
Przy bardzo małych sygnałach zniekształcenia mogą być
dowolnie bliskie zeru, tyle, że wtedy szumy stają się
porównywalne z sygnałem, więc cała analiza
w układach nierezonansowych traci sens.
Co się zaś tyczy samego PSPICE'a , to wyniki jego
analizy .FOUR niekoniecznie muszą być wiarygodne,
i to zwłaszcza przy małych sygnałach.
Przy analizie typu TRANSIENT, czyli takiej, jaka
potrzebna jest do analizy fourierowskiej zniekształceń,
sama metoda symulacji wprowadza błędy zwiększające
zniekształcenia nieliniowe (krok czasowy, dokładności,
czyli parametry typu PIVOT, PIVREL itp), tak, że nawet
układ zbudowany w oparciu o idealnie liniowy model
tranzystora w wyniku analizy numerycznej miałby
"zniekształcenia nieliniowe" w rzeczywistości
będące artefaktami obliczeń numerycznych.
Najprościej uniezależnić się od błędów numerycznych
symulacji badając zależność wyniku (współczynnika
zniekształceń harmonicznych itp.) od parametrów
analizy (np. kroku czasowego).
Zmniejszamy krok czasowy tak długo, aż wynik
obliczeń przestaje od niego zależeć (podobnie
z resztą istotnych parametrów, najlepiej zmieniać
wszystkie naraz).
A swoją drogą SPICE jest genialny, pomijam tu konkretne
aplikacje, same algorytmy tam zastosowane zasługują
na uznanie nie tylko elektroników.
Olgierd Cybulski
From: Witold Kopacz <wkopacz_at_nospam_panamint.ict.pwr.wroc.pl>
Subject: Re: PSpice i dyrektywa .FOUR
Date: 13 Mar 1998 07:37:40 GMT
Olgierd Cybulski <cybulski_at_nospam_pkpf.if.uj.edu.pl> wrote:
Przy bardzo małych sygnałach zniekształcenia mogą być
dowolnie bliskie zeru, tyle, że wtedy szumy stają się
porównywalne z sygnałem, więc cała analiza
w układach nierezonansowych traci sens.
Co się zaś tyczy samego PSPICE'a , to wyniki jego
analizy .FOUR niekoniecznie muszą być wiarygodne,
i to zwłaszcza przy małych sygnałach.
i wlasnie o to mi chodzilo ...
Przy analizie typu TRANSIENT, czyli takiej, jaka
potrzebna jest do analizy fourierowskiej zniekształceń,
sama metoda symulacji wprowadza błędy zwiększające
zniekształcenia nieliniowe (krok czasowy, dokładności,
czyli parametry typu PIVOT, PIVREL itp), tak, że nawet
układ zbudowany w oparciu o idealnie liniowy model
tranzystora w wyniku analizy numerycznej miałby
"zniekształcenia nieliniowe" w rzeczywistości
będące artefaktami obliczeń numerycznych.
z tego co widac podczas obliczen (krok calkowania),
to jest on zmienny, a zakres zmiennosci obejmuje co najmniej
dwie dekady ...
np.
vin 1 0 ac sin(0,0.1,1k,0,0) ; zrodlo sinusoida 1khz 0.1Vpp
...
.tran 20n 2m ; horyzont 2ms (dwa okresy) krok dobierany automatycznie
zmienia sie od dziesiatek ns do dziesiatek us - czyli 3 dekady (?)
.four v([out]) vin
tu pytanie czy oplaca sie zwiekszac horyzont (tzn badac wiecej okresow) ?
czy moze poprzestac na jednym okresie sygnalu ? (pewnie tak ...)
ustawienie :
.tran 20n 2m 10u nieco polepszylo sytuacje...
Najprościej uniezależnić się od błędów numerycznych
symulacji badając zależność wyniku (współczynnika
zniekształceń harmonicznych itp.) od parametrów
analizy (np. kroku czasowego).
Zmniejszamy krok czasowy tak długo, aż wynik
obliczeń przestaje od niego zależeć (podobnie
z resztą istotnych parametrów, najlepiej zmieniać
wszystkie naraz).
^^^ otoz to !! moze ktos to juz zrobil i wie jakie sa optymalne
nastawy (interesuje mnie 10 -20 harmonicznych, oraz dokladnosc
rzedu 0.01 % o ile da sie taka uzyskac ...) ?
po co wywazac otwarte drzwi ... (poza tym jest to bardzo czasochlonne
- mam tylko 486dx4-100 )
z gory dziekuje,
WitKo.
--
e-mail: wkopacz_at_nospam_panamint.ict.pwr.wroc.pl
From: "tomek" <malarz_at_nospam_kt.agh.edu.pl>
Subject: Re: PSpice i dyrektywa .FOUR
Date: Fri, 13 Mar 1998 22:16:07 +0100
Witold Kopacz napisał w wiadomości: <6eano4$d1p$1_at_nospam_sun1000.pwr.wroc.pl>
m.in.:
np.
vin 1 0 ac sin(0,0.1,1k,0,0) ; zrodlo sinusoida 1khz 0.1Vpp
pisze sie po prostu "vin 1 0 sin(0,0.1,1k,0,0)"
.tran 20n 2m ; horyzont 2ms (dwa okresy) krok dobierany automatycznie
zmienia sie od dziesiatek ns do dziesiatek us - czyli 3 dekady (?)
.four v([out]) vin
chciales napisac ".four 1k v([out])" ?
tu pytanie czy oplaca sie zwiekszac horyzont (tzn badac wiecej okresow) ?
czy moze poprzestac na jednym okresie sygnalu ? (pewnie tak ...)
jesli chodzi Ci o .tran, to zalezy od ukladu - czy szybko dochodzi do
stabilnego
stanu, w kazdym razie jeden okres to za malo (czasem wystarczy 1.5,
a czasem trzeba 1000 okresow)
ustawienie :
.tran 20n 2m 10u nieco polepszylo sytuacje...
Nie wiem, dlaczego polepszylo.
Daj raczej ".tran 20n 2m 1m 20n" albo ".tran 2n 2m 1m 2n"
Najprościej uniezależnić się od błędów numerycznych
symulacji badając zależność wyniku (współczynnika
zniekształceń harmonicznych itp.) od parametrów
analizy (np. kroku czasowego).
Zmniejszamy krok czasowy tak długo, aż wynik
obliczeń przestaje od niego zależeć (podobnie
z resztą istotnych parametrów, najlepiej zmieniać
wszystkie naraz).
^^^ otoz to !! moze ktos to juz zrobil i wie jakie sa optymalne
nastawy (interesuje mnie 10 -20 harmonicznych, oraz dokladnosc
rzedu 0.01 % o ile da sie taka uzyskac ...) ?
PSpice oblicza tylko 9 harmonicznych (plus skladowa stala)
Jesli interesuje Cie wiecej, to musisz zrzucic wyniki .tran do ASCII
i dobrac sie do nich jakims MATLAB-em.
tomek
From: Olgierd Cybulski <cybulski_at_nospam_pkpf.if.uj.edu.pl>
Subject: Re: PSpice i dyrektywa .FOUR
Date: Sat, 14 Mar 1998 11:07:02 +0100
Witold Kopacz wrote:
OC > Przy analizie typu TRANSIENT, czyli takiej, jaka
OC > potrzebna jest do analizy fourierowskiej zniekształceń,
OC > sama metoda symulacji wprowadza błędy zwiększające
OC > zniekształcenia nieliniowe (krok czasowy, dokładności,
OC > czyli parametry typu PIVOT, PIVREL itp), tak, że nawet
OC > układ zbudowany w oparciu o idealnie liniowy model
OC > tranzystora w wyniku analizy numerycznej miałby
OC > "zniekształcenia nieliniowe" w rzeczywistości
OC > będące artefaktami obliczeń numerycznych.
WK z tego co widac podczas obliczen (krok calkowania),
WK to jest on zmienny, a zakres zmiennosci obejmuje co najmniej
WK dwie dekady ...
Właśnie, i jest to jedna z największych zalet SPICE'a.
Stosuje dość zaawansowane metody rozwiązywania układów
równań różniczkowych. Spice po każdym kroku oblicza tzw.
moduł funkcji błędu, na podstawie którego orientuje się,
czy może iść dalej (wtedy zwiększa krok), czy też
powinien cofnąć się do poprzedniego punktu zmniejszając krok.
Oczywiście wyniki takiego próbnego kroku nie idą na marne -
są wykorzystywane do poprawienia zbieżności metody.
Jeśli chcesz ograniczyć od góry krok czasowy analizy,
powinieneś użyć instrukcji .TRAN z czterema parametrami:
.TRAN krok_druku t_stop t_start t_max
krok_druku - jest to krok czasowy, z jakim drukowany jest wynik w
zbiorze wyjściowym
t_stop - czas analizy
t_start -czas, po jakim SPICE zaczyna drukowac wyniki w zbiorze
wyjściowym
t_max - maksymalny czas jednego kroku podczas analizy - i to
jest właśnie ten najważniejszy parametr (dla Twoich celów)
Jeśli nie poda się t_max, SPICE przyjmie wartość domyślną równą
dwóm procentom parametru t_stop.
Następna sprawa, na ogół bardzo istotna, to osiągnięcie
przez badany układ stanu "stabilnego".
Układy, które kiedyś symulowałem, potrzebowały czasem
kilkuset okresów pracy, by amplituda i faza sygnału na wyjściu
osiągnęły swoje "docelowe" wartości, rzecz jasna w tym czasie
zmienia się całe widmo Fourierowskie sygnału.
Dotyczy to zwłaszcza układów rezonansowych - to chyba jasne.
Na szczęście polecenie .FOUR zawsze bierze pod uwagę tylko
ostatni (jeden) okres zmian sygnału, niezależnie od czasu
prowadzenia analizy .TRAN
Nie ma sensu podawanie w .FOUR częstotliwości innej,
niż częstotliwość użytych źródeł napięcia, na przykład,
gdy chcesz zrobić analizę dla częstości źródła 1 kHz,
i chcesz, by układ przed analizą "przeżył" 99 okresów
(setny zostanie poddany analizie) napisz :
.TRAN 100N 100M 99M 100N UIC
.FOUR 1K [badane_napięcia itp.]
Wskutek powyższego analiza będzie prowadzona z krokiem max. 100 ns ,
zapis w pliku wyjsciowym rozpocznie sie w ostatnim okresie, i
będzie prowadzony również z krokiem 100 ns, czyli w pliku pojawi
się 10000 punktów.
Analiza fourierowska obejmie jeden, ostatni okres.
Czas symulacji bedzie dlugi, chyba, ze na dobrym sprzęcie :-)
Parametr UIC i to co po nim jest oczywiście opcjonalny,
chodzi o użycie warunków początkowych napięć na kondensatorach,
prądów cewek itp. - podanie tych parametrów znakomicie skraca
czas potrzebny na dojście układu do "równowagi".
Zadanie warunków początkowych IC odbywa się przy deklaracjach
elementów i można je wziąć z poprzednich, mniej dokładnych
symulacji.
Jest jeszcze kilka bardzo ważnych rzeczy, które powinieneś
wiedzieć, mianowicie ustawienie pozostałych parametrów
symulacji instrukcją .OPTIONS.
Ni piszę szczegółowo, podaję tylko najważniejsze parametry,
które koniecznie powinieneś zmienić przed analizą (gdyż
wartości domyślne są niezadowalające) :
TRTOL - błąd obcięcia w pojedyńczym kroku, standardowo 7,
powinien być dużo mniejszy, kilka setnych, może
jeszcze mniej
RELTOL - błąd maksymalny obliczeń iteracyjnych,
standardowo 1 promil, powinien być mniejszy
VNTOL, ABSTOL - błędy bezwzględne dla napięć i prądów,
standardowo 1 mikrovolt i 1 pikoamper,
jeśli analizujesz bardzo małe sygnały, zmień to
ITL4 - maksymalna ilość iteracji dla jednego punktu,
zmień na 100 (standard - 10)
ITL3 - minimalna ilość iteracji dla punktu analizy,
tylko w wersjach na dobre komputery (nie PSPICE)
ITL5 - maksymalna ilość wszystkich iteracji, zmień koniecznie,
dla dużych analiz wartość standardowa 5000 jest stanowczo
za mała
LIMTIM oraz CPTIME - maksymalny czas zajęcia procesora,
daj coś koło nieskończoności
(nie wiem, czy to dotyczy PSPICE na PeCety)
NUMDGT - ilosc cyfr w zbiorze wyjsciowym, standardowo 4,
zmien na wiecej
Jeśli dysponujesz SPICE'm na porządny komputer, możesz też
zmienić wartości parametrów PIVTOL i PIVREL (w PSPICE - nie da sie)
Najwazniejsze z powyzszych sa TRTOL, ITL5 i ITL4.
TRTOL dobierz eksperymentalnie, im mniejsze - tym lepiej.
VNTOL i ABSTOL mają znaczenie dla bardzo małych sygnałów.
nastawy (interesuje mnie 10 -20 harmonicznych, oraz dokladnosc
rzedu 0.01 % o ile da sie taka uzyskac ...) ?
po co wywazac otwarte drzwi ... (poza tym jest to bardzo czasochlonne
- mam tylko 486dx4-100 )
Sorry, dopiero teraz przeczytalem, jaki masz komputer.
Mimo wszystko, wiekszosc uwag nadal jest aktualna, tyle, ze
konkretne parametry sa juz ciut wysrubowane :-)
Pamietam moje pierwsze symulacje pod PSPICEm na AT286,
cala noc liczenia i rano okazuje sie, ze bledne parametry...
Co do ilosci harmonicznych obliczanych przez SPICE,
zalezy ona od wersji programu i parametrow symulacji.
Nie wiem, czy uda sie policzyc powyzej dziesieciu, zwlaszcza
przy malych znieksztalceniach.
Pozostaje - jak pisał Tomek - wypluc wyniki do pliku i bawic
sie w analizy "post factum", tyle, ze naprawde ciezko jest
stwierdzic, na ile wyniki beda miarodajne.
Aha ! Liczba punktów do analizy powinna być potęgą dwójki,
to zmniejsza rozmaite błędy obliczeniowe w FFT.
Olgierd
From: Witold Kopacz <wkopacz_at_nospam_panamint.ict.pwr.wroc.pl>
Subject: Re: PSpice i dyrektywa .FOUR
Date: 18 Mar 1998 07:49:45 GMT
Olgierd Cybulski <cybulski_at_nospam_pkpf.if.uj.edu.pl> wrote:
[...]
.TRAN 100N 100M 99M 100N UIC
.FOUR 1K [badane_napięcia itp.]
O to chodzilo...
[...]
Analiza fourierowska obejmie jeden, ostatni okres.
Czas symulacji bedzie dlugi, chyba, ze na dobrym sprzęcie :-)
Parametr UIC i to co po nim jest oczywiście opcjonalny,
chodzi o użycie warunków początkowych napięć na kondensatorach,
prądów cewek itp. - podanie tych parametrów znakomicie skraca
czas potrzebny na dojście układu do "równowagi".
Zadanie warunków początkowych IC odbywa się przy deklaracjach
elementów i można je wziąć z poprzednich, mniej dokładnych
symulacji.
z UIC sa pewne klopoty zwlaszcza przy kondensatorach sprzegajacych,
zastosowanie napiec z .OP nie koniecznie prowadzi do dobrych rezultatow..
Zwlaszcza dla zrodla typu pulse (? przebieg prostokatny...)
(i tak wystepuja "dziwne" przesuniecia skladowej stalej !)
Poradzilem sobie z tym przez ograniczenie sinusoidy...( o odpowiednio duzej
amplitudzie, coby front byl dostatecznie szybki) - wtedy UIC nie jest konieczny
Jest jeszcze kilka bardzo ważnych rzeczy, które powinieneś
wiedzieć, mianowicie ustawienie pozostałych parametrów
symulacji instrukcją .OPTIONS.
ITL4 - maksymalna ilość iteracji dla jednego punktu,
zmień na 100 (standard - 10)
Na taka wartosc zmienilem...
Co do ilosci harmonicznych obliczanych przez SPICE,
zalezy ona od wersji programu i parametrow symulacji.
Nie wiem, czy uda sie policzyc powyzej dziesieciu, zwlaszcza
przy malych znieksztalceniach.
Pozostaje - jak pisał Tomek - wypluc wyniki do pliku i bawic
sie w analizy "post factum", tyle, ze naprawde ciezko jest
stwierdzic, na ile wyniki beda miarodajne.
Aha ! Liczba punktów do analizy powinna być potęgą dwójki,
to zmniejsza rozmaite błędy obliczeniowe w FFT.
Pracuje na PSpice52 (pod dosa ale zupelnie mi wystarcza),
co do analizy "post factum" - to mamy przeciez PROBE,
ktory doskonale sie do tego nadaje ...
Ostatecznie przyjalem nastepujace nastawy:
.tran 20n 2m 0 5u
.opt itl4=100
.four jak wyzej..
.probe [badane wartosci]
^to pozwala na nieznaczne skrocenie obliczen przez zmniejszenie pliku
wynikowego(i przez to operacji dyskowych), w moim przypadku z 2.7Mb do 40kb !!
osiagniete znieksztalcenia (zrodla -czyli metody ?), sa mniejsze niz 0.005%
to poziom wystarczajacy...
Dziekuje, WSZYSTKIM,
WitKo.
--
e-mail: wkopacz_at_nospam_panamint.ict.pwr.wroc.pl