Circuit Simulators ทำงานอย่างไร


31

เมื่อเร็ว ๆ นี้ฉันมีโอกาสได้เล่นกับLiveWireซึ่งเป็นเครื่องจำลองวงจรและเริ่มสงสัยว่าพวกเขาคำนวณแรงดันไฟฟ้าในแต่ละองค์ประกอบและกระแสไฟฟ้าที่ผ่านแต่ละแทร็กอย่างไร

ฉันได้รับการสอนทักษะการวิเคราะห์วงจรขั้นพื้นฐานเท่านั้น (เช่นการวิเคราะห์แบบตาข่ายและการวิเคราะห์แบบปม) จนถึงตอนนี้และฉันไม่แน่ใจว่าพวกเขาจะเป็นคนสามัญพอที่จะนำไปใช้ใน 'เหมาะกับทุกคน' ภายในเครื่องจำลองวงจร

ในฐานะโปรแกรมเมอร์คนหนึ่งฉันรู้สึกทึ่งและฉันชอบที่จะเห็นเทคนิคที่ใช้กันทั่วไปเมื่อสร้างวงจรจำลองเช่นนี้

คำขอโทษของฉันหากนี่ไม่ได้อยู่ที่นี่มันเป็นตัวเลือกระหว่างที่นี่และ StackOverflow และฉันรู้สึกว่าแม้ว่าจะเป็นคำถามที่มุ่งเน้นการพัฒนาซอฟต์แวร์ แต่คำถามก็ใช้ได้กับไซต์นี้มากกว่าและเป็นฐานผู้ใช้


เคล็ดลับหลักคือชิ้นเล็ก ๆ น้อย ๆ เวลา ฟังก์ชั่นที่ซับซ้อนของเวลาจึงได้รับการจัดการสมการความแตกต่างมากมายพร้อมกับแบ่งเวลาขนาดเล็ก ความซับซ้อนที่น่ารังเกียจมักลดลงอย่างมากหากสามารถแสดงเป็นสมการเชิงอนุพันธ์ซึ่งกลายเป็นสมการความแตกต่างในการจำลองแบบดิจิตอล
Olin Lathrop

คำตอบ:


14

ฉันได้ตรวจสอบรหัสของเครื่องจำลอง Falstad โดยละเอียดแล้ว สำหรับวงจรที่ประกอบด้วยส่วนประกอบเชิงเส้นเท่านั้นเช่นตัวต้านทานสวิตช์และแหล่งจ่ายแรงดันไฟฟ้า (สิ่งต่าง ๆ เช่นเอาท์พุทลอจิกเกทถูกพิจารณาว่าเป็นแหล่งแรงดันไฟฟ้าที่เชื่อมต่อกับภาคพื้นดินสำหรับวัตถุประสงค์ในการจำลอง) หรือ wire (เช่นเดียวกัน) เป็นการกำหนดสมการเชิงเส้นและตัวแปรเช่นจำนวนของสมการและจำนวนของตัวแปรจะเท่ากันเสมอ สำหรับโหนดวงจรตัวแปรคือแรงดันไฟฟ้าของโหนดและสมการคำนวณกระแสรวมที่ไหลผ่านนั้นเท่ากับกระแสรวมทั้งหมดที่ถูกฉีดเข้าไปโดยแหล่งกระแสใด ๆ สำหรับแหล่งจ่ายแรงดันไฟฟ้าหรือสายไฟ (สายที่ถูกจัดการเป็นแหล่งจ่ายแรงดันที่ความต่างศักย์เป็นศูนย์)

สิ่งต่าง ๆ เช่นแหล่งที่มาและตัวต้านทานปัจจุบันไม่เกี่ยวข้องกับตัวต้านทานหรือตัวแปร แต่แหล่งที่มาในปัจจุบันจะเพิ่มกระแสรวมที่จำเป็นสำหรับหนึ่งโหนดของวงจร (จำได้ว่าแต่ละโหนดของวงจรมีสมการซึ่งประเมินผลรวมของกระแสที่ไหลเข้าและออก) และลดลงเพื่อความอื่น ตัวต้านทานนั้นมีเล่ห์เหลี่ยมเล็กน้อย: สำหรับสมการของแต่ละจุดปลายตัวต้านทานจะเพิ่มเงื่อนไขสำหรับแรงดันโหนดของแต่ละจุดปลาย

