सर्किट सिमुलेटर वास्तव में कैसे काम करते हैं?


31

मुझे हाल ही में लाइववायर के साथ खेलने का अवसर मिला , जो एक सर्किट सिम्युलेटर है और आश्चर्यचकित हो गया कि वास्तव में उन्होंने प्रत्येक घटक और वोल्टेज के प्रत्येक ट्रैक से गुजरने वाले वोल्टेज की गणना कैसे की।

मुझे अब तक केवल बुनियादी सर्किट विश्लेषण कौशल (जैसे मेष विश्लेषण और नोडल विश्लेषण) सिखाया गया है, और मुझे पूरी तरह से यकीन नहीं है कि वे सर्किट सिम्युलेटर के भीतर 'फिट-ऑल' तरीके से लागू करने के लिए पर्याप्त सामान्य होंगे।

एक प्रोग्रामर के रूप में इसने मुझे बहुत परेशान किया है और मुझे यह देखने में अच्छा लगेगा कि सर्किट सिमुलेटर का निर्माण करते समय कौन सी तकनीकें आमतौर पर नियोजित होती हैं।

मेरी क्षमा याचना यदि यह यहाँ नहीं है, तो यह यहाँ और स्टैकओवरफ़्लो के बीच एक विकल्प था और मुझे लगा कि यद्यपि यह एक सॉफ्टवेयर-विकास उन्मुख प्रश्न है, लेकिन यह सवाल इस साइट पर अधिक लागू है और यह यूजरबेस है।


मुख्य चाल बहुत कम समय की स्लाइस है। इसलिए समय के जटिल कार्यों को छोटे समय के स्लाइस के साथ बहुत सारे अंतर समीकरणों को समाप्त करने के लिए नियंत्रित किया जाता है। यदि यह एक डिजिटल सिमुलेशन में अंतर समीकरण बन जाता है, तो इसे जटिल जटिलता आमतौर पर काफी कम कर दिया जाता है।
ओलिन लेथ्रोप

जवाबों:


14

मैंने कुछ विस्तार से फालस्टेड सिम्युलेटर के कोड की जांच की है। सर्किट के लिए जो केवल रैखिक घटकों जैसे प्रतिरोधों, स्विचेस और वोल्टेज स्रोतों से युक्त होते हैं (तर्क के लिए गेट-गेट आउटपुट जैसी चीजें ग्राउंड-कनेक्टेड वोल्टेज स्रोत मानी जाती हैं) सिमुलेटर प्रत्येक सर्किट नोड, वोल्टेज स्रोत (दो नोड्स को जोड़ता है) का संबंध रखता है , या तार (इसी तरह) एक रेखीय समीकरण और एक चर को परिभाषित करते हुए, जैसे समीकरणों की संख्या और चर की संख्या हमेशा बराबर होती है। एक सर्किट नोड के लिए, चर नोड का वोल्टेज है, और समीकरण किसी भी वर्तमान स्रोतों द्वारा इंजेक्ट किए गए कुल वर्तमान के बराबर कुल प्रवाह की गणना करता है। एक वोल्टेज स्रोत या तार के लिए (एक तार को वोल्टेज स्रोत के रूप में संभाला जा सकता है जहां संभावित अंतर शून्य है),

वर्तमान स्रोतों और प्रतिरोधों जैसी चीजें प्रतिरोधों या चर के साथ जुड़ी नहीं हैं। इसके बजाय, वर्तमान स्रोत एक सर्किट नोड के लिए आवश्यक कुल वर्तमान को बढ़ाते हैं (याद रखें कि प्रत्येक सर्किट नोड में एक समीकरण है जो कुल प्रवाह और अंदर प्रवाह का मूल्यांकन करता है) और दूसरे के लिए इसे घटाता है। रेसिस्टर्स थोड़े पेचीदा होते हैं: प्रत्येक समापन बिंदु के समीकरण के लिए, रोकनेवाला प्रत्येक समापन बिंदु के नोड वोल्टेज के लिए शर्तें जोड़ता है।

