Jak używać parametru .step z więcej niż dwoma parametrami w LTSpiceIV

13

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ęć:

Obwód + polecenia

Komunikat o błędzie

Twoja pomoc byłaby bardzo doceniona.

sebascarra
źródło
Jestem zdezorientowany, czy chcesz symulować 3 sytuacje lub więcej? Jeśli chcesz po prostu symulować 3 scenariusze, nie zawracałbym sobie głowy robieniem przypraw.
ACD
A czym ma być oś X?
ACD
Chciałbym zasymulować te trzy sytuacje i zaplanować je razem. Wiem, że mogłem po prostu wyeksportować plik CSV i wykreślić je za pomocą Octave lub Excel, ale o wiele bardziej przydatne byłoby to zrobić bezpośrednio na LTSpice. W tym poście ( electronics.stackexchange.com/questions/20811/... ) ktoś powiedział, jak to zrobić, ale to nie działa dla mnie. W tym przykładzie przedstawiłem trzy scenariusze, ale być może będę musiał podać więcej.
sebascarra
Jeśli chodzi o twoje drugie pytanie, X będzie różnymi indeksami, które pozwalają mi uzyskać dostęp do wartości tabeli. Ponieważ (najwyraźniej) LT pozwoli mi przeszukiwać tylko jedną zmienną na raz, przeglądam X, a następnie próbuję uzyskać dostęp do wartości tabeli zgodnie z wartością, którą X podjął w tym kroku. Mam nadzieję, że wszystko jest jasne. Dziękuję Ci.
sebascarra
Cóż, dla jednego polecenie tabeli chce indeksu, który jest X, a następnie zestawu par xy. Każdy parametr powinien zawierać 3 pary, a nie trzy wartości.
ACD

Odpowiedzi:

17

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:

.step param Rx list 1 2 3
.param R1 table(Rx,1,1k,2,1Meg,3,1k)
.param R2 table(Rx,1,10k,2,1Meg,3,10Meg)

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)

R=table(Rx,1,10k,2,1Meg,3,10Meg)

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.

Plazma
źródło
4

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:

.STEP param Imax 0.1 0.3 0.1 
.PARAM Uin= 5
.PARAM R = (Uin-0.84954605)/Imax

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.

tofo
źródło
2

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

W Beaumont
źródło