LTSpice Automation


15

У мене є акумуляторний перетворювач, що працює на акумуляторі, і я намагаюся виміряти максимальну напругу входу (акумулятора) при різних умовах навантаження високих струмів (різних робочих циклів / періодичності) на додаток до декількох типів акумуляторів (різні напруги / внутрішні опори). Оскільки я моделюю такий (відносно) великий час роботи, файли імітації отримують досить багато, не кажучи вже про те, що вони займають певний час. Я хотів би автоматизувати LTSpice, щоб я міг програмно змінювати значення компонентів і повторно моделювати та фіксувати дані (значення таких речей, як напруга чи струм). Я знаю це:

  • Файли WAV можна використовувати для введення / виведення даних з програми
  • Програму можна запустити з командного рядка

Поки що мій найкращий варіант, як видається, використовує поєднання цих двох варіантів разом із власним кодом / сценарієм таким чином, щоб досягти моїх цілей, але мені просто цікаво, чи є кращий спосіб вже там.

Хтось автоматизував LTSpice чи знає, чи був написаний для нього який-небудь API автоматизації (або від виробника, або від третіх сторін)?

В ідеалі я хотів би мати вирішувач, який би дав йому потрібні параметри, і він спробував різні значення компонентів, поки не знайшов "оптимальне" рішення моїх обмежень.


Що сказав ваш лінійний FAE? Я б запитав їх спочатку.
Брайан Карлтон

1
Чи знаєте ви про команди .STEP та .PARAM? Не впевнений, чи вдасться досягти саме того, що ви хочете, але я опублікую відповідь з парою прикладів, якщо вас цікавить.
Олі Глазер

1
Це питання видається поза темою, оскільки мова не йде про електронний дизайн.
Леон Хеллер

12
@LeonHeller на ЯКІЙ планеті СПІС не є частиною дизайну?
заповнювач

1
Ви побачите, що варіанти Монте-Карло цілком підходять до цього. Ви можете Schmoo різних параметрів, і він також може відображати варіанти. LT-Spice МОЖЕ відключити цю програму SPICE, яка це підтримує. Початок там
заповнювач

Відповіді:


15

Запуск моделювання кілька разів та зміна значень кількох компонентів є дещо більше, ніж просто зміна одного (що не так вже й погано)

Ось концепція зміни одного значення:

  • Додайте оператор .param, використовуючи значок директиви SPICE в крайньому правому куті, наприклад, для значення опору .param X=R
  • Для його використання ви введете {x} в значення резистора, а потім включите, наприклад, .step param X 100 500 50перехід значення між 100 і 500 з кроком 50.

Приклад:

Приклад кроку

Результат:

Графік

Для декількох значень єдиним способом, який я знайшов для роботи, було використання списку значень для X та використання оператора таблиці. Це, мабуть, найкраще пояснено на прикладі (читання довідки для використаних команд, можливо, тут буде корисним). Але зауважте, що синтаксис команд таблиці знаходиться у таблиці форми (індекс, x1, y1, x2, y2, .... xn, yn), приймає індекс як вхідний дані і повертає інтерпольоване значення для x = індекс на основі наданого x , y пари.

В одному з моїх симуляцій мені потрібно було виконати 12 моделювання, змінюючи 3 різні значення компонента, ось такі команди:

.step param X list 1 2 3 4 5 6 7 8 9 10 11 12
.param Rin1 = table(X, 1, 1,1p, 2, 1p, 3, 1p, 4, 4478, 5, 4080, 6, 3400, 7, 2200, 8, 1p, 9, 1p, 10, 1p, 11, 1p, 12, 1p)
.param Rin2 = table(X, 1, 4997, 2, 4997, 3, 4997, 4, 499, 5, 897, 6, 1577, 7, 2777,  8, 4997, 9, 4997, 10, 4997, 11, 4997, 12, 4997)
.param Tval = table(X, 1, 56, 2, 56, 3, 27, 4, 1G, 5, 1G, 6, 1G, 7, 1G, 8, 1G, 9, 330, 10, 330, 11, 120, 12, 120)
.param Kval = table(X, 1, 316, 2, 147, 3, 147, 4, 6340, 5, 6340, 6, 6340, 7, 6340, 8, 6340, 9, 6340, 10, 825, 11, 825, 12, 316)

Результат:

Приклад посилення

