Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Teknologi Industri

Keunikan SPICE

“Sampah masuk, sampah keluar.” —Anonim

SPICE adalah perangkat lunak yang sangat andal, tetapi memiliki sedikit kebiasaan yang membutuhkan waktu untuk membiasakan diri. Yang saya maksud dengan “quirk” adalah permintaan yang diberikan kepada pengguna untuk menulis file sumber dengan cara tertentu agar dapat berfungsi tanpa memberikan pesan kesalahan.

Saya tidak berarti segala jenis kesalahan dengan SPICE yang akan menghasilkan hasil yang salah atau menyesatkan:yang akan lebih tepat disebut sebagai "bug." Berbicara tentang bug, SPICE juga memiliki beberapa bug.

Beberapa (atau semua) dari kebiasaan ini mungkin unik untuk SPICE versi 2g6, yang merupakan satu-satunya versi yang saya gunakan secara ekstensif. Mereka mungkin telah diperbaiki di versi yang lebih baru.

Awal yang baik

SPICE menuntut agar file sumber dimulai dengan sesuatu selain "kartu" pertama dalam deskripsi sirkuit "dek." Karakter pertama dalam file sumber ini dapat berupa umpan baris, baris judul, atau komentar:harus ada sesuatu di sana sebelum baris pertama yang menentukan komponen file.

Jika tidak, SPICE akan menolak untuk melakukan analisis sama sekali, mengklaim bahwa ada kesalahan serius (seperti koneksi node yang tidak tepat) di “dek”.

Akhir yang bagus

SPICE menuntut agar .end baris di akhir file sumber tidak diakhiri dengan karakter linefeed atau carriage return. Dengan kata lain, ketika Anda selesai mengetik “.end ” Anda tidak boleh menekan [Enter] pada keyboard Anda.

Kursor pada editor teks Anda harus berhenti tepat di sebelah kanan "d" setelah ".end ” dan jangan pergi lebih jauh. Kegagalan untuk mengindahkan quirk ini akan mengakibatkan “kartu .end yang hilang ” pesan kesalahan di akhir hasil analisis.

Analisis rangkaian sebenarnya tidak terpengaruh oleh kesalahan ini, jadi saya biasanya mengabaikan pesan tersebut. Namun, jika Anda ingin mendapatkan hasil yang "sempurna", Anda harus memperhatikan keistimewaan ini.

Harus memiliki simpul 0

Anda diberi banyak kebebasan dalam penomoran simpul sirkuit, tetapi Anda harus memiliki node 0 di suatu tempat di netlist Anda agar SPICE berfungsi. Node 0 adalah node default untuk ground sirkuit, dan merupakan titik referensi untuk semua tegangan yang ditentukan di lokasi node tunggal.

Ketika analisis DC sederhana dilakukan oleh SPICE, output akan berisi daftar tegangan di semua node bukan nol di sirkuit. Titik acuan (ground) untuk semua pembacaan tegangan ini adalah node 0. Contoh:

tegangan simpul tegangan simpul ( 1) 15.0000 ( 2) 0,6522 

Pada analisis ini terdapat tegangan DC sebesar 15 volt antara node 1 dan ground (node ​​0), dan tegangan DC sebesar 0,6522 volt antara node 2 dan ground (node ​​0). Dalam kedua kasus ini, polaritas tegangan negatif pada node 0 dengan mengacu pada node lain (dengan kata lain, baik node 1 dan 2 positif terhadap node 0).

Hindari sirkuit terbuka

SPICE tidak dapat menangani sirkuit terbuka dalam bentuk apa pun. Jika netlist Anda menentukan sirkuit dengan sumber tegangan terbuka, misalnya, SPICE akan menolak untuk melakukan analisis.

Contoh utama dari jenis kesalahan ini ditemukan ketika "menghubungkan" sumber tegangan ke input sumber yang bergantung pada tegangan (digunakan untuk mensimulasikan penguat operasional). SPICE perlu melihat jalur lengkap untuk arus, jadi saya biasanya mengikat resistor bernilai tinggi (sebut saja rbogus !) melintasi sumber tegangan untuk bertindak sebagai beban minimal.

