Администрирование Железо LTspice Piecewise Linear Source (PWL): недокументированные возможности Tue, May 07 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

LTspice Piecewise Linear Source (PWL): недокументированные возможности Печать
Добавил(а) microsin   

LTspice поддерживает гораздо больше форм оператора PWL (Piecewise Linear Source, источник сигнала произвольной формы, по частям задаваемый пользователем), чем указано в документации. LTspice в значительной степени совместим с другими версиями SPICE, обеспечивая аналогичные или идентичные функции PWL.

Недокументированные операторы PWL могут быть вставлены в схему путем добавления обычного источника (normal source) из библиотеки компонентов (Component library), и использования дополнительных настроек источника (Advanced setting), чтобы установить функцию источника выбором одной из двух доступных PWL-опций. Как только источник был добавлен в схему, правый клик на операторе PWL позволит редактирование опций. Как только оператор PWL был изменен, недокументированный оператор PWL также может быть отредактирован правым кликом на символе компонента. Теперь правый клик будет открывать не специальное окно для изменения функции источника, а редактор атрибутов компонента (generic component attribute). Оператор PWL переходит в поле значения (value).

Принцип формирования оператора PWL:

PWL [VALUE_SCALE_FACTOR=< vsf>]
    [TIME_SCALE_FACTOR=< tsf>]
 
    [TRIGGER < trigger expression>]

Функции коэффициента масштабирования (TIME_SCALE_FACTOR) очевидны. Когда он указан, то каждое значение или время будет умножено на соответствующий коэффициент tsf. Значение по умолчанию для каждого коэффициента равно 1.

Спецификация данных очень гибкая. Данные могут быть предоставлены либо непосредственно в операторе, либо могут быть взяты из файла (это документированная возможность). Кроме того, данные могут быть указаны так, чтобы они повторялись несколько раз (это также недокументированная возможность), или навсегда (недокументировано). Также данные могут быть указаны относительным способом (недокументировано). И наконец, спецификации могут в определенной степени комбинироваться (также недокументировано).

Самая простая форма - список из одной или большего количества точек данных. Каждая точка это пара из времени < tx> и значения уровня < vx>. Пары могут (хотя это необязательно) быть объединены в группы с помощью круглых скобок. Использование скобок упрощает чтение длинных списков. Также могут использоваться запятые для разделения и группировки точек данных.

PWL < t1> < v1> < ...> < tn> < vn>
PWL (< t1> < v1> < ...> < tn> < vn>)
PWL (< t1 > < v1>) < ...> (< tn> < vn>)
PWL < t1>, < v1> < ...> < tn>, < vn>

Для значений могут быть использованы обычные суффиксы наподобие 'm' для "милли" или 'k' для "кило", например:

PWL (0m 1 1m 2 1m 3 4m 2)

Значение < vx> может быть также выражением, заключенным в фигурные скобки. Однако, хотя и распознаются имена функций наподобие sin(), ключевое слово time не распознается. По этой причине может оказаться сложным и вероятно невозможным генерировать зависящие от времени данные, наподобие {sin(time)} или {rand(time)} (например, чтобы сгенерировать случайный шум). У некоторых версий SPICE такой проблемы с time нет.

PWL (0 {sin(1)}) (1 {sin(2)})

Значения < tx> могут быть указаны относительно предыдущего значения времени, путем префикса перед значением знака +, например вот так указываются значения для 0, 1, 2 и 7 секунд:

PWL (0 1 +1 2 +1 3 +5 2)

Вместо размещения значений непосредственно в оператор PWL, значения также могут быть помещены в файл, и на этот файл должна быть ссылка file в операторе PWL:

PWL file=< имя файла>

Список точек данных или ссылка file может быть повторены фиксированное количество n (FOR < n>), или "навсегда" (FOREVER).

PWL REPEAT FOR < n> (|< file=путь>) ENDREPEAT
PWL REPEAT FOREVER (|< file=путь>) ENDREPEAT

В следующем примере последовательность будет повторена 5 раз:

PWL REPEAT FOR 5 ( 0 1 1 1 2 2 3 1 ) ENDREPEAT
PWL REPEAT FOR 5 ( file=< путь> ) ENDREPEAT

Спецификации данных могут комбинироваться, например:

PWL (0 0 1 1 2 1 3 0) REPEAT FOR 5 (file=< путь>) ENDREPEAT
PWL REPEAT FOR 7 (file=pwl_data.txt) ENDREPEAT REPEAT FOR 6 (file=pwl_data2.txt) ENDREPEAT

Операторы повтора могут быть вложенными друг в друга, например:

PWL REPEAT FOREVER (0 1 1 2) REPEAT FOR 3 (2 3 3 1) ENDREPEAT ENDREPEAT

Конструкция < TRIGGER expression> включает выход источника, пока выражение expression == true. Например, если существует в схеме узел (node) n001, то следующий оператор включит выход, пока напряжение узла больше 1.5V. Выключенный источник "застревает" на первом значении, заданном в его спецификации. В следующем примере первой парой является (0 0), т.е. значение 0 в момент времени 0. Поэтому при отключении источник будет зависать на 0.

PWL ( 0 0 1 1 2 1 3 0) TRIGGER V(n001)>1.5

[Ссылки]

1. Undocumented LTspice Piecewise Linear Sources (PWL) site:ltwiki.org.
2. EasyEDA: использование симулятора электронных схем.
3. Симулятор EasyEDA: конфигурирование источников напряжения и тока.

 

Добавить комментарий


Защитный код
Обновить

Top of Page