उदाहरण के लिए, नोड्स 1 और 2 को जोड़ने वाला 100-ओम अवरोधक, यह कहेगा कि नोड 1 पर प्रत्येक वोल्ट वृद्धि में नोड 1 में वर्तमान प्रवाह में 0.01 एम्पियर की कमी होगी और एक समान राशि से नोड 2 में वर्तमान प्रवाह में वृद्धि होगी। इसी तरह, नोड 2 पर प्रत्येक वोल्ट वृद्धि में प्रवाह 1 में वर्तमान प्रवाह 0.01 amps से बढ़ जाएगा और एक समान राशि से नोड 2 में वर्तमान प्रवाह में कमी होगी।

नोड 1 और 5 को जोड़ने वाली 10 वोल्ट की आपूर्ति के साथ एक सर्किट पर विचार करें, और नोड 1 और 2, 2 और 3, 2 और 4, और 3 को जोड़ने वाले 100 ओम प्रतिरोधों और 4. मान लें कि आगे नोड 1 पर ग्राउंड आइकन है। इस प्रकार:

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

दो "वोल्टेज स्रोत" होंगे: ग्राउंड लीड और 10 वोल्ट की आपूर्ति (जिसे क्रमशः समीकरण / चर 5 और 6 के रूप में माना जाता है)। इस प्रकार समीकरण होंगे:

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

समीकरण की इस प्रणाली को एक NxN मैट्रिक्स और एक N आइटम सरणी के रूप में दर्शाया जा सकता है। प्रत्येक समीकरण मैट्रिक्स में एक पंक्ति द्वारा दर्शाया जाता है, प्रत्येक पंक्ति के मूल्यों के साथ प्रत्येक चर के गुणांक का प्रतिनिधित्व करता है। प्रत्येक समीकरण के दाईं ओर के हिस्से को अलग-अलग सरणी में संग्रहीत किया जाता है। समीकरणों को हल करने से पहले, प्रत्येक को प्रत्येक नोड में बहने वाली शुद्ध धारा (इस मामले में शून्य), और वोल्टेज स्रोतों से जुड़े नोड्स के जोड़े के बीच वोल्टेज का अंतर पता चल जाएगा। समीकरणों को हल करने से प्रत्येक नोड पर वोल्टेज निकलेगा और प्रत्येक वोल्टेज स्रोत के माध्यम से प्रवाह होगा।

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

ट्रांजिस्टर जैसे अधिक जटिल सर्किट तत्वों को वोल्टेज स्रोतों, वर्तमान स्रोतों और प्रतिरोधों के संयोजन के रूप में माना जाता है। सरल सर्किट तत्वों के विपरीत, जो सिमुलेशन टाइम स्टेप के अनुसार एक बार सब कुछ संसाधित होने देते हैं, ट्रांजिस्टर जैसे तत्व अपने प्रभावी प्रतिरोध आदि की गणना करते हैं, जो वे देख रहे वोल्टेज और धाराओं पर आधारित होते हैं, सभी परिणामी समीकरणों का मूल्यांकन करते हैं, और उनके प्रतिरोध के आधार पर पुनर्मूल्यांकन करते हैं। नए वोल्टेज और धाराएँ, समीकरणों के पुनर्मूल्यांकन, आदि को एक संतुलन तक पहुँचने के प्रयास में जहाँ उनका प्रभावी प्रतिरोध वोल्टेज के लिए होना चाहिए और वर्तमान में ट्रांजिस्टर को देख रहा है।

फालस्टेड सिम्युलेटर मध्यम आकार के सर्किट के लिए शालीनता से तेज हो सकता है जो पूरी तरह से "रैखिक" तत्वों से मिलकर बनता है। समीकरणों की एक प्रणाली को बार-बार हल करने का समय बहुत ही उचित है यदि केवल एक चीज जो परिवर्तन सही पक्ष गुणांक है। यदि बाईं ओर परिवर्तन होता है (जैसे कि एक ट्रांजिस्टर का प्रभावी प्रतिरोध ऊपर या नीचे चला जाता है) तो समय बहुत धीमा हो जाता है क्योंकि सिस्टम को समीकरणों को "रिफैक्टर" करना पड़ता है। अनुकारक करने के लिए सिमुलेशन चरण के अनुसार कई बार समीकरण (ट्रांजिस्टर के साथ आवश्यक हो सकता है) चीजों को अभी तक धीमा कर देता है।