Hindari pengulangan komponen tertentu

SPICE tidak dapat menangani loop komponen tertentu yang tidak terputus dalam suatu rangkaian, yaitu sumber tegangan dan induktor. Loop berikut akan menyebabkan SPICE membatalkan analisis:

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 

Alasan SPICE tidak dapat menangani kondisi ini berasal dari cara SPICE melakukan analisis DC:dengan memperlakukan semua induktor sebagai arus pendek dan semua kapasitor terbuka. Karena hubungan pendek (0 ) dan sirkuit terbuka (resistansi tak terbatas) mengandung atau menghasilkan ketidakterbatasan matematis, komputer tidak dapat menanganinya, sehingga SPICE akan menghentikan analisis jika salah satu dari kondisi ini terjadi.

Cara Menghadapi Induktor dan Kapasitor di SPICE

Agar konfigurasi komponen ini dapat diterima oleh SPICE, Anda harus memasukkan resistor dengan nilai yang sesuai ke tempat yang sesuai, menghilangkan hubung singkat dan hubung singkat masing-masing. Jika resistor seri diperlukan, pilih nilai resistansi yang sangat rendah.

Sebaliknya, jika resistor paralel diperlukan, pilih nilai resistansi yang sangat tinggi. Misalnya:

Untuk memperbaiki masalah induktor paralel, masukkan resistor bernilai sangat rendah secara seri dengan masing-masing induktor yang melanggar.

netlist asli l1 2 4 10m l2 2 4 50m l3 2 4 25m 
netlist tetap rbogus1 2 3 1e-12 rbogus2 2 5 1e-12 l1 3 4 10m l2 2 4 50m l3 5 4 25m 

Seperti pada contoh sebelumnya dengan induktor paralel, penting untuk membuat resistor koreksi (Rpalsu ) resistansi yang sangat rendah, sehingga tidak terlalu memengaruhi operasi sirkuit.

Untuk memperbaiki rangkaian kapasitor seri, salah satu kapasitor harus memiliki resistor shunting di atasnya. SPICE membutuhkan jalur arus DC ke setiap kapasitor untuk dianalisis.

netlist asli c1 5 6 33u c2 6 7 47u 
netlist tetap c1 5 6 33u c2 6 7 47u rbogus 6 7 9e12 

Rpalsu nilai 9 Tera-ohm menyediakan jalur arus DC ke C1 (dan sekitar C2 ) tanpa secara substansial mempengaruhi operasi sirkuit.

Pengukuran saat ini

Meskipun mencetak atau memplot tegangan cukup mudah di SPICE, keluaran nilai arus sedikit lebih sulit. Pengukuran tegangan ditentukan dengan mendeklarasikan node sirkuit yang sesuai.

Misalnya, jika kita ingin mengetahui tegangan pada kapasitor yang ujung-ujungnya menghubungkan antara node 4 dan 7, kita mungkin melihat .print pernyataannya seperti ini:

c1 4 7 22u .print ac v(4,7) 

Namun, jika kita ingin SPICE mengukur arus melalui kapasitor itu, itu tidak akan begitu mudah. Arus di SPICE harus ditentukan dalam kaitannya dengan sumber tegangan, bukan komponen sembarang. Misalnya:

c1 4 7 22u vinput 6 4 ac 1 sin .print ac i(vinput) 

Ini .cetak kartu menginstruksikan SPICE untuk mencetak arus melalui sumber tegangan Vmasukan , yang kebetulan sama dengan arus yang melalui kapasitor kita antara node 4 dan 7. Tapi bagaimana jika tidak ada sumber tegangan seperti itu di sirkuit kita untuk referensi pengukuran arus?

Salah satu solusinya adalah dengan memasukkan resistor shunt ke dalam rangkaian dan mengukur tegangan di atasnya. Dalam hal ini, saya telah memilih nilai resistansi shunt 1 untuk menghasilkan 1 volt per amp arus melalui C1 :

