Devre Simülatörleri gerçekte nasıl çalışır?


31

Geçenlerde bir devre simülatörü olan LiveWire ile oynama fırsatını yakaladım ve her bir parçadaki voltajı ve her tel izinden geçen akımı tam olarak nasıl hesapladıklarını merak etmeye başladım .

Şimdiye kadar yalnızca temel devre analizi becerilerini (Mesh analizi ve Nodal analizi gibi) öğrendim ve bunların bir devre simülatöründe 'herkese uyar' bir şekilde uygulayacak kadar genel olduklarından emin olamadım.

Bir programcı olarak bu beni çok etkiledi ve bunun gibi devre simülatörleri oluştururken yaygın olarak hangi teknikleri kullandığını görmek isterim.

Özür dilerim, eğer bu buraya ait değilse, burada ve StackOverflow arasında bir seçim yapıldı ve yazılım geliştirme odaklı bir soru olmasına rağmen sorunun bu siteye ve onun kullanıcı tabanına daha uygun olduğunu hissettim.


Asıl püf noktası çok az zaman dilimidir. Bu nedenle zamanın karmaşık işlevleri, küçük zaman dilimleriyle çok fazla fark denklemini ortaya çıkarır. Dijital bir simülasyonda fark denklemleri olan diferansiyel denklemler olarak ifade edilebiliyorsa kötü karmaşıklık genellikle önemli ölçüde azaltılır.
Olin Lathrop

Yanıtlar:


14

Falstad simülatörünün kodunu ayrıntılı olarak inceledim. Sadece dirençler, anahtarlar ve voltaj kaynakları gibi doğrusal bileşenlerden oluşan devreler için (mantık-geçit çıkışları gibi şeyler simülasyon için topraklara bağlı voltaj kaynakları olarak kabul edilir), simülatör her devre düğümünü, voltaj kaynağını (iki düğümü bağlar) dikkate alır. veya lineer bir denklemi ve bir değişkeni tanımlayan tel (aynı şekilde), öyle ki denklem sayısı ve değişken sayısı daima eşit olacaktır. Bir devre düğümü için değişken, düğümün voltajıdır ve denklem, içinden geçen toplam akımı, herhangi bir akım kaynağı tarafından enjekte edilen toplam akıma eşit olarak hesaplar. Bir voltaj kaynağı veya kablo için (potansiyel farkın sıfır olduğu bir voltaj kaynağı olarak kullanılan bir kablo),

Mevcut kaynaklar ve dirençler gibi şeyler dirençler veya değişkenlerle ilişkili değildir. Bunun yerine, akım kaynakları bir devre düğümü için gereken toplam akımı arttırır (her devre düğümünün içeri ve dışarı akan toplam akımı değerlendiren bir denklemi olduğunu unutmayın) ve diğer için azaltın. Dirençler biraz daha zorlayıcıdır: her uç nokta denklemi için, direnç her uç noktanın düğüm voltajı için terimler ekler.

Örneğin 1 ve 2 nolu düğüm düğümlerini bağlayan 100-ohm'luk bir direnç, 1 nolu düğümdeki her bir volt artışının, 1 nolu düğümün içine akan akımı 0,01 amp azaltacağını ve 2 nolu düğümün içine akan akımı benzer bir miktarda arttıracağını söyleyecektir. Benzer şekilde, düğüm 2'deki her bir volt artışı, düğüm 1'e akan akımı 0.01 amper arttıracak ve düğüm 2'ye akan akımı benzer bir miktarda azaltacaktır.

Düğüm 1 ve 5'i bağlayan 10 voltluk bir besleme kaynağına ve düğüm 1 ve 2, 2 ve 3, 2 ve 4 ve 3 ve 4'ü bağlayan 100 ohm dirençlere sahip bir devre düşünün. Ayrıca: 1. düğümde bir toprak simgesi olduğunu varsayalım.