ยกตัวอย่างเช่นตัวต้านทาน 100 โอห์มที่เชื่อมต่อโหนด 1 และ 2 จะกล่าวว่าโวลต์ที่เพิ่มขึ้นแต่ละโหนด 1 จะลดกระแสที่ไหลเข้ามาในโหนด 1 โดย 0.01 แอมป์และเพิ่มกระแสที่ไหลเข้าไปในโหนด 2 ด้วยจำนวนที่เหมือนกัน เช่นเดียวกันแต่ละโวลต์ที่เพิ่มขึ้นบนโหนด 2 จะเพิ่มกระแสที่ไหลเข้าไปในโหนด 1 โดย 0.01 แอมป์และลดกระแสที่ไหลเข้าสู่โหนด 2 โดยจำนวนที่คล้ายกัน

พิจารณาวงจรที่มี 10 โวลต์ที่เชื่อมต่อโหนด 1 และ 5 และ 100 โอห์มตัวต้านทานเชื่อมต่อโหนด 1 และ 2, 2 และ 3, 2 และ 4, และ 3 และ 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 แต่ละสมการจะถูกแทนด้วยแถวในเมทริกซ์โดยมีค่าในแต่ละแถวแสดงถึงค่าสัมประสิทธิ์ของแต่ละตัวแปร ด้านขวาของแต่ละสมการจะถูกเก็บไว้ในอาเรย์ที่แยกต่างหาก ก่อนที่จะแก้สมการหนึ่งจะรู้ว่ากระแสสุทธิไหลเข้าสู่แต่ละโหนด (ศูนย์ในกรณีนี้) และความแตกต่างของแรงดันไฟฟ้าระหว่างคู่ของโหนดที่เชื่อมต่อโดยแหล่งกำเนิดแรงดัน การแก้สมการจะให้แรงดันที่แต่ละโหนดและกระแสไหลผ่านแต่ละแหล่งกำเนิดแรงดัน

หากวงจรมีตัวเก็บประจุตัวเก็บประจุแต่ละตัวจะถือว่าเป็นแหล่งจ่ายแรงดันไฟฟ้าแบบอนุกรมที่มีตัวต้านทานค่าต่ำ หลังจากการจำลองแต่ละขั้นตอนแหล่งจ่ายแรงดันไฟฟ้าจะถูกปรับตามปริมาณกระแสที่ไหลผ่าน ตัวเหนี่ยวนำจะถูกพิจารณาว่าเป็นตัวต้านทานที่มีมูลค่าสูงซึ่งป้อนกระแสเป็นหนึ่งและนำออกไปอีกตัวหนึ่ง (จำนวนกระแสจะถูกปรับตามแรงดันข้ามความต้านทาน) สำหรับทั้งตัวเก็บประจุและตัวเหนี่ยวนำค่าของความต้านทานจะถูกควบคุมโดยระยะเวลาที่แสดงโดยขั้นตอนการจำลอง

องค์ประกอบวงจรที่ซับซ้อนมากขึ้นเช่นทรานซิสเตอร์ถือได้ว่าเป็นการรวมกันของแหล่งกำเนิดแรงดันแหล่งจ่ายกระแสและตัวต้านทาน ไม่เหมือนกับองค์ประกอบวงจรที่เรียบง่ายซึ่งให้ทุกอย่างได้รับการประมวลผลครั้งเดียวตามขั้นตอนการจำลององค์ประกอบเช่นทรานซิสเตอร์คำนวณความต้านทานที่มีประสิทธิภาพของพวกเขา ฯลฯ ตามแรงดันและกระแสที่พวกเขาเห็นประเมินผลสมการที่เกิดขึ้นทั้งหมด แรงดันและกระแสใหม่, ประเมินสมการใหม่อีกครั้งในความพยายามที่จะไปให้ถึงจุดสมดุลที่ความต้านทานที่มีประสิทธิภาพเป็นสิ่งที่ควรจะเป็นสำหรับแรงดันและกระแสที่ transitor มองเห็น

