Berechnung in einer elektrischen Mischschaltung



  • Ich würde die Schaltung(en) mit dem Maschenstromverfahren lösen wollen.



  • Ja nun, dann schau an, wie Du das generell (!!!) mathematisch machst, und setze das in C++ um. Und dann kommen die ersten C++-Probleme...

    "Ich würde gerne diesen und jenen Netzwerkalgo auf einen Graph ausführen"
    "Ich muss dieses Gleichungssystem lösen"
    usw. usf. ...

    C++ nimmt Dir nicht die Arbeit ab, ein Problem zu durchdringen und dessen Lösung algorithmisch zu formulieren...



  • Hallo jonny_1234,

    Willkommen im C++-Forum.

    jonny_1234 schrieb:

    Mir stellt sich nun die Frage, wie man an diese Aufgabe in C/C++ angeht.
    (Maschenstromverfahren, Knotenpunktregel, usw. sind bekannt)

    Schematische Ablauf (Dient nur zur Übersicht):

    1. Datei mit Informationen einlesen
    (Widerstände/Quellen mit Werten und wie diese zueinander liegen)

    2. Berechnung der einzelnen Werte
    (Ersatz-/Gesamtwiderstand; Stromstärke usw.)

    3. Berechnung in Datei speichern
    (Stromstärke, einzelne Spannungen usw.)

    jonny_1234 schrieb:

    Ich würde die Schaltung(en) mit dem Maschenstromverfahren lösen wollen.

    Ok - das ganze ist schon ganz schön anspruchsvoll. Zum Arbeiten mit Matrizen gibt es in C++ einige Bibliotheken, die Dich dabei unterstützen. Dazu gehören unter anderen boost.uBlas und Eigen und sicher sind noch ein paar andere zu empfehlen. Welche für Dein Problem am ehesten angemessen ist, vermag ich nicht zu beurteilen.

    Aber vielleicht fängst Du erst einmal ganz klein an. Mal angenommen, Du hast eine RC-Schaltung, wo parallel zum Kondensator noch ein zweiter Widerstand geschaltet ist.
    Welche Informationen bilden dann den Input. Wie wird was berechnet und was erwartest Du als Ergebnis? Jetzt mal ganz unabhängig von C++.

    Gruß
    Werner



  • Der Widerstand, der in Reihe im Kondensator liegt, begrenzt den Strom. (Vorausgesetzt, an dieser Kombination liegt an einer Spannung) An dem parallel Widerstand liegt dann U.

    Nur zur Information: Ich habe die (Allgemeine) Fachhochschulreife in Richtung Technik.



  • jonny_1234 schrieb:

    Der Widerstand, der in Reihe im Kondensator liegt, begrenzt den Strom. (Vorausgesetzt, an dieser Kombination liegt an einer Spannung) An dem parallel Widerstand liegt dann U.

    Nur zur Information: Ich habe die (Allgemeine) Fachhochschulreife in Richtung Technik.

    Was müsste denn in einer Datei stehen, die so eine Schaltung beschreibt? Du hast zwei Maschen und die müsste man doch irgendwie beschreiben - oder eine andere Eingabe, aus der sich wiederum die Maschen generieren lassen.

    Ja - an der Schaltung soll Spannung anliegen und die Spannung soll sich z.B. sprunghaft ändern - also ein klassisches PT1-Verhalten.



  • In der Datei wollte ich die Werte der einzelnen Beuelemente schreiben und wie diese zueinander liegen (z.B R1 parallel R2; U parallel R1)



  • jonny_1234 schrieb:

    In der Datei wollte ich die Werte der einzelnen Beuelemente schreiben und wie diese zueinander liegen (z.B R1 parallel R2; U parallel R1)

    .. schon klar, aber wie genau? - ganz konkret



  • Als Beispiel würde folgendes einbringen:

    R1=100;
    R2=100;
    U1=10;
    R1PLR2;
    U1RER1;
    

    R1 und R2 sind Widerstände (Werte in Ohm)
    U1 ist eine Spannung (wert in Volt)

    R1PLR2 -> R1 Parallel R2
    U1RER1 - > U1 und R1 sind in Reihe

    __________________________________________

    Durch das Auslesen der Datei soll das Programm "wissen" bzw selbstsändig die entsprechenden Werte ausrechnen (Spannungen, Ströme etc)

    Hat jemand vllt einige Tipps, Ansätze?



  • Hallo jonny_1234,

    jonny_1234 schrieb:

    Durch das Auslesen der Datei soll das Programm "wissen" bzw selbstsändig die entsprechenden Werte ausrechnen (Spannungen, Ströme etc)

    Hat jemand vllt einige Tipps, Ansätze?

    Durch das Auslesen der Datei "weiß" das Programm zunächst nur die Eingabe. Für alles weiter muss man sich Algorithmen überlegen, wie man dahin kommt. Und es ist IMHO ziemlich schwierig - vielleicht sogar nicht möglich, weil unvollständig - von Deinen Eingaben oben zu den benötigten Maschen zu kommen, um die Maschenmatrix aufzustellen und zu lösen.

    Ich würde zunächst versuchen, die Maschenmatrix direkt einzugeben. Wenn außer Widerständen noch Kondensatoren oder Induktivitäten enthalten sind, bekommst Du auch komplexe Elemente in der Matrix.
    Weißt Du, wie man das rechnet bzw. löst?

    Gruß
    Werner



  • Werner Salomon schrieb:

    Hallo jonny_1234,

    jonny_1234 schrieb:

    Durch das Auslesen der Datei soll das Programm "wissen" bzw selbstsändig die entsprechenden Werte ausrechnen (Spannungen, Ströme etc)

    Hat jemand vllt einige Tipps, Ansätze?

    Durch das Auslesen der Datei "weiß" das Programm zunächst nur die Eingabe. Für alles weiter muss man sich Algorithmen überlegen, wie man dahin kommt. Und es ist IMHO ziemlich schwierig - vielleicht sogar nicht möglich, weil unvollständig - von Deinen Eingaben oben zu den benötigten Maschen zu kommen, um die Maschenmatrix aufzustellen und zu lösen.

    Ich würde zunächst versuchen, die Maschenmatrix direkt einzugeben. Wenn außer Widerständen noch Kondensatoren oder Induktivitäten enthalten sind, bekommst Du auch komplexe Elemente in der Matrix.
    Weißt Du, wie man das rechnet bzw. löst?

    Gruß
    Werner

    Danke für die Hinweise bzw. die ausführliche Antwort.

    Da ich zur Zeit im 1. Semester "Elektro- und Informationstechnik" (Bachelor) studiere, war Matrizen Rechnung mit reellen und komplexe Zahlen dran. (Gauss Verfahren, etc)

    Mein "Ansatz" für das C/C++ Programm wäre, dass das Programm "selbstständig" durch den Algorythmus die Schaltung "im Geiste sich vorstellen kann" -> selbstständig die Maschen legen, etc. Wie man die einzelnen Machen rechnet (mathematisch) ist das geringere Problem.

    Problem: Programm soll wissen, was für eine Schaltung es vor sich hat
    (Erstmal nur Spannungs-/Stromquellen und Widerstände)

    Grüße jonny_1234



  • Hallo jonny_1234,

    jonny_1234 schrieb:

    Mein "Ansatz" für das C/C++ Programm wäre, dass das Programm "selbstständig" durch den Algorythmus die Schaltung "im Geiste sich vorstellen kann" -> selbstständig die Maschen legen, etc.

    Das Kreuz beim Programmieren ist ja nun, dass Du dem PC-Geist ganz genau sagen musst, was er tun soll.

    Was hältst Du den davon, zumindest die einzelnen Zweige zu beschreiben. Jeder Zweig wird durch zwei Knoten (K) begrenzt - z.B. so:

    K1 R1 U0 K2
    K1 R2 K2
    K1 R3 K2
    

    In diesem Fall wären es zwei Knoten und zwei Maschen mit einer Schaltung mit drei Widerständen.

    Gruß
    Werner



  • Da doch Jonny ganz genau weiß, was er zu tun hat, stellt sich mir die Frage, warum er es nicht einfach tut?
    Jonny benennt sein Problem einfach nicht.
    Ich hätte jetzt zum Beispiel das Problem, in einem ungerichteten Graphen alle Zyklen ("Maschen") zu finden, die "unabhängig" sind, also die wechselseitig nicht als Kombination der anderen hervorgehen. Vielleicht an einem Knotenpunkt anfangen und per breadth-first Kreise suchen, Kanten als "besetzt" markieren und alle Kreise verwerfen, die nur aus "besetzten" Kanten bestehen. In Kombination mit den offenstichlichen Knotenpunktgleichungen könnte das so schon reichen.


Anmelden zum Antworten