सब कुछ के लिए एक बड़े मैट्रिक्स का उपयोग करना बड़े सिमुलेशन के लिए एक अच्छा दृष्टिकोण नहीं है; भले ही मैट्रिक्स काफी विरल होगा, यह नोड्स और वोल्टेज स्रोतों की संख्या के वर्ग के लिए आनुपातिक स्थान लेगा। प्रत्येक सिमुलेशन चरण पर मैट्रिक्स को हल करने के लिए आवश्यक समय मैट्रिक्स के आकार के वर्ग के लिए आनुपातिक होगा यदि रिफैक्टरिंग की आवश्यकता नहीं है, या फिर मैट्रिक्स के आकार के घन के लिए। फिर भी, दृष्टिकोण में एक निश्चित लालित्य होता है जब यह सर्किट और रैखिक समीकरणों की प्रणाली के बीच संबंध दिखाने की बात आती है।


अधिकांश स्पाइस-टाइप सिमुलेटर इस प्रकार के एल्गोरिदम का भी उपयोग करते हैं। यहाँ मसाला ecircuitcenter.com/SpiceTopics/Overview/Overview.htm के
user6972

1
FYI करें - KLU सर्किट सिमुलेटर में उपयोग किया जाने वाला सामान्य एल्गोरिदम है। KLU क्लार्क केंट एलयू के लिए खड़ा है, क्योंकि यह गिल्बर्ट-पीयर्ल्स एल्गोरिथ्म पर आधारित है, एक गैर-सुपरनॉडल एल्गोरिथ्म, जो सुपरनॉल, एक सुपरनॉडल एल्गोरिथ्म का पूर्ववर्ती है। KLU एक विरल उच्च प्रदर्शन रैखिक सॉल्वर है जो हाइब्रिड ऑर्डरिंग मैकेनिज्म और एलिगेंट फैक्टराइजेशन को हल करता है और एल्गोरिदम को हल करता है।
user6972

उदाहरण के लिए, यह समझना महत्वपूर्ण है कि कई ट्रांजिस्टर मॉडल, BSIM या EKV हैं। मूल रूप से ये मॉडल सभी भौतिकी को ध्यान में रखते हैं, एक बिंदु से, एक एकल ट्रांजिस्टर के संचालन में शामिल हैं और उनकी विद्युत विशेषताओं पर प्रभाव। वोल्टेज स्रोतों, वर्तमान स्रोतों और प्रतिरोधों के संयोजन के रूप में प्रतिनिधित्व करने की तुलना में इसमें बहुत कुछ है। यदि आप एक अलग मॉडल का चयन करना चाहते हैं तो आप LEVEL पैरामीटर का उपयोग कर सकते हैं। जैकब बेकर का यह ट्यूटोरियल एक अच्छी शुरुआत है। आशा करता हूँ की ये काम करेगा।

11

लाइववायर क्षमता के विभिन्न स्तरों के कई सर्किट सिमुलेटरों में से एक है।

उदाहरण के लिए, फालस्टेड सर्किट सिमुलेटर लाइवविअर के समान क्षमता स्तर का लगता है - और उस लिंक पर स्रोत कोड की पेशकश की जाती है। यह एक अच्छी शुरुआत होनी चाहिए।

अधिक परिष्कृत सर्किट सिमुलेशन के लिए, कई उपकरण यूसी बर्कले द्वारा स्पाइस को वापस अपनी जड़ों का पता लगाते हैं । SPICE स्रोत कोड BSD लाइसेंस के तहत UCB के अनुरोध पर उपलब्ध है।

