LTSpice Otomasyonu


15

Pille çalışan bir güçlendirici dönüştürücüm var ve yüksek akımlı çekimlerin (farklı görev döngüleri / periyodikliklerin) çeşitli yük koşullarında maksimum giriş (pil) voltaj düşüşünü ölçmeye çalışıyorum (çeşitli voltajlar / iç dirençler). Böylesi (nispeten) büyük miktarda operasyonel zamanı simüle ettiğim için, simülasyon dosyaları oldukça önemli hale geliyor, biraz zaman aldıklarından bahsetmiyorum. Bileşen değerlerini programlı olarak değiştirebilmem ve simülasyonları tekrar çalıştırabilmem ve verileri (voltaj veya akım gibi şeylerin değerleri) yakalayabilmem için LTSpice'i otomatikleştirmek istiyorum. Bunu biliyorum:

  • WAV dosyaları programdan veri girmek / çıktı almak için kullanılabilir
  • Program komut satırından çalıştırılabilir

Şimdiye kadar en iyi seçeneğim, bu iki seçeneğin bir kombinasyonunu kendi hedeflerime ulaşan bir şekilde kendi kodum / betiğim ile birlikte kullanıyor gibi görünüyor, ama sadece daha iyi bir yol olup olmadığını merak ediyorum.

Herkes LTSpice'i otomasyona geçirdi mi veya bunun için herhangi bir tür otomasyon API'sı yazıldığını biliyor mu (üretici veya 3. taraflar tarafından)?

İdeal olarak bir çözücüye sahip olmak istiyorum, böylece istenen parametreleri verdim ve kısıtlarıma "optimal" çözümü bulana kadar çeşitli bileşen değerlerini denedim.


Doğrusal FAE'niz ne dedi? Önce onlara sorardım.
Brian Carlton

1
.STEP ve .PARAM komutlarını biliyor musunuz? Tam olarak ne istediğinizi elde edip etmeyeceğinden emin değilim, ancak ilgileniyorsanız birkaç örnekle bir cevap göndereceğim.
Oli Glaser

1
Bu soru konu dışı görünüyor çünkü elektronik tasarım ile ilgili değil.
Leon Heller

12
@LeonHeller SPICE NE gezegeninde tasarımın bir parçası değil?
placeholder

1
Monte Carlo seçeneklerinin buna çok uygun olduğunu göreceksiniz. Farklı parametreleri Schmoo yapabilirsiniz ve varyasyonları da görüntüleyebilir. LT-Spice SPICE tarafından devre dışı bırakılmış olabilir. Oradan başlayın
placeholder

Yanıtlar:


15

Bir simülasyonu birden çok kez çalıştırmak ve birden çok bileşen değerini değiştirmek, sadece bir tane değiştirmek (biraz da kötü değil)

İşte bir değeri değiştirme kavramı:

  • En sağdaki SPICE yönerge simgesini kullanarak bir .param ifadesi ekleyin, örneğin bir direnç değeri için .param X=R
  • Bunu kullanmak için direnç değerine {x} girersiniz, daha sonra örneğin .step param X 100 500 5050 ve 50'lik artışlarla 100 ile 500 arasında bir değere adım atmayı dahil edersiniz .

Misal:

Adım Örneği

Sonuç:

grafik

Birden çok değer için, çalışmayı bulduğum tek yol X için bir değer listesi ve tablo deyimini kullanmaktı. Bu muhtemelen en iyi bir örnekle açıklanmaktadır (kullanılan komutların yardımını okumak muhtemelen burada yardımcı olacaktır). Ancak, tablo komutu sözdiziminin form tablosunda (dizin, x1, y1, x2, y2, .... xn, yn), dizini girdi olarak aldığını ve verilen x'e göre x = dizin için enterpolasyonlu bir değer döndürdüğünü unutmayın. , y çiftleri.

Simülasyonlarımdan birinde, 3 farklı bileşen değerini değiştirirken 12 simülasyon gerçekleştirmem gerekiyordu, işte komutlar:

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

Sonuç:

Kazanç Örneği

Umarım fikir alırsınız, istediğiniz değerleri doldurduğunuzda gerekli SPICE komutlarını üretecek bir komut dosyası üretebilirsiniz. Ya da sadece bir şablon oluşturun (örneğin, yukarıdaki kopyayı birkaç farklı simülasyona yapıştırdım ve değerleri değiştirdim)

