एनकैप्सिस में करेंट प्लॉट कैसे करें?


11

मैं एनकैप्सिस में करंट और पावर को प्लॉट करना चाहता हूं। वोल्टेज के मामले में, उदाहरण के लिए, अगर मैं नोड 1 पर वोल्टेज की साजिश करना चाहता था, तो मैं उपयोग करूंगा:

plot v(1)

समस्या यह है कि जब मैं i (1) की कोशिश करता हूं, तो वेक्टर पहचाना नहीं जाता है। क्या कोई ऐसा करने के बारे में कुछ उदाहरण दे सकता है?


जवाबों:


8

ओली ने एक सही उत्तर दिया लेकिन I (एलीमेंट_नाम) एक विस्तार है जो केवल वाणिज्यिक स्पाइस संस्करणों में जोड़ा गया है।

एनकैप्सिस (जो बर्कले स्पाइस 3 पर आधारित है) में आप केवल (स्वतंत्र) वोल्टेज स्रोतों के माध्यम से धाराएं लगा सकते हैं। ये एकमात्र धाराएं हैं जो सर्किट समीकरणों में दिखाई देती हैं जो SPICE से काम करता है।

एक इंटरैक्टिव स्पाइस सत्र में या स्क्रिप्ट में एक विशेष ब्लॉक से ( इस प्रश्न को भी देखें ) आप ऐसे भावों का उपयोग कर सकते हैं (v(1)-v(2))/1kजब वर्तमान नोड्स 1 और 2 के बीच 1k through अवरोधक के माध्यम से होता है। प्रतिक्रियाशील तत्वों (जैसे 1μF संधारित्र) के लिए कुछ (v(1) - v(2))/(2*pi*frequency*1u)होना चाहिए काम भी करते हैं।


मेरा दूसरा समाधान (अभिव्यक्ति के साथ) लागू करने के लिए बहुत मुश्किल नहीं होना चाहिए। आप मैनुअल में देख सकते हैं कि एनकैप्सिस के पास मूल्य प्राप्त करने का कोई तरीका है और शायद घटक के नाम भी। मुझे यकीन है कि मॉडल मापदंडों के साथ डमी वैक्टर हैं।
जेपीसी

6

मैंने ngspice का उपयोग नहीं किया है (मैं LTSpice का उपयोग करता हूं, लेकिन जो मैं समझता हूं कि बहुत से सभी स्पाइस मूल बर्कले सिंटैक्स पर आधारित हैं, और इसी तरह काम करते हैं), लेकिन आमतौर पर आप एक घटक के माध्यम से या जैसे ट्रांजिस्टर के बेस में करंट प्लॉट करते हैं , बल्कि किरचॉफ के पहले कानून के अनुसार एक नोड की तुलना में, (एक बिंदु पर धाराओं की बैठक का योग शून्य है)

EDIT - जैसा कि jpc ने बताया है, ngspice के लिए (और शायद सबसे अन्य गैर-वाणिज्यिक / शुरुआती वेरिएंट) चीजें थोड़ी अलग हैं, क्योंकि आप केवल वोल्टेज स्रोत के माध्यम से धाराओं को साजिश कर सकते हैं। तो किसी को ब्याज के सर्किट के पैर में 0V स्रोत जोड़ना होगा, और इसके माध्यम से वर्तमान को प्लॉट करना होगा। मैंने नीचे एक उदाहरण जोड़ा है।

इसलिए यदि आपके पास एक सरल सर्किट है जिसमें एक वोल्टेज स्रोत (V1) के साथ एक प्रतिरोधक (R1) होता है (मैं नेटलिस्ट का विशेषज्ञ नहीं हूं तो इसे उबड़-खाबड़ उदाहरण के रूप में लेता हूं):

V1 1 0 5

आर 1 1 0 1000

(1, 0 नोड्स हैं, 5 (वी) और 1000 (ओम) संबंधित मूल्य हैं)

आप I (R1), या I (V1) के साथ करंट को प्लॉट कर सकते हैं, I (1) को नहीं। हालाँकि आप वोल्टेज के लिए V (1) प्लॉट कर सकते हैं।

NGSPICE संस्करण (परीक्षण और पुष्टि)

V1 1 0 5
R1 1 2 1000 Vdummy 2 0 0