निर्माता-विशिष्ट स्पाइस संस्करण आम तौर पर अपने स्वयं के उत्पादों के बहुत विस्तृत सेमीकंडक्टर सिमुलेशन मॉडल को अपने सिमुलेटर में एकीकृत करते हैं। उदाहरण के लिए, रैखिक टेक्नोलॉजीज से LTSpice IV या टेक्सास इंस्ट्रूमेंट्स से टीना-टीआई । नीचे, यह सब आमतौर पर मसाला है।

स्पाइस के बारे में विकीपीडिया पेज से उद्धरण:

सर्किट सिमुलेशन कार्यक्रम, जिनमें से स्पाइस और डेरिवेटिव सबसे प्रमुख हैं, सर्किट तत्वों (ट्रांजिस्टर, प्रतिरोधों, कैपेसिटर, आदि) और उनके कनेक्शन का वर्णन करते हुए एक टेक्स्ट नेटलिस्ट लेते हैं, और इस विवरण को हल किए जाने वाले समीकरणों में अनुवाद करते हैं। उत्पादित सामान्य समीकरण गैर-रेखीय अंतर बीजीय समीकरण हैं जो अंतर्निहित एकीकरण विधियों, न्यूटन की विधि और विरल मैट्रिक्स तकनीकों का उपयोग करके हल किए जाते हैं।

परिष्कार के एक उच्च स्तर पर, कई व्यावसायिक उत्पाद जैसे प्रोटीअस वर्चुअल सिस्टम मॉडलिंग , प्रोटीज डिज़ाइन सूट का हिस्सा, मिश्रित-मोड स्पाइस सर्किट सिमुलेशन के लिए मालिकाना संवर्द्धन का उपयोग करते हैं - ये उपकरण एनालॉग सर्किट व्यवहार और डिजिटल माइक्रोकंट्रोलर कोड दोनों का अनुकरण कर सकते हैं, उन दोनों के बीच बातचीत के साथ पूरी तरह से मॉडलिंग की।

बहुत अधिक सीमित और सीमित स्तर पर, कुछ योजनाबद्ध संपादक, जैसे कि सर्किट लैब उपकरण इस साइट में एकीकृत होते हैं, सिमुलेशन क्षमताओं की एक छोटी श्रृंखला प्रदान करते हैं। हालांकि यह सब व्यावहारिक गैर-तुच्छ इलेक्ट्रॉनिक डिजाइन में उपयोगी नहीं हो सकता है, उनकी क्षमताओं और कार्यान्वयन का अध्ययन एक सॉफ्टवेयर डेवलपर को उपयोगकर्ताओं के लिए अच्छी तरह से काम करता है, और क्या नहीं करता है।


5

तीन मुख्य विश्लेषण हैं जो SPICE जैसे सर्किट सिमुलेटर द्वारा किए जाते हैं:

  • डीसी ऑपरेटिंग बिंदु
  • एसी विश्लेषण
  • क्षणिक विश्लेषण

डीसी ऑपरेटिंग बिंदु एक रेखीय सर्किट के लिए विश्लेषण (डीसी स्रोतों, रैखिक प्रतिरोधों से बनाई है, और नियंत्रित स्रोतों रैखिक) को संशोधित किया नोडल विश्लेषण (MNA) का उपयोग किया जाता है। मेष विश्लेषण भी इस्तेमाल किया जा सकता है, लेकिन नोडल विश्लेषण के लिए समीकरण स्थापित करना बहुत आसान है।

नॉनलाइनियर सर्किट के लिए (जिसमें ट्रांजिस्टर जैसे उपकरण शामिल हैं, जिन्हें गैर-नियन्त्रित स्रोतों के रूप में एस्सेन्टिअली मॉडल किया जा सकता है), कुछ अतिरिक्त ट्रिक्स का उपयोग करना होगा। एक वैचारिक रूप से सरल तरीका कई समीकरणों के लिए न्यूटन की विधि के विस्तार का उपयोग करना है।