c1 4 7 22u rshunt 6 4 1 .print ac v(6,4) 

Namun, penyisipan resistensi ekstra ke sirkuit kami yang cukup besar untuk menjatuhkan tegangan yang berarti untuk rentang arus yang diinginkan dapat mempengaruhi banyak hal. Solusi yang lebih baik untuk SPICE adalah ini, meskipun orang tidak akan pernah mencari solusi pengukuran saat ini dalam kehidupan nyata:

c1 4 7 22u vbogus 6 4 dc 0 .print ac i(vbogus) 

Memasukkan sumber tegangan DC "palsu" nol volt tidak mempengaruhi operasi sirkuit sama sekali, namun ini menyediakan tempat yang nyaman bagi SPICE untuk melakukan pengukuran arus. Cukup menarik, tidak masalah Vpalsu adalah sumber DC saat kita ingin mengukur arus AC!

Fakta bahwa SPICE akan mengeluarkan pembacaan arus AC ditentukan oleh “ac ” spesifikasi di .print kartu dan tidak lebih. Perlu juga dicatat bahwa cara SPICE menetapkan polaritas untuk pengukuran arus agak aneh. Ambil rangkaian berikut sebagai contoh:

contoh v1 1 0 r1 1 2 5k r2 2 0 5k .dc v1 10 10 1 .print dc i(v1) .end 

Dengan tegangan total 10 volt dan resistansi total 10 kΩ, Anda mungkin mengharapkan SPICE untuk memberi tahu Anda bahwa akan ada 1 mA (1e-03) arus melalui sumber tegangan V1 , tetapi pada kenyataannya, SPICE akan menampilkan angka negatif 1 mA (-1e-03)! SPICE menganggap arus keluar dari ujung negatif sumber tegangan DC (arah normal) sebagai nilai arus negatif daripada nilai arus positif.

Ada kalanya saya akan memasukkan sumber tegangan "palsu" di sirkuit DC seperti ini hanya untuk membuat SPICE mengeluarkan positif nilai saat ini:

contoh v1 1 0 r1 1 2 5k r2 2 3 5k vbogus 3 0 dc 0 .dc v1 10 10 1 .print dc i(vbogus) .end 

Perhatikan bagaimana Vpalsu diposisikan sedemikian rupa sehingga arus rangkaian akan masuk ke sisi positifnya (simpul 3) dan keluar dari sisi negatifnya (simpul 0). Orientasi ini akan memastikan angka keluaran positif untuk arus rangkaian.

Analisis empater

Saat melakukan analisis Fourier (domain frekuensi) pada bentuk gelombang, saya merasa perlu untuk mencetak atau memplot bentuk gelombang menggunakan .print atau .plot kartu, masing-masing. Jika Anda tidak mencetak atau memplotnya, SPICE akan berhenti sejenak selama analisis dan kemudian membatalkan pekerjaan setelah mengeluarkan "solusi sementara awal".

Juga, ketika menganalisis gelombang persegi yang dihasilkan oleh “pulsa ” fungsi sumber, Anda harus memberikan gelombang waktu naik dan turun yang terbatas, atau hasil analisis Fourier akan salah. Untuk beberapa alasan, gelombang persegi sempurna dengan waktu naik/turun nol menghasilkan tingkat genap . yang signifikan harmonik menurut opsi analisis Fourier SPICE, yang tidak berlaku untuk gelombang persegi nyata.


Teknologi Industri

  1. Cara Membuat Pelengkapan Otomatis Google Penelusuran
  2. Pengantar SPICE
  3. Sejarah SPICE
  4. Antarmuka Baris Perintah
  5. Komponen Sirkuit
  6. Pertimbangan praktis - Komunikasi Digital
  7. Perangkat Semikonduktor di SPICE
  8. Keunikan JFET
  9. Keunikan IGFET
  10. Simulasi Komputer Rangkaian Listrik