Сподіваємось, ви зрозумієте, що ви, можливо, зможете створити сценарій, який створить необхідні команди SPICE, коли ви заповнюєте потрібні значення. Або просто створити шаблон (наприклад, я просто скопіював і вставив вищезазначене в кілька різних симуляцій і змінив значення)

Якщо вищезгадане не робить те, що ви хочете, то, можливо, подивіться на щось на зразок мультизіму NI (я думаю, що він має кілька варіантів моделювання пакетного моделювання, хоча я не впевнений, наскільки вони корисні) Можливо, також буде корисно запитати про LTSPice Форум і подивіться, чи хтось знає про кращий спосіб робити справи.


3
Це не так чисто, як хотілося б, але для вільного програмного забезпечення я можу бути лише вдячний, що вони кинули мені кістку. Дякуємо за демонстрацію цієї методики. Це, безумовно, наблизить мене до того, що я шукаю.
Джоель Б

1
Дякую, це допомогло мені зрозуміти моє моделювання. Тепер я мушу розібратися, як поставити легенду на сюжеті, щоб я міг сказати, яке моделювання є.

8

Я думаю, що насправді можна запустити LTSpice з командного рядка і дозволити йому запустити перехідне моделювання:

У Віндозі:

cd <wherever LTSpice is installed on your computer>
scad3.exe -Run -b MyCircuit.asc

У Linux:

cd ~/.wine/drive_c/Program Files (x86)/LTC/LTspiceIV
wine ./scad3.exe -Run -b MyCircuit.asc

1
Це відмінна знахідка! Зараз я беру штучний штурм, як я можу використовувати це для автоматизованого дизайну.
Джоель В

1
@JoelB: так, це теж я для цього використовую. На жаль, є кілька недоліків: 1) На відміну від GUI, solver працює однопотоково, тому це повільніше 2) У вас немає жодного "звіту про хід", як у GUI
blondiepasses

3

LTSpice можна запускати в пакетному режимі за -bдопомогою перемикача командного рядка.

З файлу довідки LTSpice:

-b: запуск у пакетному режимі. Наприклад, "scad3.exe -b deck.cir" залишить дані у файлі deck.raw

Як читати та інтерпретувати вихідний файл .raw залишається вправою для читача.

Також зверніть увагу, серед комутаторів командного рядка:

-ascii: Використовуйте ASCII .raw файли. Серйозно погіршує продуктивність програми.


Як саме я його запускаю? У режимі командного рядка, який є. Я зазвичай не користувач Windows і не знаю, як це зробити на машині Windows.
Tropical_Peach

1
Я ніколи так не керував цим. Вам доведеться спробувати це на собі. Ви можете відкрити вікно команд ('cmd.exe' у меню «Пуск») або запустити його з будь-якої мови, якою ви користуєтесь, щоб послідовно провести тести.
The Photon

Якщо ви використовуєте matlab, у них є сценарій для перетворення файлів .raw mathworks.com/matlabcentral/fileexchange/…
напруга Спайк

3

Ви вже перевіряли " Менеджер черг LTSpice "? ( Посилання переспрямовує на мій власний веб-сайт, на якому ви можете завантажити програмне забезпечення, але я не є його автором, який спочатку ділився програмою на форумі, який сьогодні закритий. Спільний доступ до нього на моєму веб-сайті - це спосіб його відновити ).

Цей інструмент мені дуже допомагав у минулому. Ви можете підготувати багато файлів моделювання та запустити їх у черзі.

Диспетчер черг LTSpice


Черга - це не автоматизація.
Гаррі Свенссон

1
Якщо вам потрібна автоматизація в черзі, вона, безумовно, є! Це стосується проблеми ОП безпосередньо.
Даніель

1
Якщо це програмне забезпечення із закритим кодом, яке ви не писали, я би сподівався, що користувачі зрозуміло шукають його запуску.
Трейд Дейв

1

Якщо це просто має бути LT Spice, і ви не можете обійти графічний інтерфейс, я б рекомендував програму сценаріїв AutoIt. Я використовував його для автоматизації деяких критичних програм для Windows, у яких бракувало активної x-DDE-COM.dll будь-якої. Ви можете налаштувати його на очікування файлів, натискання кнопок Windows, меню, текст, виклик програм з аргументами тощо.

Подивіться на:

http://www.autoitscript.com/site/

http://www.autoitscript.com/forum/

Я б пішов на Winbatch, якщо ви хочете заплатити за програму сценаріїв.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.