neg ---+-1---R100---2---R100---3---100---4---pos
      gnd           |                    |
                    +---------100--------+

İki "voltaj kaynağı" olacaktır: topraklama kablosu ve 10 voltluk besleme (sırasıyla denklem / değişken 5 ve 6 olarak kabul edilir). Böylece denklemler şöyle olacaktır:

-X1*0.01                             +X5 -X6 = 0  Node 1
+X1*0.01 -X2*0.01          +X4*0.01          = 0  Node 2
         +X2*0.01 -X3*0.01 +X4*0.01          = 0  Node 3
         +X2*0.01          -X4*0.01      +X6 = 0  Node 4
-X1*1                                        = 0  Volts 5 (voltage between 1 and gnd)
-X1*1                      +X4*1             = 10 Volts 6 (voltage between 1 and 4)

Bu denklem sistemi bir NxN matrisi artı bir N madde dizisi olarak gösterilebilir. Her denklem matristeki bir satırla temsil edilir, her satırdaki değerler her değişkenin katsayılarını temsil eder. Her denklemin sağ tarafı ayrı dizide saklanır. Denklemleri çözmeden önce, her bir düğüme akan net akımı (bu durumda sıfır) ve voltaj kaynaklarıyla bağlanan düğüm çiftleri arasındaki voltaj farkını bilir. Denklemlerin çözülmesi, her düğümdeki gerilimi ve her gerilim kaynağından geçen akımı verecektir.

Devre kapasitör içeriyorsa, bunların her biri düşük değerli dirençli seri halinde bir voltaj kaynağı olarak kabul edilecektir; Her simülasyon adımından sonra, voltaj kaynağı içinden geçen akım miktarına göre ayarlanacaktır. İndüktörler akımı bir birine besleyen ve diğerini alan yüksek değerli dirençler olarak kabul edilecektir (akımın direnci arasındaki gerilime göre ayarlanmaktadır). Hem kondansatörler hem de indüktörler için, direnç değeri, bir simülasyon aşaması tarafından temsil edilen zaman miktarı ile kontrol edilecektir.

Transistörler gibi daha karmaşık devre elemanları, voltaj kaynakları, akım kaynakları ve dirençlerin kombinasyonları olarak kabul edilir. Simülasyon zaman adımı başına her şeyin bir kez işlenmesini sağlayan daha basit devre elemanlarının aksine, transistörler gibi elementler gördükleri gerilimlere ve akımlara dayanarak etkin dirençlerini hesaplarlar, gördükleri gerilimlere ve akımlara dayalı olarak yeniden hesaplarlar. Yeni gerilimler ve akımlar, denklemcilerin vb. etkilerini, dirençlerinin gördüğü gerilim ve akım için olması gerektiği gibi bir dengeye ulaşmak amacıyla yeniden değerlendirir.

Falstad simülatörü, tamamen "doğrusal" elemanlardan oluşan orta büyüklükteki devreler için oldukça hızlı olabilir. Değişen tek şey sağ taraftaki katsayılar ise, bir denklem sistemini tekrar tekrar çözme zamanı oldukça makul. Sistemin denklemleri "yeniden aktive etmesi" gerektiğinden, eğer sol taraf değişirse (örneğin, bir transistörün etkin direncinin yükselmesi veya azalması nedeniyle) zaman çok yavaşlar. Refaktörün her bir simülasyon basamağında (transistörlerde gerekli olabilir) denklemlere birden fazla kez yapılması, işleri daha da yavaşlatır.

Her şey için bir büyük matris kullanmak, büyük simülasyonlar için iyi bir yaklaşım değildir; Matris oldukça seyrek görünse de, düğüm sayısı artı voltaj kaynakları karesiyle orantılı yer kaplar. Her simülasyon adımında matrisi çözmek için gereken süre, yeniden yapılandırma gerekmiyorsa matris büyüklüğü karesiyle veya yeniden düzenleme gerekliyse matris büyüklüğü küpüyle orantılı olacaktır. Bununla birlikte, bir devre ve doğrusal denklem sistemleri arasındaki ilişkiyi gösterme konusunda yaklaşımın belirli bir zarafeti vardır.


