Menguasai SPICE: Keanehan Umum & Cara Menghindarinya
"Garbage in, garbage out." —Anonymous
SPICE adalah mesin simulasi yang andal, namun memiliki sejumlah idiosinkrasi yang dapat mengejutkan bahkan pengguna berpengalaman. Dalam artikel ini kita akan fokus pada aturan format file dan topologi rangkaian halus yang diberlakukan oleh SPICE, bukan pada bug yang menghasilkan hasil yang salah. Banyak dari keanehan ini spesifik untuk SPICE 2g6, tetapi masih dapat muncul dalam rilis yang lebih baru.
Awal File yang Benar
Setiap netlist SPICE harus dimulai dengan baris non-komponen—biasanya judul, komentar, atau baris kosong. Jika baris pertama adalah kartu komponen, SPICE akan berhenti dengan pesan “kesalahan serius,” sering kali menyalahkan masalah pada koneksi node. Baris kosong atau komentar sederhana sudah cukup untuk memuaskan parser.
Kartu .end terakhir harus ditulis tanpa karakter akhir baris. Setelah mengetik .end, hentikan kursor segera setelah “d” dan jangan menekan [Enter]. Jika tidak, SPICE akan melaporkan kesalahan “kartu .end hilang,” yang tidak mempengaruhi simulasi itu sendiri tetapi membebani output.
Sertakan Node 0
Node 0 adalah referensi ground untuk semua pernyataan tegangan. Setiap netlist yang valid harus berisi node 0; jika tidak, SPICE tidak dapat menyelesaikan skala tegangan. Misalnya, analisis DC akan mencantumkan tegangan relatif terhadap node 0, seperti:
node voltage node voltage ( 1) 15.0000 ( 2) 0.6522
Di sini node 1 adalah 15 V di atas ground, dan node 2 adalah 0,6522 V di atas ground. Jangan Biarkan Rangkaian Terbuka
Rangkaian terbuka—terutama sumber tegangan terbuka—mengganggu kemampuan SPICE untuk menemukan jalur arus. saat menghubungkan sumber tegangan ke masukan sumber tergantung (mis., model op-amp), sisipkan resistor nilai tinggi (sering disebut rbogus) untuk memberikan beban minimal dan menjaga simulasi tetap berjalan.
Hindari Loop Tegangan/Induktor Undead
SPICE memperlakukan induktor sebagai rangkaian pendek dan kapasitor sebagai rangkaian terbuka selama analisis DC. Akibatnya, loop tak terhenti dari induktor atau sumber tegangan, atau kapasitor seri tanpa jalur DC, menyebabkan solver gagal. Pola pelanggar tipikal meliputi:
netlist l1 2 4 10m l2 2 4 50m l3 2 4 25m
netlist v1 1 0 dc 12 l1 1 0 150m
netlist c1 5 6 33u c2 6 7 47u
Untuk memperbaiki ini, sisipkan shunt resistensi rendah untuk induktor dan shunt resistensi tinggi untuk kapasitor. Misalnya: netlist asli l1 2 4 10m l2 2 4 50m l3 2 4 25m
netlist diperbaiki rbogus1 2 3 1e-12 rbogus2 2 5 1e-12 l1 3 4 10m l2 2 4 50m l3 5 4 25m
Resistor rbogus pada dasarnya adalah rangkaian pendek (1 pΩ, memastikan loop induktor tidak lagi tampak sebagai rangkaian pendek sempurna bagi solver. Untuk kapasitor: netlist asli c1 5 6 33u c2 6 7 47u
netlist diperbaiki c1 5 6 33u c2 6 7 47u rbogus 6 7 9e12
Shunt 9 TΩ menjaga jalur DC tanpa mempengaruhi perilaku AC. Mengukur Arus dalam SPICE
Sonde tegangan mudah—hanya merujuk ke dua node. Sonde arus, namun, memerlukan referensi sumber tegangan. Jika rangkaian Anda tidak memiliki sumber tersebut, sisipkan sumber “bogus” tegangan nol untuk menancapkan pengukuran:
c1 4 7 22u vbogus 6 4 dc 0 .print ac i(vbogus)
Analisis AC tetap berlaku, jadi sumber tegangan nol tidak mengubah simulasi. Perhatikan bahwa SPICE menetapkan polaritas arus berlawanan dengan arah konvensional untuk sumber DC. Dalam rangkaian seri sederhana:
contoh v1 1 0 r1 1 2 5k r2 2 0 5k .dc v1 10 10 1 .print dc i(v1) .end
SPICE melaporkan –1 mA karena arus yang keluar dari terminal negatif v1 dianggap negatif. Mengubah arah sumber tegangan nol dapat memaksa pembacaan positif jika diinginkan. Tips Analisis Fourier
Saat menjalanalisis Fourier (domain frekuensi), selalu cetak atau plot bentuk gelombang target; jika tidak, SPICE akan jeda dan membatalkan setelah menampilkan “solusi transien awal.” Untuk sumber pulsa yang menghasilkan gelombang persegi, sediakan waktu naik dan turun yang realistis. Gelombang persegi ideal (tepi instan) secara salah memperkenalkan harmonik genap dalam transformasi Fourier SPICE.