เครื่องจำลอง Falstad สามารถทำการถอดรหัสได้อย่างรวดเร็วสำหรับวงจรขนาดกลางซึ่งประกอบด้วยองค์ประกอบ "เชิงเส้น" ทั้งหมด เวลาในการแก้ระบบสมการซ้ำ ๆ นั้นค่อนข้างสมเหตุสมผลถ้าสิ่งเดียวที่เปลี่ยนแปลงคือค่าสัมประสิทธิ์ด้านขวา เวลาช้าลงมากหากด้านซ้ายเปลี่ยนไป (เช่นเนื่องจากความต้านทานที่มีประสิทธิภาพของทรานซิสเตอร์เพิ่มขึ้นหรือลดลง) เนื่องจากระบบต้อง "ปรับโครงสร้าง" สมการใหม่ ต้องทำการปรับโครงสร้างสมการซ้ำหลายครั้งต่อขั้นตอนการจำลอง (อาจจำเป็นกับทรานซิสเตอร์) ทำให้สิ่งต่าง ๆ ช้าลง

การใช้หนึ่งเมทริกซ์ขนาดใหญ่สำหรับทุกสิ่งไม่ใช่วิธีที่ดีสำหรับการจำลองขนาดใหญ่ แม้ว่าเมทริกซ์จะกระจัดกระจายพอสมควร แต่จะใช้พื้นที่เป็นสัดส่วนกับกำลังสองของจำนวนโหนดบวกกับแหล่งกำเนิดแรงดันไฟฟ้า เวลาที่ใช้ในการแก้ปัญหาเมทริกซ์ในแต่ละขั้นตอนการจำลองจะเป็นสัดส่วนกับกำลังสองของขนาดเมทริกซ์หากไม่จำเป็นต้องทำการปรับสภาพใหม่หรือกับคิวบ์ขนาดเมทริกซ์หากจำเป็นต้องทำการปรับสภาพใหม่ อย่างไรก็ตามวิธีการมีความสง่างามบางอย่างเมื่อมันมาถึงการแสดงความสัมพันธ์ระหว่างวงจรและระบบของสมการเชิงเส้น


ตัวจำลองประเภท SPICE ส่วนใหญ่ใช้อัลกอริทึมประเภทนี้เช่นกัน นี่คือภาพรวมของเครื่องเทศecircuitcenter.com/SpiceTopics/Overview/Overview.htm
6972

1
FYI - KLU เป็นอัลกอริทึมทั่วไปที่ใช้ในเครื่องจำลองวงจร KLU ย่อมาจาก Clark Kent LU เนื่องจากเป็นไปตามอัลกอริทึมของ Gilbert-Peierls ซึ่งเป็นอัลกอริทึมที่ไม่ใช่ซุปเปอร์โนดอนซึ่งเป็นบรรพบุรุษของ SuperLU ซึ่งเป็นอัลกอริธึมเหนือดาว KLU เป็นตัวแก้ปัญหาเชิงเส้นที่มีประสิทธิภาพสูงซึ่งใช้กลไกการสั่งซื้อแบบไฮบริดและการแยกตัวประกอบที่สง่างามและการแก้อัลกอริธึม
user6972

สิ่งสำคัญคือให้สังเกตว่ามีหลายรุ่นทรานซิสเตอร์เช่น BSIM หรือ EKV โดยทั่วไปโมเดลเหล่านี้จะพิจารณาฟิสิกส์ทั้งหมดจากมุมมองที่เกี่ยวข้องกับการทำงานของทรานซิสเตอร์ตัวเดียวและผลกระทบที่มีต่อคุณสมบัติทางไฟฟ้า มันมีอะไรมากกว่านั้นเพียงแค่เป็นการรวมกันของแหล่งกำเนิดแรงดันแหล่งกระแสและตัวต้านทาน หากคุณต้องการเลือกรุ่นอื่นคุณสามารถใช้พารามิเตอร์ระดับ บทแนะนำจาก Jacob Baker นี่เป็นการเริ่มต้นที่ดี หวังว่ามันจะช่วย

11

LiveWire เป็นหนึ่งในตัวจำลองวงจรจำนวนมากซึ่งมีความสามารถในระดับที่แตกต่างกัน

ตัวอย่างเช่นFalstad Circuit Simulatorดูเหมือนว่าจะมีระดับความสามารถใกล้เคียงกับ LiveWire และมีการเสนอซอร์สโค้ดที่ลิงค์นั้น นั่นควรเป็นการเริ่มต้นที่ดี

สำหรับการจำลองวงจรที่ซับซ้อนมากขึ้นเครื่องมือมากมายติดตามรากของพวกเขากลับไปSPICE โดย UC Berkley ซอร์สโค้ด SPICE มีให้บริการตามคำขอจาก UCB ภายใต้ใบอนุญาต BSD

