Как использовать .step param с более чем двумя параметрами в LTSpiceIV

12

Мне нужно сделать три переходных моделирования с разными значениями определенных резисторов (обычно называемых R1 и R2) в каждом. Что я хочу сделать именно так:

  • Sim. 1: R1 = 1 кОм , R2 = 10 кОмΩΩΩ
  • Sim. 2: R1 = 1 М , R2 = 10 МΩΩΩ
  • Sim. 3: R1 = 1 кОм, , R2 = 1ΩΩΩ

Если бы был только один резистор, сопротивление которого изменялось, я бы просто установил его сопротивление на «{r1}» (я использую строчные буквы, чтобы сделать его переменной / параметром, отличным от R1) и использовал бы такую ​​команду, как:

.step param r1 list 1k 1meg 1k

Однако, поскольку мне приходится менять два параметра (вместе) по два раза каждый, я прочитал здесь, что (по крайней мере, в LTSpiceIV), что для обхода моей проблемы можно использовать что-то вроде этого:

.step param X list 1 2 3

.param r1 = table(X, 1k, 1meg, 1k)

.param r2 = table(X, 10k, 1meg, 10meg)

После моделирования я получаю следующие предупреждения:

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.

То же самое относится к r1.

По какой-то причине симуляция не «ломается», если я добавляю один дополнительный элемент в таблицу. В этом случае симуляция занимает слишком много времени, каждый раз продвигаясь медленнее, поскольку это никогда не закончится. Я попытался установить X в 0 1 2 вместо 1 2 3, но это тоже не работает.

Вот несколько картинок:

Схема + команды

Сообщение об ошибке

Ваша помощь будет высоко ценится.

sebascarra
источник
Я в замешательстве, вы хотите смоделировать 3 ситуации или больше? Если вы просто хотите смоделировать 3 сценария, я бы не стал делать это со специями.
ACD
И что вы хотите, чтобы ось X была?
ACD
Я хотел бы смоделировать эти три ситуации и построить их вместе. Я знаю, что мог бы просто экспортировать файл CSV и построить его с помощью Octave или Excel, но было бы гораздо полезнее сделать это непосредственно в LTSpice. В этом посте ( electronics.stackexchange.com/questions/20811/… ) кто-то сказал, как это сделать, но у меня это не работает. В этом примере я поместил три сценария, но мне, возможно, потребуется добавить больше.
Себаскарра
Что касается вашего второго вопроса, то X будут разными индексами, которые позволят мне получить доступ к значениям таблицы. Так как (очевидно) LT позволит мне проходить только по одной переменной за раз, я просматриваю X, а затем пытаюсь получить доступ к значениям таблицы в соответствии со значением, которое X принял на этом шаге. Я надеюсь, что я в порядке. Спасибо.
Себаскарра
Ну, для одной команды таблицы требуется индекс, который равен X, а затем набор пар xy. В каждом параметре должно быть 3 пары, а не три значения.
ACD

Ответы:

17

В LTSpice команда table действительно создает своего рода словарь, в котором вы должны указать пары ключ-значение. Правильная директива для вашего случая будет:

.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)

и установите значение резисторов на {R1}и {R2}соответственно.

Если вы хотите, чтобы значения резистора были рядом с ним, вы также можете ввести (вместо значения, если щелкнуть по нему правой кнопкой мыши)

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

в поле значения резистора. Это работает одинаково для всех видов компонентов, и с помощью внешнего скрипта для создания файлов .asc его можно использовать в качестве опоры для LTspices, пропускающих функцию Монте-Карло.

PlasmaHH
источник
4

Один параметр развертки / шага может управлять несколькими значениями компонентов через выражения.

Ваша управляющая переменная, на которую вы переходите, может быть фазовым углом или временной задержкой или аналогичной, которую вы вводите в одной или нескольких формулах / выражениях для получения результирующих значений компонентов или параметров, которые будут применяться в проекте как {параметр}

Это полезно, если вы хотите сохранить отношение или контролировать некоторые косвенные физические свойства проекта, такие как свойство current или filter.

В редакторе команд "op" вы можете ввести что-то вроде этого:

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

Он шагает Imax от 0,1 до 0,3 с шагом 0,1 и вычисляет значение резистора R, используя параметр Imax, Uin, некоторое предполагаемое падение напряжения на 0,85 ... диода.

На PARAM R можно ссылаться в значении компонента usng {R}. Обратите внимание, что Uin может использоваться как {Uin} в источнике напряжения или подобном, и так далее.

Для нескольких строк в окне редактора «op» используйте CTRL + M, чтобы сохранить все параметры в одном текстовом поле.

Тофо
источник