Yukarıdaki istediğinizi yapmazsa, o zaman belki NI multisim gibi bir şeye bakın (ne kadar yararlı olduklarından emin olmasam da bazı toplu simülasyon seçenekleri olduğunu düşünüyorum) LTSPice'e sormak da yararlı olabilir forum ve bir şeyler yapmak için daha iyi bir yolu biliyor olup olmadığını görmek.


3
Bu olmasını istediğim kadar temiz değil, ama özgür yazılım için sadece bana bir kemik atmalarına minnettar olabilirim. Bu tekniği gösterdiğin için teşekkürler. Bu kesinlikle beni aradığım şeye yaklaştıracak.
Joel B

1
Teşekkürler, bu benim simülasyonumu anlamama yardımcı oldu. Şimdi, hangi simülasyonun hangisi olduğunu söyleyebilmek için arsaya nasıl bir efsane koyacağımı bulmalıyım.

8

Aslında komut satırından LTSpice çalıştırmak ve geçici bir simülasyon çalıştırmak için mümkün olduğunu düşünüyorum:

Rüzgarda:

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

Linux'ta:

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

1
Bu mükemmel bir keşif! Şimdi bunu otomatik tasarım için nasıl kullanabileceğim konusunda beyin fırtınası yapıyorum.
Joel B

1
@JoelB: evet, ben de bunun için kullanıyorum. Ne yazık ki birkaç eksiklik var: 1) GUI'den farklı olarak, çözücü tek iş parçacıklı çalışır, bu yüzden daha yavaştır 2) GUI'de olduğu gibi "ilerleme raporunuz" yoktur
blondiepassesby

3

LTSpice, -bkomut satırı anahtarı ile toplu modda çalıştırılabilir .

LTSpice Yardım dosyasından:

-b: Toplu iş modunda çalıştır. Örneğin, "scad3.exe -b deck.cir" verileri deck.raw dosyasında bırakacaktır

.Raw çıktısının okunması ve yorumlanması okuyucu için bir alıştırma olarak bırakılmıştır.

Ayrıca, komut satırı anahtarları arasında aşağıdakilere dikkat edin:

-ascii: ASCII .raw dosyalarını kullanın. Program performansını ciddi şekilde düşürür.


Tam olarak nasıl çalıştırırım? Komut satırı modunda. Genellikle bir windows kullanıcısı değilim ve bunu bir windows makinesinde nasıl yapacağımı bilmiyorum.
Tropical_Peach

1
Ben hiç böyle çalıştırmadım. Bunu kendiniz denemeniz gerekecek. Bir komut penceresi açabilir (Başlat menüsünde 'cmd.exe') veya testlerinizi sıralamak için kullandığınız dilden çalıştırabilirsiniz.
Foton

Matlab kullanıyorsanız, .raw
Voltage Spike

3

" LTSpice Kuyruk Yöneticisi " ni kontrol ettiniz mi? ( Bağlantı, yazılımı indirebileceğiniz kendi web siteme yönlendiriyor, ancak programı bugün kapalı olan bir forumda paylaşan yazarı değilim. Web sitem üzerinden paylaşmak, onu canlandırmanın bir yoludur ).

Bu araç geçmişte bana çok yardımcı oldu. Birçok simülasyon dosyası hazırlayabilir ve bunları kuyruk şeklinde çalıştırabilirsiniz.

LTSpice kuyruk yöneticisi


Kuyruk otomasyon değildir.
Harry Svensson

1
İhtiyacınız olan otomasyon sıraya giriyorsa, kesinlikle! Bu OP'nin sorununu doğrudan ele alır.
Daniel

1
Bu, yazmadığınız kapalı kaynaklı bir yazılımsa, kullanıcıların bunu çalıştırmanın anlaşılır temkinli olmasını beklerdim.
Dave Tweed

1

Sadece LT Spice olması gerekiyorsa ve GUI'yi geçemiyorsanız, AutoIt kod programını tavsiye ederim. Active-x-DDE-COM.dll-eksik olan bazı kritik Windows uygulamalarını otomatikleştirmek için kullandım. Dosyaları beklemek, pencere düğmelerine basmak, menü öğeleri, bağımsız değişkenli çağrı programları vb. İçin ayarlayabilirsiniz.

Göz atmak:

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

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

Bir betik programı için ödeme yapmak isterseniz Winbatch için giderdim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.