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