โดยทั่วไปแล้ว SPICE รุ่นเฉพาะผู้ผลิตจะรวมแบบจำลองเซมิคอนดักเตอร์แบบละเอียดมากของผลิตภัณฑ์ของตนเองเข้ากับเครื่องจำลอง ตัวอย่างเช่นLTSpice IVจาก Linear Technologies หรือTINA-TIจาก Texas Instruments ภายใต้มันมักจะเป็นเครื่องเทศ

การอ้างอิงจากหน้า WikiPedia เกี่ยวกับ SPICE:

โปรแกรมการจำลองวงจรซึ่ง SPICE และตราสารอนุพันธ์มีความโดดเด่นที่สุดใช้รายการข้อความอธิบายส่วนประกอบของวงจร (ทรานซิสเตอร์ตัวต้านทานตัวเก็บประจุและอื่น ๆ ) และการเชื่อมต่อและแปลคำอธิบายนี้เป็นสมการที่ต้องแก้ไข สมการทั่วไปที่ผลิตคือสมการพีชคณิตเชิงอนุพันธ์ที่ไม่เชิงเส้นซึ่งแก้ไขได้โดยใช้วิธีการรวมโดยนัยวิธีของนิวตันและเทคนิคเมทริกซ์กระจัดกระจาย

ในระดับที่สูงขึ้นของความซับซ้อนผลิตภัณฑ์เชิงพาณิชย์หลายอย่างเช่นProteus Virtual System Modelingซึ่งเป็นส่วนหนึ่งของ Proteus Design Suite ใช้การปรับปรุงที่เป็นกรรมสิทธิ์สำหรับการจำลองวงจร SPICE แบบผสม - เครื่องมือเหล่านี้สามารถจำลองพฤติกรรมทั้งวงจรอนาล็อกและรหัสไมโครคอนโทรลเลอร์ดิจิตอล กับปฏิสัมพันธ์ระหว่างพวกเขาเป็นแบบอย่างอย่างเต็มที่

ในระดับที่ จำกัด และ จำกัด มากขึ้นตัวแก้ไขแผนผังบางตัวเช่นเครื่องมือ Circuit Lab ที่รวมอยู่ในไซต์นี้ให้ความสามารถในการจำลองที่หลากหลาย แม้ว่าสิ่งนี้อาจไม่ใช่สิ่งที่มีประโยชน์ในการออกแบบทางอิเล็กทรอนิกส์ที่ไม่น่าสนใจ แต่การศึกษาความสามารถและการใช้งานของพวกเขาจะช่วยให้นักพัฒนาซอฟต์แวร์เข้าใจถึงสิ่งที่ใช้งานได้ดีสำหรับผู้ใช้และสิ่งที่ไม่ดี


5

มีการวิเคราะห์หลักสามประการที่ดำเนินการโดยเครื่องจำลองวงจรคล้าย SPICE:

  • จุดปฏิบัติการ DC
  • การวิเคราะห์ AC
  • การวิเคราะห์ชั่วคราว

การวิเคราะห์จุดปฏิบัติการ DCสำหรับวงจรเชิงเส้น (เกิดขึ้นจากแหล่ง DC ตัวต้านทานเชิงเส้นและแหล่งควบคุมเชิงเส้น) จะทำโดยใช้การวิเคราะห์ปมดัดแปลง (MNA) สามารถใช้การวิเคราะห์แบบตาข่ายได้ แต่มันง่ายมากในการตั้งค่าสมการสำหรับการวิเคราะห์แบบปุ่ม

สำหรับวงจรไม่เชิงเส้น (ซึ่งรวมถึงอุปกรณ์เช่นทรานซิสเตอร์ซึ่งสามารถจำลองแบบเป็นแหล่งที่ควบคุมแบบไม่เชิงเส้น) ต้องใช้เทคนิคเพิ่มเติมบางอย่าง วิธีที่ง่ายในแนวคิดคือการใช้ส่วนขยายของวิธีการของนิวตันสำหรับหลายสมการ