न्यूटन की विधि में समाधान का अनुमान लगाना शामिल है, फिर सर्किट का एक रैखिक मॉडल बनाना जो केवल अनुमान लगाए गए समाधान के पास "सटीक" है। लाइनराइज्ड सर्किट के समाधान का उपयोग समाधान के बारे में एक नए अनुमान के रूप में किया जाता है, और प्रक्रिया को पुनरावृत्त किया जाता है, जब तक कि नॉनलाइनर सर्किट के लिए (उम्मीद) सही समाधान पर "अभिसरण" न हो जाए। वास्तविक दुनिया में, अधिक जटिल नॉनलाइनियर सॉल्वर्स का उपयोग अभिसरण विफलता के कारण समाधान को अधिक तेज़ी से और कम त्रुटियों के साथ करने में सक्षम होता है।

एसी विश्लेषण पहले एक डीसी विश्लेषण कर एक ऑपरेटिंग बिंदु को खोजने के लिए किया जाता है। फिर आप ऑपरेटिंग बिंदु के आसपास छोटे गड़बड़ी के प्रभाव का अध्ययन करते हैं। "छोटा" का अर्थ है, परिभाषा के अनुसार, इतना छोटा कि गैर-प्रभाव महत्वपूर्ण नहीं हैं। इसका मतलब है कि सर्किट तत्व ऑपरेटिंग बिंदु के आधार पर रैखिक समतुल्य तत्वों में बदल जाते हैं। तब एमएनए का उपयोग किया जा सकता है (सर्किट में एसी स्रोतों की वजह से गड़बड़ी के प्रभाव को हल करने के लिए ऊर्जा-भंडारण तत्वों के प्रतिबाधा का प्रतिनिधित्व करने वाली जटिल संख्या के साथ)।

क्षणिक विश्लेषण किया जाता है, ओलिन टिप्पणी में कहते हैं की तरह है, पर विचार कैसे सर्किट चर समय में बहुत छोटे कदम के साथ विकसित द्वारा। हर बार चरण के दौरान सर्किट को परिचालित किया जाता है, यह ऑपरेटिंग बिंदु है, ताकि समीकरण सेट करने के लिए MNA का उपयोग किया जा सके। समय के साथ व्यवहार को हल करने के लिए एक सरल विधि यूलर की विधि है । हालांकि फिर से अभ्यास में अधिक जटिल तरीकों का उपयोग छोटी त्रुटियों के साथ बड़े टाइमस्टेप्स का उपयोग करने की अनुमति देने के लिए किया जाता है।

आप देख सकते हैं कि इन विधियों में एक सामान्य धागा सर्किट व्यवहार के लिए एक रैखिक सन्निकटन बना रहा है और एमएनए के साथ इसे हल कर रहा है जब तक कि आप नॉनलाइनियर सर्किट व्यवहार का समाधान नहीं ढूंढते।

ये तीन विश्लेषण 1970 के दशक के बाद से स्पाइस जैसी सिमुलेटर द्वारा किए गए मुख्य हैं। नए सिमुलेटरों में हार्मोनिक बैलेंस (एसीएलिसिस का एक विस्तार जो नॉनलाइनर तत्वों से मिक्सिंग इफेक्ट्स को समायोजित करने के लिए), या इलेक्ट्रोमैग्नेटिक्स सिमुलेशन जैसे ट्रांसमिशन लाइन प्रभाव का अनुकरण करने के लिए अतिरिक्त क्षमताएं हैं। लेकिन DC, AC, और क्षणिक सिमुलेशन पहले तीन हैं जिन्हें आपको SPICE जैसे सिम्युलेटर का उपयोग करते समय समझना चाहिए।


मैंने इस बारे में बात की कि पहले के उत्तर में एमएनए समीकरणों को कैसे सेट किया जाए: Electronics.stackexchange.com/questions/19198/…
फोटॉन

2
हमें यह भी जोड़ना चाहिए कि डिजिटल सर्किट सिमुलेशन पूरी तरह से अलग तरीकों का उपयोग करते हैं; और जो एनालॉग-डिजिटल को-सिमुलेशन को अपनी स्वयं की संपूर्ण समस्या में बनाता है।
फोटॉन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.