ध्यान दें कि Vdummy रोकनेवाला के साथ श्रृंखला में है, इसलिए उसी प्रवाह को इसके माध्यम से प्रवाह करना चाहिए। तो R1 के लिए करंट प्लॉट करने के लिए हम I (Vdummy) लिखते हैं। अधिक जटिल सर्किट के लिए हम बस यह सुनिश्चित करते हैं कि वही शर्तें लागू हों।

यहाँ LTspice से एक "वास्तविक" उदाहरण है:

netlist

V1 V + 0 24 Rser = 0
V2 SIG 0 SINE (-1.4563 1m 1000 0 0 0 0) AC 2 Rser = 0
V3 V- 0 -24
Q1 N001 N002 N003 0 2N22221/
1 V + N001 1f
R2 N003 V- 2K7
C2 N004 N003 N003 100μF
R3 N004 0 3K9
R4 N002 0 22K
सी 1 N002 SIG 100μF

CIRCUIT की तस्वीर

सर्किट पूर्व

प्लॉट विकल्प

(ध्यान दें कि कोई I (n001), I (n002), आदि नहीं है)

प्लॉट विकल्प


1
जैसा कि jpc ने टिप्पणी की थी, यह ngspice के साथ प्रकट होता है आप केवल वोल्टेज स्रोतों के माध्यम से धाराएं लगा सकते हैं। मैंने अभी-अभी ngspice डाउनलोड किया और इस बात की पुष्टि की, यह i (Vx) डालना संभव है, लेकिन i (Rx), आदि नहीं। इसलिए मुझे लगता है कि आपको अपने सर्किट के जिस भी हिस्से में आप करंट लगाना चाहते हैं, उसमें 0V स्रोत जोड़ने की आवश्यकता है। (कहते हैं कि इसे Vx कहा जाता है) और प्लॉट i (Vx) डालें।
ओली ग्लेसर

@OliGlaser: वास्तव में ज्यादातर वाणिज्यिक स्पाइस फोर्क SPICE2 कोडबेस (फोरट्रान में) पर आधारित होते हैं जबकि ngspice (और अन्य ओपन सोर्स / फ्रीवेयर वर्जन) नए (!) C भाषा के पुनर्लेखन पर आधारित होते हैं जिन्हें SPICE3 कहा जाता था। मेरा मानना ​​है कि जूरी अभी भी बाहर है जिस पर एक बेहतर है। :)
जेपीसी

4

आप धाराओं की साजिश कर सकते हैं, लेकिन आपको यह जानने की जरूरत है कि आप अपने सिमुलेशन चलाने से पहले किन धाराओं के बारे में जानना चाहते हैं।

जैसे यदि आपके पास एक डायोड डी 1 था और आप इसके माध्यम से करंट लगाना चाहते थे, तो आप कर सकते थे:

.save @d1[id]
.tran <slice> <end>
.plot tran @d1[id]

अधिक जानकारी http://ngspice.sourceforge.net/docs/ngspice-manual.pdf पर ngspice मैनुअल के पृष्ठ 519 (अध्याय 31) पर है।


3

एक एकल घटक में डीसी वोल्टेज को स्वीप करने के मामले में, आप शाखा को चालू कर सकते हैं। निम्नलिखित नेटलिस्ट लोड करके

.MODEL DI1N4004 D (IS=76.9n RS=42.0m  BV=4 IBV=5.00u CJO=39.8p
+M=0.333 N=1.45 TT=4.32u)

D1 1 0 DI1N4004
Vin 1 0 dc 12 ac 0

to ngspice और कमांडिंग

dc vin -10 5 0.001
plot -vin#branch

आपको डायोड d1 के पार वर्तमान का एक प्लॉट आरेख प्राप्त करने में सक्षम होना चाहिए।


2

करंट प्लॉटिंग के लिए उस शाखा में शून्य वोल्टेज स्रोत जोड़ें और टर्मिनल में vlabel # शाखा टाइप करें।


3
यह कुछ भी नहीं जोड़ता है कि अन्य उत्तर पहले से ही नहीं कहते हैं, और अपने दम पर उपयोगी होने के लिए बहुत ही कठिन है।
डेव ट्वीड

2

NGSpice 27 R2017 के बाद से, कोड की इस लाइन को रखना:

.options savecurrents

धाराओं, जिसके लिए के माध्यम से कहा जा सकता है की बचत होती है @R1[i], @D1[id]आदि

plot @R1[i] vs v(1)

एनजीएसपीस मैनुअल में इस विकल्प की तलाश करें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.