Simulations von Widerstandsnetzwerken

Hallo,

ich würde gerne als Übung ein Programm zur Simulation von Widerstandsnetzwerken erstellen. Also jezt keine Widerstandsnetzwerke, die sich einfach durch R=R1+R2 bzw. R=(R1^-1+R2^-1)^-1 auflösen lassen, sondern kompliziertere.

Zum Beispiel ein "würfelförmiges" Widerstandsnetzwerk. In der (einfachen) Aufgabenstellung sind alle Widerstände gleich groß. Damit hat man an den drei "Mittelknoten" selbes Potential und kann diese mit gedachten Drähten verbinden. Dann ist die Aufgabe mittels der bekannten Gleichungen lösbar.

Aber was, wenn ich keine gleich großen Widerstände verwende? Sagen wir, die Widerstände sind jeweils von 1 bis 8 Ohm (wo die jetzt sind, soll egal sein). An zwei sich gegenüberliegenden Knoten lege ich ein Potential von 10 bzw. 0 Volt an. Wo fließt welcher Strom? An welchem Knoten herrscht welches Potential? Um die Aufgabe weiter zu verkomplizieren sind komplexere Figuren denkbar und drei oder vier Anschlüsse mit definiertem Potential.

Ich hätte jetzt als Ansatz die dividierten Differenzen genommen, weil mir die finiten Elemente etwas überdimensioniert erscheinen für das Problem. Ist das eine gute Idee? Gibt es bessere Ansätze?

Und, ja, ich weiß, dass spice das auch kann... aber es geht mir darum, anhand einer praktischen Aufgabe numerische Lösungsverfahren in diskreten Systemen zu üben.

Gruß, Johannes

Reply to
Johannes Bauer
Loading thread data ...

"Johannes Bauer" schrieb im Newsbeitrag news: snipped-for-privacy@snifftop.sniffdomain...

Na dann programmiere alle Verfahren, damit du was lernst.

-- Manfred Winterhoff, reply-to invalid, use mawin at despammed.com homepage:

formatting link
de.sci.electronics FAQ:
formatting link
Read 'Art of Electronics' Horowitz/Hill before you ask. Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.

Reply to
MaWin

Hallo Johannes,

Da würde ich so rangehen: Das Potential an allen Knoten wird zunächst als 0 angenommen, ausgenommen die Knoten wo feste Spannungen anliegen. Jetzt berechnest du für jeden Knoten das Potential, das sich aus den beteiligten Widerständen und den Nachbar-Potentialen ergibt. Dieser Prozess wird iterativ solange fortsetzt, bis sich im Rahmen der gewünschten Genauigkeit nichts mehr ändert.

Gruss Michael

Reply to
Michael Koch

Für universelles Verfahren würde man sich an das dort verwendete Verfahren ( Gauß-Seidel ? ) halten. Spice macht glaube ich DC- und AC-Analyse ohnehin getrennt.

Reine grosse Widerstandsnetzwerke sind eher selten, man würde sie ja reduzieren, wenn sie redundante Bauteile enthalten. Das Problem der reinen Analyse ist ( ausser für Spice ) auch untypisch: meist hat man prinzipiell geeignete Verschaltung bereits gefunden würde anhand Vorgaben jetzt gerne die konkreten Widerstände bestimmen. Dazu kann Synthese für brute force Suche mit Bewertung der Lösung nützlich sein. Da man ja bei Widerständen als Bauteil auf ca. auf E12-Reihe festgelegt ist und der Suchraum dadurch beschränkt ist solche Suche oft gangbar. Es ist dann aber trotzdem so, daß man das Programm anhand des konkreten Netzwerks von Hand programmiert damit die Suchzeit im Rahmen bleibt. Bei realen Schaltungen gilt ohnehin: nur was halbwegs simpel ist funktioniert. Alles andere scheitert an Bauteilstreuung, zu hohen Kosten wegen der Zahl der Bauteile, mangelnder Fertigbarkeit weil nicht testbar usw.

MfG JRD

Reply to
Rafael Deliano

Hallo Johannes,

Johannes Bauer schrieb: [...]

,

Stichw=F6rter: Kirchhoffsche Gesetze, Knotenspannungsverfahren, Maschenstromverfahren, =DCberlagerungssatz.

ciao Marcus

Reply to
Marcus Woletz

Ja, an Gauss-Seidel oder Jacobi-Verfahren hatte ich auch schon gedacht; allerdings war in ein Paar Tests das Konvergenzverhalten gerade von Gauss-Seidel extrem schlecht. Meistens divergiert das nach +-Inf oder NaN. Ärgerlich.

[...]

Ja, das stimmt... das Problem ist natürlich eher akademischer Natur. Ich will halt nur ein "halbwegs" praktisches Problem lösen.

