Czy sinusoidalne źródło napięcia LTspice z przesunięciem znacznie większym niż złamana amplituda?

14

Rozwiązałem problem z obwodem analogowym i właśnie zdałem sobie sprawę, że źródła napięcia sinusoidalnego przy mV są zepsute.

Oto jeden, który ma zapewnić falę sinusoidalną 1mV 1Hz na szczycie sygnału 300mV DC. Zamiast tego dostaję kompletne śmieci.

Uruchamianie LTSpice w wersji 4.22. Ktoś inny widział ten problem lub może doradzić, na czym polega problem?

wprowadź opis zdjęcia tutaj

EasyOhm
źródło
2
Mam nieco podobny wynik. Kształt fali jest bardziej jednolity, ale nie sinusoidalny. Wyłączenie kompresji naprawiło to dla mnie. (zgodnie z odpowiedzią Lorenzo poniżej).
mkeith,

Odpowiedzi:

20

Najprawdopodobniej masz włączoną kompresję fali, a algorytm kompresji ma zbyt wysoką względną tolerancję, aby poprawnie przetworzyć taki sygnał, ponieważ składowa prądu przemiennego jest tak mała w porównaniu z przesunięciem prądu stałego.

Otwórz panel sterowania i zmniejsz tolerancję względną:

wprowadź opis zdjęcia tutaj

LTspice zwykle wykonuje kompresję kształtu fali, aby uniknąć generowania dużych plików danych dla kształtów fali. Algorytm kompresji jest stratny, więc możesz stracić szczegóły i mieć artefakty podobne do tych, które widzisz podczas symulacji.

Fragment pomocy online LTspice:

LTspice kompresuje nieprzetworzone pliki danych podczas ich generowania. Skompresowany plik może być 50 razy mniejszy niż nieskompresowany plik. Jest to kompresja stratna. Ten panel panelu sterowania pozwala kontrolować, jak działa kompresja stratna.

Czasami przydaje się całkowite wyłączenie kompresji w przypadku skomplikowanych przebiegów, ale należy się spodziewać plików .raw o rozmiarze GB (są to pliki, w których LTspice zapisuje dane przebiegu). Niezależnie od tego, zwykle wystarczy bawić się z ustawieniami kompresji, ale tylko wtedy, gdy rozsądnie wiesz, czego oczekiwać od symulacji.

EDYCJA (w celu uwzględnienia niektórych istotnych uwag)

Niektórzy komentatorzy zauważyli, że zwiększenie tolerancji, a konkretnie reltolparametru SPICE , wydłuży czas symulacji. To prawda, ale kompresja relative tolerancenie ma nic wspólnego z reltolparametrem SPICE, który znajduje się w innej zakładce panelu sterowania:

wprowadź opis zdjęcia tutaj

Aby jeszcze bardziej wzmocnić mój punkt, przytoczę całą sekcję pomocy LTspice dotyczącą compressionzakładki panelu sterowania (moje wyróżnienie ):

LTspice kompresuje nieprzetworzone pliki danych podczas ich generowania. Skompresowany plik może być 50 razy mniejszy niż nieskompresowany plik. Jest to kompresja stratna. Ten panel panelu sterowania pozwala kontrolować, jak działa kompresja stratna.

Rozmiar okna (liczba punktów): maksymalna liczba punktów, które można skompresować do dwóch punktów końcowych.

Względna tolerancja: dopuszczalny błąd względny między danymi skompresowanymi a danymi nieskompresowanymi.

Bezwzględna tolerancja napięcia [V]: błąd napięcia dozwolony przez algorytm kompresji.

Bezwzględna tolerancja prądu [A]: dozwolonym błędem prądu jest algorytm kompresji.

Te ustawienia kompresji nie są zapamiętywane między wywołaniami programu, aby zachęcić do korzystania z ustawień domyślnych. Są one dostępne na panelu sterowania do celów diagnostycznych. Tolerancje i rozmiar okna można określić za pomocą parametrów opcji plotreltol, plotvntol, plotabstol i plotwinsize w instrukcjach .option umieszczonych jako schematy SPICE na schemacie.

Prawdopodobnie będziesz chciał wyłączyć kompresję , używając instrukcji .four lub wykonując FFT po analizie danych zgodnie z dyrektywą SPICE:

.options plotwinsize = 0

Ponownie, ostatnia dyrektywa sprowadza się do wyłączenia kompresji, podobnie jak przy użyciu panelu sterowania. Jak już powiedziałem powyżej, właśnie to chcesz zrobić, aby uniknąć artefaktów, ale zostaną wygenerowane ogromne pliki.

Lorenzo Donati - Codidact.org
źródło
używam LTSpice od lat i nigdy go nie ugryzł (jeszcze), dzięki za alert gotcha.
Neil_UK,
@Neil_UK Nie ma za co! Jestem jednym z tych maniaków refmana, którzy lubią czytać całą instrukcję (problem polega na tym, że pamiętam, gdzie coś widziałem!) ;-)
Lorenzo Donati - Codidact.org
@LorenzoDonati Dzięki za szybką odpowiedź! Straciłem rozum. Jesteś uczonym i dżentelmenem :)
EasyOhm
@ Gonzik007 Nie ma za co! :-)
Lorenzo Donati - Codidact.org
1
Słowo ostrzeżenia: zmniejszenie tolerancji spowoduje spowolnienie symulacji. Nie będzie to odczuwalne w przypadku mniejszych schematów, ale w przypadku większych ... Dopóki zakres dynamiki nie jest tak świetny (np. Sinus 1 mV na 1 kV prądu stałego lub podobny / niższy), lepiej użyć opt plotwinsize=0niż zmniejszyć tolerancje . Zasadniczo zakres dynamiczny stanowi problem, ponieważ wszystko jest obliczane matematycznie przy użyciu precyzji maszyny.
zainteresowany obywatel