Çoğu SPICE tipi simülatör de bu algoritmayı kullanır. İşte baharat ecircuitcenter.com/SpiceTopics/Overview/Overview.htm
user6972

1
FYI - KLU devre simülatörlerinde kullanılan ortak algoritmadır. KLU, Clark Kent LU'un kısaltmasıdır, çünkü Süpernodal algoritması olan SuperLU'nun öncüsü olan Süpernodal olmayan bir algoritma Gilbert-Peierls'in algoritmasına dayanır. KLU, hibrit sıralama mekanizmaları ve zarif çarpanlara ayırma ve algoritmaları çözme gibi seyrek yüksek performanslı bir doğrusal çözücüdür.
user6972 21:13

Örneğin, birkaç transistör modeli olduğunu, BSIM veya EKV olduğunu fark etmek önemlidir. Temel olarak bu modeller, tek bir transistörün çalışmasında rol oynayan tüm fizik ve elektriksel özellikler üzerindeki etkileri dikkate almaktadır. İçinde sadece voltaj kaynaklarının, akım kaynaklarının ve dirençlerin kombinasyonlarını temsil etmekten çok daha fazlası var. Farklı bir model seçmek istiyorsanız LEVEL parametresini kullanabilirsiniz. Jacob Baker'ın bu öğretici iyi bir başlangıç. Umarım yardımcı olur.

11

LiveWire, çeşitli yetenek seviyelerine sahip devre simülatörlerinden biridir.

Örneğin, Falstad Devre Simülatörü , LiveWire ile aynı özellik seviyesine sahip gibi görünüyor - ve kaynak kodu bu linkte sunuluyor. Bu iyi bir başlangıç ​​olmalı.

Daha karmaşık devre simülasyonu için, birçok araç köklerini UC Berkley tarafından SPICE'a geri götürür . SPICE kaynak kodu talep üzerine BSD lisansı altında UCB'den temin edilebilir.

Üreticiye özgü SPICE sürümleri, genellikle kendi ürünlerinin çok detaylı yarı iletken simülasyon modellerini simülatörlerine entegre eder. Örneğin, Linear Technologies'den LTSpice IV veya Texas Instruments'tan TINA-TI . Altında, hepsi genellikle SPICE.

WikiPedia sayfasından SPICE hakkında alıntı yapmak:

SPICE ve türevlerinin en belirgin olduğu devre simülasyon programları, devre elemanlarını (transistörler, dirençler, kapasitörler vb.) Ve bunların bağlantılarını açıklayan bir metin ağı listesi alır ve bu tanımı çözülecek denklemlere çevirir. Üretilen genel denklemler, örtük integrasyon yöntemleri, Newton metodu ve seyrek matris teknikleri kullanılarak çözülen lineer olmayan diferansiyel cebirsel denklemlerdir.

Daha da gelişmiş bir seviyede , Proteus Design Suite'in bir parçası olan Proteus Sanal Sistem Modellemesi gibi çeşitli ticari ürünler , karışık mod SPICE devre simülasyonu için özel geliştirmeler kullanır - bu araçlar hem analog devre davranışını hem de dijital mikrodenetleyici kodunu simüle edebilir, Aralarındaki etkileşimler tam olarak modellenmiştir.

Çok daha sınırlı ve sınırlayıcı bir düzeyde, bu siteye entegre olan Circuit Lab aracı gibi bazı şematik editörler küçük bir simülasyon becerisi yelpazesi sunar. Pratik önemsiz elektronik tasarımda bu kadar kullanışlı olmayabilir, ancak yeteneklerini ve uygulamalarını incelemek bir yazılım geliştiriciye kullanıcılar için neyin iyi neyin işe yarayıp neyin yaramadığına dair bir fikir verecektir.


5

