Muszę wykonać trzy przejściowe symulacje z różnymi wartościami niektórych rezystorów (dogodnie nazywanych R1 i R2) w każdym. Mam na myśli dokładnie to:
- Sim. 1: R1 = 1 k , R2 = 10 kΩ
- Sim. 2: R1 = 1 M , R2 = 10 M
- Sim. 3: R1 = 1 k , R2 = 1 M
Gdyby istniał tylko jeden rezystor, którego rezystancja się zmienia, ustawiłbym jego rezystancję na „{r1}” (używam małych liter, aby uczynić go inną zmienną / parametrem niż R1) i używam polecenia takiego jak:
.step param r1 list 1k 1meg 1k
Ponieważ jednak muszę zmienić dwa parametry (razem) dwa razy każdy, przeczytałem tutaj, że (przynajmniej na LTSpiceIV), że obejście mojego problemu może polegać na użyciu czegoś takiego:
.step param X list 1 2 3
.param r1 = table(X, 1k, 1meg, 1k)
.param r2 = table(X, 10k, 1meg, 10meg)
Po wykonaniu symulacji otrzymuję następujące ostrzeżenia:
WARNING: Can´t resolve .param r2 = table(X, 10k, 1meg, 10meg)
Select OK to continue the simulation with the default model or Cancel to quit now.
To samo dotyczy r1.
Z jakiegoś powodu symulacja nie „pęka”, jeśli dodam jeden dodatkowy element do tabeli. W takim przypadku symulacja trwa za długo i za każdym razem postępuje wolniej, ponieważ nigdy się nie kończy. Próbowałem ustawić X na 0 1 2 zamiast 1 2 3, ale to też nie działa.
Tu jest kilka zdjęć:
Twoja pomoc byłaby bardzo doceniona.
Odpowiedzi:
W LTSpice polecenie table naprawdę tworzy rodzaj słownika, w którym należy określić pary klucz-wartość. Właściwą dyrektywą dla twojej sprawy byłoby zatem:
i ustaw wartość rezystorów odpowiednio na
{R1}
i{R2}
.Jeśli chcesz mieć w pobliżu wartości rezystora, możesz także wprowadzić (zamiast wartości, klikając prawym przyciskiem myszy)
w polu wartości rezystora. Działa to w ten sam sposób dla wszystkich rodzajów komponentów, a przy pomocy zewnętrznego skryptu do tworzenia plików .asc można go wykorzystać jako pomoc dla usług LTspices pozbawionych funkcjonalności monte carlo.
źródło
Jeden parametr przemiatania / kroku może kontrolować wiele wartości składników za pomocą wyrażeń.
Zmienna kontrolna, którą przechodzisz, może być kątem fazowym lub opóźnieniem czasowym lub podobnym, który wprowadzasz w jednej lub więcej formułach / wyrażeniach, aby uzyskać wynikowe wartości składników lub parametry do zastosowania w projekcie jako {parametr}
Jest to przydatne, jeśli chcesz zachować relację lub kontrolować niektóre pośrednie właściwości fizyczne projektu, takie jak właściwość current lub filter.
W edytorze poleceń „op” możesz wpisać coś takiego:
Zmienia Imax od 0,1 do 0,3 w krokach co 0,1 i oblicza wartość rezystora R za pomocą parametru Imax, Uin, przy niektórych założonych spadkach napięcia 0,85 .. diody.
Do PARAM R można się odwoływać w wartości składnika za pomocą notacji {R}. Uwaga Uin może być używany jako {Uin} w źródle napięcia lub podobnym i tak dalej.
W przypadku wielu wierszy w oknie edytora „op” użyj klawiszy CTRL + M, aby zachować wszystkie parametry w tym samym polu tekstowym.
źródło
To działa w moim obwodzie
.step param n lista 2 3 4
.param Rf = tabela (n, 1,1,3k, 2,1,1k, 3,1,2k, 4,1k)
.param Cf = tabela (n, 1,54p, 1,64p, 2,64pF, 4,64pF)
Tak więc Rf pobiera wartość bieżącego indeksu (zdefiniowanego w dyrektywie .step) Tak więc tabela wartości zaczyna się od identyfikatora indeksu (tutaj n), a następnie następuje indeks par, wartość. Jeśli nie używam indeksu w tabelach, otrzymuję taki sam błąd, jak wskazano w pierwszym poście
Działające rozwiązanie zostało znalezione po odczytaniu funkcji tabeli LTspice
źródło