Viele Grüße, Johannes

Reply to
Johannes Bauer

Hrm... naja... es wäre schön, wenn ich halt die Verfahren weglassen könnte, die ohnehin Müll sind. Deswegen frage ich ja nach Erfahrungswerten.

Gruß, Johannes

Reply to
Johannes Bauer

Okay, ich werd's mir mal genauer anschauen, vielen Dank. Den Überlagerungssatz kenne ich noch nicht, mal sehen.

Gruß, Johannes

Reply to
Johannes Bauer

Werde ich mal ausprobieren, mal sehen, was dabei rauskommt :-)

Gruß, Johannes

Reply to
Johannes Bauer

Hmm, wieso konvergieren Relaxationsverfahren immer? Gauss-Seidel, Jacobi, Richardson und SOR sind alles Relaxationsverfahren, aber konvergieren nicht immer.

Gruß, Johannes

Reply to
Johannes Bauer

Relaxationsverfahren.

Nachteil: Konvergiert langsam. Vorteil: Konvergiert immer.

Bis einige dutzend Knoten funktioniert das. Ich habe mal versucht, Aequipotenziallinien in Widerstandsschichten damit zu berechnen. Schon bei 32x32 Stuetzstellen wartet man ewig.

Grusz, Rainer

Reply to
Rainer Ziegenbein

Du brauchst hier nur den Gesamtstrom für die Impedanz zu bestimmen. Ich würde die Knotenpotentialanalyse vorschlagen, damit berechnest Du die Knotenspannungen der n-1 Knoten gegen Bezugsknoten. Damit kannst Du die Zweigströme anschließend sehr leicht berechnen. Im Prinzip wird es in SPICE so gemacht.

Das Aufstellen des Gleichungssystems ist in Deinem Fall sehr leicht, Berechnungen sind nicht erforderlich, nur das Füllen einer quadratischen symmetrischen Matrix. Bei reziproken Netzwerken wie hier ist das ein sehr einfaches Schema.

Das Berechnen des linearen Gleichungssystems allerdings mußt Du sicher dem Rechner überlassen. Ich schlage Gauß-Jordan vor, hat immer funktioniert. Es gibt unzählige Programme, auch solche welche noch bei schlechter Konditionierung funktionieren und Dir die Konditionierung angeben. Ich wüßte aber nicht, warum ein Widerstandsnetzwerk schlecht konditioniert sein sollte.

Schlechte Konditionierung erkennt man daran, daß die Determinante der Koeffizientenmatrix sehr klein wird, im Grenzfall 0. In diesem Fall ist das Gleichungssystem nicht lösbar. Unter welchen Bedingungen das auftreten könnte, kann ich im Moment leider nicht sagen.

Schlechte Konditionierung trat bei mir typischerweise in der Spline-Interpolation bzw. -approximation auf, aber nicht in der Netzwerkanalyse. Aber da kommt man schon auf Themen für de.sci.mathematik.

mfg. Winfried

Reply to
Winfried Salomon

Okay das werde ich mir auch ansehen, dankesehr!

Gauß-Jordan kenne ich nicht; ich hätte das Lösen des LGS durch eine QR-Zerlegung, also Pivotisierung durch Givens-Rotationen, gelöst. Da wäre der Vorteil, dass ich das schon implementiert hätte, und es ist auch numerisch recht stabil.

Ja, bei ersten Versuchen mit hochgradigen Splines bei mir auch... da ist die Vandermondematrix einfach nicht wirklich optimal konditioniert ;-)

Vielen Dank für deine Tipps, Gruß, Johannes

Reply to
Johannes Bauer

Hallo Johannes,

Johannes Bauer wrote:

was mir noch einfällt, die einzige Hürde bei der Knotenpotentialanalyse ist die Umwandlung aller Spannungs- in Stromquellen, das ist nicht immer möglich. Deshalb wird in SPICE eine modifizierte Form dieser Analyse benutzt. Bei Dir wird dieses Problem aber sicher nicht auftreten.

Müßte eigentlich in der Literatur stehen. Du hast vermutlich englischsprachige benutzt, das kenne ich wiederum nicht. Wenn Du es selbst programmiert hast, umso besser, dann weißt Du ja worauf es ankommt und hast was gelernt. Wo jetzt die Unterschiede der einzelnen Verfahren sind, besonders bei den iterativen, weiß ich jetzt ohne Nachlesen nicht.

Dazu habe ich Literatur, es gibt optimierte Verfahren je nach Eigenschaften der Matrix, dazu müßte man tief in die lineare Algebra einsteigen, um das genau zu verstehen.

mfg. Winfried

Reply to
Winfried Salomon

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.