SPICE benzeri devre simülatörleri tarafından yapılan üç ana analiz vardır:

  • DC çalışma noktası
  • AC analizi
  • Geçici analiz

DC işletim noktası (DC kaynakları, doğrusal dirençler oluşturulan ve kontrol kaynakları lineer) doğrusal bir devre için analiz modifiye düğüm analizi (MNA) kullanılarak yapılır. Ağ analizi de kullanılabilir, fakat düğüm analizi için denklemleri ayarlamak çok kolaydır.

Doğrusal olmayan devreler için (doğrusal olmayan kontrol kaynakları olarak temel olarak modellenebilen transistörler gibi aygıtlar içerir), bazı ek numaralar kullanılmalıdır. Kavramsal olarak basit bir yol, birden fazla denklem için bir Newton Yönteminin bir uzantısını kullanmaktır .

Newton'un metodu, çözümü tahmin etmeyi ve daha sonra tahmini çözüme sadece "yakın" olan doğru bir devre modeli yapmayı içerir. Linearaized devresine çözüm, çözüm hakkında yeni bir tahmin olarak kullanılır ve ardışık yineleme, lineer olmayan devre için (umarım) doğru çözüm üzerinde "birleşene" kadar süreç yinelenir. Gerçek dünyada, daha karmaşık doğrusal olmayan çözücüler, çözümü daha hızlı ve yakınsama başarısızlığı nedeniyle daha az hatayla yapabilmek için kullanılır.

AC analiz ilk bir çalışma noktasının bulmak için bir DC analizini yaparak yapılır. Ardından çalışma noktasında küçük bozulmaların etkisini inceleyin. "Küçük", tanım gereği, doğrusal olmayan etkilerin önemli olmadığı kadar küçük anlamına gelir. Bu, devre elemanlarının çalışma noktasına bağlı olarak doğrusal eşdeğer elemanlara dönüştürüldüğü anlamına gelir. Daha sonra MNA, devrede AC kaynaklarının neden olduğu bozulmaların etkisini çözmek için (enerji depolayan elemanların empedansını temsil eden karmaşık sayılarla) kullanılabilir.

Geçici analiz Olin yorumlarda dediği gibi devre değişkenleri zamanla çok küçük adımlar üzerinde gelişmeye nasıl dikkate alınarak, yapılır. Yine her bir zaman adımında, devre çalışma noktası etrafında doğrusallaştırılır, böylece denklemleri ayarlamak için MNA kullanılabilir. Zaman içindeki davranışı çözmek için basit bir yöntem Euler Yöntemidir . Ancak yine pratikte daha küçük hatalarla daha büyük zaman çizelgelerinin kullanılmasına izin vermek için daha karmaşık yöntemler kullanılır.

Bu yöntemlerde ortak bir iş parçacığının devre davranışına doğrusal bir yaklaşım yaklaştığını ve doğrusal olmayan devre davranışına bir çözüm bulana kadar MNA ile çözdüğünü görebilirsiniz.

Bu üç analiz, 1970'lerden beri SPICE benzeri simülatörler tarafından yapılan ana analizlerdir. Daha yeni simülatörler, harmonik denge (doğrusal olmayan elemanlardan gelen karışım etkilerini sağlamak için AC yaklaşımının bir uzantısı) veya iletim hattı etkilerini simüle etmek için elektromanyetik simülasyonlar gibi ek özellikler ekler. Fakat DC, AC ve geçici simülasyonlar, SPICE benzeri bir simülatör kullanırken anlamanız gereken ilk üç adettir.


: Daha önceki bir cevap MNA denklemlerini nasıl kurulacağı hakkında konuştuk electronics.stackexchange.com/questions/19198/...
Foton

2
Ayrıca dijital devre simülasyonlarının tamamen farklı yöntemler kullandığını da eklemeliyiz; ve bu, analog-dijital ortak simülasyonu, kendi başına bir problem haline getirir.
Photon
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.