วิธีการของนิวตันเกี่ยวข้องกับการคาดเดาวิธีแก้ปัญหาจากนั้นสร้างแบบจำลองเชิงเส้นของวงจรที่แม่นยำเท่านั้น "ใกล้" คำตอบที่เดาได้ การแก้ปัญหาของวงจรเชิงเส้นตรงนั้นใช้เป็นการคาดเดาใหม่เกี่ยวกับการแก้ปัญหาและกระบวนการดังกล่าวจะถูกทำซ้ำจนกว่าการวนซ้ำแบบต่อเนื่อง "มาบรรจบ" ในการแก้ปัญหาที่ถูกต้อง (หวังว่า) สำหรับวงจรไม่เชิงเส้น ในโลกแห่งความเป็นจริงมีการใช้ตัวแก้ปัญหาแบบไม่เชิงเส้นที่ซับซ้อนมากขึ้นเพื่อให้สามารถแก้ปัญหาได้เร็วขึ้นและมีข้อผิดพลาดน้อยลงเนื่องจากความล้มเหลวของการลู่เข้า

การวิเคราะห์ ACจะกระทำโดยทำการวิเคราะห์ DC ก่อนเพื่อหาจุดปฏิบัติการ จากนั้นคุณศึกษาผลกระทบของการก่อกวนเล็ก ๆ รอบ ๆ จุดปฏิบัติการ "เล็ก" หมายถึงโดยนิยามแล้วมีขนาดเล็กพอที่เอฟเฟกต์แบบไม่เชิงเส้นไม่สำคัญ นั่นหมายถึงองค์ประกอบของวงจรจะถูกเปลี่ยนเป็นองค์ประกอบเชิงเส้นตรงขึ้นอยู่กับจุดปฏิบัติการ จากนั้นสามารถใช้ MNA (ด้วยตัวเลขที่ซับซ้อนที่แสดงถึงความต้านทานขององค์ประกอบที่จัดเก็บพลังงาน) เพื่อแก้ไขผลกระทบของการรบกวนที่เกิดจากแหล่งกำเนิด AC ในวงจร

การวิเคราะห์แบบชั่วคราวนั้นเสร็จสิ้นอย่างที่แลงกล่าวไว้ในความคิดเห็นโดยพิจารณาว่าตัวแปรวงจรมีการพัฒนาไปอย่างไรในเวลาที่น้อยมาก อีกครั้งในแต่ละขั้นตอนวงจรจะถูกทำให้เป็นเส้นตรงรอบ ๆ จุดปฏิบัติการเพื่อให้ MNA สามารถใช้ในการตั้งค่าสมการได้ วิธีการที่ง่ายสำหรับการแก้ปัญหาพฤติกรรมในช่วงเวลาเป็นวิธีที่ออยเลอร์ อย่างไรก็ตามในทางปฏิบัติวิธีการที่ซับซ้อนกว่านั้นถูกใช้เพื่ออนุญาตให้ใช้การประทับเวลาขนาดใหญ่ที่มีข้อผิดพลาดน้อยกว่า

คุณสามารถเห็นได้ว่าเธรดที่พบบ่อยในวิธีการเหล่านี้กำลังทำการประมาณเชิงเส้นตรงกับพฤติกรรมของวงจรและการแก้ปัญหาด้วย MNA จนกว่าคุณจะพบวิธีแก้ปัญหาสำหรับพฤติกรรมของวงจรที่ไม่เชิงเส้น

การวิเคราะห์ทั้งสามนี้เป็นสิ่งสำคัญที่กระทำโดยเครื่องมือจำลองเสมือน SPICE มาตั้งแต่ปี 1970 เครื่องจำลองรุ่นใหม่เพิ่มความสามารถเพิ่มเติมเช่นสมดุลฮาร์มอนิก (ส่วนขยายของ AC anlaysis เพื่อรองรับเอฟเฟกต์การผสมจากองค์ประกอบที่ไม่ใช่เชิงเส้น) หรือการจำลองคลื่นแม่เหล็กไฟฟ้าเพื่อจำลองเอฟเฟกต์สายส่ง แต่การจำลอง DC, AC และ transient เป็นสามแบบแรกที่คุณควรเข้าใจเมื่อใช้ตัวจำลองแบบคล้ายเครื่องเทศ


ฉันพูดคุยเกี่ยวกับวิธีการตั้งค่าสมการ MNA ในคำตอบก่อนหน้านี้: electronics.stackexchange.com/questions/19198/…
The Photon

2
เราควรเพิ่มว่าการจำลองวงจรดิจิตอลใช้วิธีการที่แตกต่างกันโดยสิ้นเชิง และนั่นทำให้การจำลองแบบแอนะล็อกดิจิตอลเป็นปัญหาทั้งหมดของมันเอง
โฟตอน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.