Otomasi LTSpice


15

Saya memiliki konverter penambah bertenaga baterai dan saya mencoba untuk mengukur tegangan input (baterai) maksimum terkulai di bawah berbagai kondisi beban penarikan arus tinggi (siklus tugas / periodik yang berbeda) di samping lebih dari beberapa jenis baterai (berbagai voltase / resistensi internal). Karena saya mensimulasikan waktu operasional yang relatif besar, file-file simulasi menjadi cukup besar, belum lagi butuh waktu. Saya ingin mengotomatiskan LTSpice sehingga saya dapat mengubah nilai komponen secara terprogram dan menjalankan kembali simulasi dan menangkap data (nilai hal-hal seperti tegangan atau arus). Saya tahu itu:

  • File WAV dapat digunakan untuk input / output data dari program
  • Program dapat dijalankan dari baris perintah

Sejauh ini pilihan terbaik saya tampaknya menggunakan kombinasi dari dua opsi ini bersama dengan kode / skrip saya sendiri dengan cara yang mencapai tujuan saya, tetapi saya hanya ingin tahu apakah ada cara yang lebih baik di luar sana.

Adakah yang mengotomatiskan LTSpice atau mengetahui apakah ada API otomatisasi apa pun yang ditulis untuk itu (baik oleh pabrikan atau oleh pihak ke-3)?

Idealnya saya ingin memiliki solver, sehingga saya memberikannya parameter yang diinginkan dan mencoba berbagai nilai komponen sampai menemukan solusi "optimal" untuk kendala saya.


Apa yang dikatakan FAE Linear Anda? Saya akan meminta mereka terlebih dahulu.
Brian Carlton

1
Apakah Anda tahu tentang perintah .STEP dan .PARAM? Tidak yakin apakah itu akan mencapai apa yang Anda inginkan, tetapi saya akan memposting jawaban dengan beberapa contoh jika Anda tertarik.
Oli Glaser

1
Pertanyaan ini tampaknya di luar topik karena ini bukan tentang desain elektronik.
Leon Heller

12
@LeonHeller di planet APA SPICE bukan bagian dari desain?
placeholder

1
Anda akan menemukan bahwa opsi Monte Carlo sangat cocok untuk ini. Anda dapat membuat parameter berbeda dan juga dapat menampilkan variasi. LT-Spice MUNGKIN telah menonaktifkan ini oleh SPICE yang mendukung ini. Mulai dari sana
placeholder

Jawaban:


15

Menjalankan simulasi beberapa kali dan mengubah beberapa nilai komponen sedikit lebih terlibat daripada hanya mengubah satu (yang tidak terlalu buruk)

Berikut adalah konsep untuk mengubah satu nilai:

  • Tambahkan pernyataan .param menggunakan ikon arahan SPICE di paling kanan, misalnya untuk nilai resistansi .param X=R
  • Untuk menggunakannya, Anda akan memasukkan {x} ke dalam nilai resistor, lalu sertakan misalnya .step param X 100 500 50untuk melangkah nilai antara 100 dan 500 dalam penambahan 50.

Contoh:

Contoh Langkah

Hasil:

Grafik

Untuk beberapa nilai, satu-satunya cara yang saya temukan untuk bekerja adalah menggunakan daftar nilai untuk X, dan menggunakan pernyataan tabel. Ini mungkin paling baik dijelaskan dengan contoh (membaca bantuan untuk perintah yang digunakan mungkin akan sangat membantu di sini). Tetapi perhatikan bahwa sintaks perintah tabel ada dalam bentuk tabel (indeks, x1, y1, x2, y2, .... xn, yn), mengambil indeks sebagai input dan mengembalikan nilai yang diinterpolasi untuk x = indeks berdasarkan x yang disediakan x , kamu berpasangan.

Dalam salah satu simulasi saya, saya perlu melakukan 12 simulasi sambil mengubah 3 nilai komponen yang berbeda, berikut adalah perintahnya:

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

Hasil:

Dapatkan Contoh

Semoga Anda mendapatkan idenya, Anda mungkin dapat menghasilkan skrip yang akan menghasilkan perintah SPICE yang diperlukan ketika Anda mengisi nilai yang Anda inginkan. Atau cukup buat templat (mis. Saya baru saja menyalin dan menempel di atas ke dalam beberapa simulasi berbeda dan mengubah nilainya)

Jika di atas tidak melakukan apa yang Anda inginkan, maka mungkin melihat sesuatu seperti multisim NI (saya pikir ini memiliki beberapa opsi simulasi batch, meskipun saya tidak yakin seberapa berguna mereka) Mungkin juga membantu untuk bertanya pada LTSPice forum dan lihat apakah seseorang tahu cara yang lebih baik dalam melakukan sesuatu.


3
Ini tidak sebersih yang saya inginkan, tetapi untuk perangkat lunak gratis, saya hanya bisa bersyukur bahwa mereka memberi saya tulang. Terima kasih telah menunjukkan teknik ini. Ini pasti akan membuat saya lebih dekat dengan apa yang saya cari.
Joel B

1
Terima kasih, ini membantu saya mengetahui simulasi saya. Sekarang saya harus mencari cara bagaimana menempatkan legenda di plot sehingga saya bisa tahu simulasi mana yang.

8

Saya pikir sebenarnya dimungkinkan untuk menjalankan LTSpice dari baris perintah dan menjalankan simulasi sementara:

Di windoze:

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

Di Linux:

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

1
Ini adalah penemuan yang luar biasa! Saya sekarang bertukar pikiran bagaimana saya dapat menggunakan ini untuk desain otomatis.
Joel B

1
@ JoelB: ya, saya juga menggunakannya untuk itu. Sayangnya ada beberapa kekurangan: 1) Tidak seperti dalam GUI, pemecah berjalan tunggal-threaded, jadi lebih lambat 2) Anda tidak memiliki "laporan kemajuan" seperti di GUI
blondiepassesby

3

LTSpice dapat dijalankan dalam mode batch dengan -bsaklar baris perintah.

Dari file Bantuan LTSpice:

-b: Jalankan dalam mode batch. Misalnya "scad3.exe -b deck.cir" akan meninggalkan data dalam file deck.raw

Cara membaca dan menginterpretasikan output .raw dibiarkan sebagai latihan untuk pembaca.

Perhatikan juga, di antara sakelar baris perintah:

-ascii: Gunakan file ASCII .raw. Serius menurunkan kinerja program.


Bagaimana tepatnya saya menjalankannya? Dalam mode baris perintah yaitu. Saya biasanya bukan pengguna windows dan tidak tahu bagaimana melakukan ini pada mesin windows.
Tropical_Peach

1
Saya tidak pernah menjalankannya seperti itu. Anda harus mencobanya sendiri. Anda dapat membuka jendela perintah ('cmd.exe' pada menu Mulai) atau menjalankannya dari bahasa apa pun yang Anda gunakan untuk mengurutkan tes Anda.
The Photon

Jika Anda menggunakan matlab, mereka memiliki skrip untuk mengonversi file .raw mathworks.com/matlabcentral/fileexchange/…
Voltage Spike

3

Apakah Anda sudah memeriksa di " LTSpice Queue Manager "? ( Tautan dialihkan ke situs web saya sendiri di mana Anda dapat mengunduh perangkat lunak tetapi saya bukan pembuatnya, yang awalnya membagikan program di forum yang hari ini ditutup. Berbagi melalui situs web saya adalah cara untuk menghidupkannya kembali ).

Alat ini telah banyak membantu saya di masa lalu. Anda dapat menyiapkan banyak file simulasi dan menjalankannya dalam mode antrian.

Manajer antrian LTSpice


Mengantri bukanlah otomatisasi.
Harry Svensson

1
Jika otomasi yang Anda butuhkan sedang mengantri, itu pasti! Ini mengatasi masalah OP secara langsung.
Daniel

1
Jika ini adalah perangkat lunak sumber tertutup yang tidak Anda tulis, saya berharap pengguna akan curiga menjalankannya.
Dave Tweed

1

Jika itu hanya LT Spice dan Anda tidak bisa melewati GUI saya akan merekomendasikan program script AutoIt. Saya telah menggunakannya untuk mengotomatiskan beberapa aplikasi Windows kritis yang kurang aktif-x-DDE-COM.dll-apa pun. Anda dapat mengaturnya untuk menunggu file, menekan tombol windows, item menu, memanggil program dengan argumen, dll.

Lihatlah:

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

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

Saya akan menggunakan Winbatch jika Anda ingin membayar untuk program skrip.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.