Hallo zusammen. Ich muss 3 externe veränderliche unbekannte Widerstände ermitteln, und zwar mit einer vorgegebenen Messschaltung. Die drei Widerstände sind in Sternschaltung angeordnet, der Sternpunkt ist für mich nicht zugänglich. Die Messschaltung kann ich auch nicht verändern. Ich schließe die Messschaltung in drei verschiedenen Konstellationen an die Widerstände an und messe dann jeweils einen 'internen' Spannungswert. zu ermitteln: 3 unbekannte externe Widerstandswerte: R1, R2, R3 (in Sternschaltung) Messmittel: Messchaltung mit bekannten Bauteilen R4, R5, R6, R7, R8, Vsin R4 = R5 = R6, C2 = C3 Ablauf: In 3 Messschritten werden nacheinander mit unterschiedlichen Messschaltungskonstellationen die Spannungen V1, V2, V3 gemessen. Lösungsansatz: Man kann 3 Funktionsgleichungen mit der Messspannung als Funktion von R1, R2, R3 und den bekannten Bauteilen aufstellen: Messung I V1 = f1 (R1, R2, R3 und VSin, R4, R5, ...) Messung II V2 = f2 (R1, R2, R3 und VSin, R4, R5, ...) Messung III V3 = f3 (R1, R2, R3 und VSin, R4, R5, ...) Das sind 3 Gleichungen mit 3 Unbekannten, die theoretisch lösbar sind: R1 = f4 (R2, R3, V1, V2, V3, VSin, R4, R5, ...) R2 = f5 (R1, R3, V1, V2, V3, VSin, R4, R5, ...) R3 = f6 (R1, R2, V1, V2, V3, VSin, R4, R5, ...) Frage: Diese Gleichungen sind zu komplex, um sie per Hand zu lösen. Mit welcher systematischen Methode können die Widerstandswerte R1, R2, R3 berechnet bzw. ermittelt werden? Und zwar nicht einmalig, sondern letztendlich per Software-Programm zyklisch wiederkehrend für veränderliche R1, R2, R3. Ich bräuchte eine mathematische Methode, die ich dann programmtechnisch implementieren kann. Maschenstromverfahren, Knotenpotenzialanalyse, Matrizen? Wie fange ich da an? Hat da jemand einen guten Ansatz für mich?
Hilft dir evtl. nicht weiter, aber ich würde es für mich erstmal umzeichnen, dass ich auf Anhieb sehe was los is...
Gerd K. schrieb: > Man kann 3 Funktionsgleichungen mit der Messspannung als Funktion von > R1, R2, R3 und den bekannten Bauteilen aufstellen: > Messung I V1 = f1 (R1, R2, R3 und VSin, R4, R5, ...) > Messung II V2 = f2 (R1, R2, R3 und VSin, R4, R5, ...) > Messung III V3 = f3 (R1, R2, R3 und VSin, R4, R5, ...) > Das sind 3 Gleichungen mit 3 Unbekannten, die theoretisch lösbar sind Bist du sicher das diese Gleichungen ein System bilden, denn VSin und R8 sind in den drei Schaltungen an unterschiedlichen Stellen. Muss man nicht eher von drei verschiedenen VSinx und R8x ausgehen?
Vsin und R8 sind tatsächlich feste Schaltungsteile, die mit Analogschaltern auf die verschiedenen Positionen geschaltet werden. Von daher haben die beiden tatsächlich in allen 3 Schaltungsvarianten die gleiche Amplitude bzw. den gleichen kOhm-Wert
C1 müsste auch gegeben sein, sonst wären es ja 4 Unbekannte?! Also dann die 3 Gleichungen für V1, V2, V3 aufstellen. (Blöd, weil ausser den Widerständen auch Kondensatoren vorkommen, könnte man denn nicht mit Gleichspannung arbeiten?) Dann damit ein Lösungsprogramm füttern oder mit Excel o.ö. beschäftigen (Solver).
Die Kondensatorwerte sind auch bekannt. Der Tip mit einem Solver ist interessant. Kennt jemand ein 'Solver'-Verfahren, bei dem man Gleichungen mit komplexen Zahlen einsetzen kann und für das ein C-Code verfügbar ist? Wenigstens eine Verfahrensbeschreibung, so dass man den C-Code selber schreiben kann?
> Kennt jemand ein 'Solver'-Verfahren, bei dem man Gleichungen mit > komplexen Zahlen einsetzen kann Man muss wohl meist getrennt nach Real- und Imaginärteil auflösen, schon in den Gleichungen.
Die alte Software Derive macht so was, auch komplex. Mit GeoGebra geht das das glaube ich auch, wird in den Schulen benutzt.
Gerd K. schrieb: > Kennt jemand ein 'Solver'-Verfahren, bei dem man Gleichungen mit > komplexen Zahlen einsetzen kann und für das ein C-Code verfügbar ist? > Wenigstens eine Verfahrensbeschreibung, so dass man den C-Code selber > schreiben kann? Die Auflösung der Gleichungen muss man doch nur einmal durchführen. C wäre für die entsprechenden Beschreibungen so ziemlich die ungeeigste Sprache, die man sich vorstellen kann. Entsprechende Mathematikpakete verwenden meist ihre eigenen Beschreibungssprachen für Gleichungen. Sehr verbreitet sind: - Wolfram Mathematica - Waterloo Maple - Derive Eine umfangreichere Liste findet man hier: https://de.wikipedia.org/wiki/Computeralgebrasystem Mit hoher Wahrscheinlichkeit kannst die entsprechenden Umformungen auch mit dem (teilweise kostenlosen) Dienst Wolfram Alpha durchführen, bei dem es sich weitgehend um eine Webversion von Mathematica handelt: https://www.wolframalpha.com/input/?i=solve+x%5E3+-+4x%5E2+%2B+6x+-+24+%3D+0 Ggf. musst Du die resultierenden Ausdrücke noch so lange umformen, bis sie sich in geschlossener Form in C o.ä. hinschreiben lassen.
kannst du es nicht einfach mit DC messen? In dem Fall sind die Widerstände deiner Meßschaltung ohne Funktion dank der Kondensatoren.
Nachtrag: Zu Beginn meines Studiums verwendete ich gelegentlich eine geklaute Version von Derive, die genau das tat, was ich benötigte. Und weil überall von Mathematica geschwärmt wurde, kaufte ich mir dann die Studentenversion (für DM 499,- oder so) und war stolz wie Bolle. Aber Mathematica war so unglaublich leistungsfähig und mit Feature vollgestopft, dass ich mir jahrelang vornahm, mich intensiv damit zu befassen. Dabei ist es leider geblieben, denn jeder Einarbeitungsversuch brachte die Erkenntnis, dass noch viel mehr Funktionalität vorhanden war, mit nochmals erhöhtem Einarbeitungsaufbau. Wirklich nett ist bei Mathematica, dass man die Rechenschritte als sog. Notebook organisieren kann, d.h. so wie man in der Schule oder in einer Übung im Studium seinen Lösungsweg hinschreibt.
> kannst du es nicht einfach mit DC messen? >> (Blöd, weil ausser den Widerständen auch Kondensatoren vorkommen, >> könnte man denn nicht mit Gleichspannung arbeiten?)
DC-Messung geht definitiv leider nicht. Und es reicht nicht, wenn ich meine gesuchten Widerstände einmalig mit einem Mathematik-Tool ausrechne. Ich muss ein SW-Programm schreiben, welches die unbekannten veränderlichen Widerstände zyklisch mit der vorgegebenen HW-Schaltung misst und aus den gemessen drei Spannungen die unbekannten Widerstandswerte berechnet und diese dann ausgibt. Dazu brauche ich einen Ansatz, wie ich softwaretechnisch die 3 Widerstandswerte aus den 3 gemessenen Spannungen berechnen kann.
Gerd K. schrieb: > Und es reicht nicht, wenn ich meine gesuchten Widerstände einmalig mit > einem Mathematik-Tool ausrechne. Dann warst Du offenbar zu faul, Dich mit den genannten Mathematikpaketen zu beschäftigen. Sonst wüsstest Du, dass sie nicht einfach numerisch drauflosrechnen, sondern sie dazu dienen, die Gleichungen entsprechend umzuformen. > Ich muss ein SW-Programm schreiben, > welches die unbekannten veränderlichen Widerstände zyklisch mit der > vorgegebenen HW-Schaltung misst und aus den gemessen drei Spannungen die > unbekannten Widerstandswerte berechnet und diese dann ausgibt. Dazu > brauche ich einen Ansatz, wie ich softwaretechnisch die 3 > Widerstandswerte aus den 3 gemessenen Spannungen berechnen kann. Genau.
Danke, das war mir nicht ganz so klar. Nun ja, wie du schreibst, ist das Kennenlernen der Mathematiktools mit viel Einarbeitungszeit verbunden, was ich jetzt auch angehen werde. Für einen Vorabtip, welche Tools auch Gleichungen mit komplexen Zahlen umformen können, wäre ich dennoch dankbar.
Gerd K. schrieb: > Für einen Vorabtip, welche Tools auch Gleichungen mit komplexen Zahlen > umformen können, wäre ich dennoch dankbar. Textverständnis ist nicht so Dein Ding? Andreas S. schrieb: > Mit hoher Wahrscheinlichkeit kannst die entsprechenden Umformungen auch > mit dem (teilweise kostenlosen) Dienst Wolfram Alpha durchführen, bei > dem es sich weitgehend um eine Webversion von Mathematica handelt:
Gerd K. schrieb: > Diese Gleichungen sind zu komplex, um sie per Hand zu lösen. Wieso das denn? Das kann man schon symbolisch von Hand rechnen. Ist nur ziemlich nervig und man muss sehr sorgfältig arbeiten. > Maschenstromverfahren, Knotenpotenzialanalyse, Matrizen? Wie fange ich > da an? > Hat da jemand einen guten Ansatz für mich? Zuerst einmal die Schaltungen vereinfachen. Auch wenn es nicht so aussieht, es sind drei verschiedene Schaltungen, die man jeweils einzeln bearbeiten muss. Dein Professor war nämlich ein bisschen gemein. Besonders mies ist Schaltung 3, in der neben den in allen Schaltungen vagabundierenden R8, Vsin auch noch Bauteile ihre P{osition getauscht haben. Subtil-böse. Methode? Stern-Dreieck Umwandlung. Zumindest scheint es so, dass dein Professor in jeder der drei Schaltungen genug Möglichkeiten zur Umwandlung und Zusammenfassung vorgesehen hat. Gerade C1 bis C3 schreien danach. Nach den Zusammenfassungen hast du drei Gleichungen mit je drei Unbekannten. Ein lineares Gleichungssystem. Methoden das zu lösen lernt man in der Schule (Einsetzungsverfahren, Gauß-Verfahren, Gleichsetzungsverfahren, Subtraktionsverfahren).
Das Problem löst sich nicht so einfach wie gedacht. Ich habe die Gleichungen aufgestellt und versucht mit einem Solver (Maxima und Mathematica) nach R1,R2,R3 aufzulösen. Alle anderen Werte symbolisch. Nach ca. 5 Minuten hatten die Solver noch keine Lösung und ich habe abgebrochen. Vielleicht hätten sie später noch eine Lösung gefunden, aber erfahrungsgemäss eher nicht. Hat noch jemand einen Trick oder ein anderes Verfahren?
Josef schrieb: > Nach ca. 5 Minuten hatten die Solver noch keine Lösung > und ich habe abgebrochen. > Vielleicht hätten sie später noch eine Lösung gefunden, aber > erfahrungsgemäss eher nicht. Meist liegt das daran, dass entweder die zu bestimmenden Parameter nicht linear unabhängig oder die Startwerte Mist sind. Gerd K. schrieb: > ... ein SW-Programm ... Man könnte auch sagen "ein weißer Schimmel" ...
Mit drei Messungen kann man bis zu 6 Gleichungen aufstellen, wenn man Betrag und Phase berücksichtigt. Damit kann man also auch die unbekannten Kondensatoren bestimmen. Man kann für jede der drei Messungen entweder eine Matrix(LGS), aufgestellt mit der Knotenpotentialanalyse, numerisch lösen oder man nimmt einen symbolischen Solver und bestimmt einmalig die Formel V1=..., V2= und V3=... Dadurch entfällt das wiederholte Lösen des LGS. Diese V=.. sind auf Grund der Komplexität der Schaltung vermutlich nichtlineare Gleichungen bezüglich der Widerstände R1, R2 und R3. Deshalb muss man das im allgemeinen mit numerischen Verfahren lösen - Stichwort Jacobi-Matrix. Symbolische Solver gibt es für Matlab - SCAM mit symbolic toolbox - oder man nimmt ein spezielles Programm dafür - SapWin4. Allerdings sollte man die symbolischen Lösungen mit einem SPICE-Simulationsprogramm überprüfen, da ich da auch schon mal einen Fehler in einer symbolischen Lösung gefunden habe,
Helmut S. schrieb: > Damit kann man also auch die unbekannten Kondensatoren bestimmen. Kleine Anmerkung: Die Kondensatoren sind bekannt! Lediglich die 3 Widerstände R1, R2, R3 sind Unbekannte.
Hallo, wenn ich keinen Fehler gemacht habe, ist das Gleichungsystem nicht linear. MfG egonotto
Gerd K. schrieb: > Helmut S. schrieb: >> Damit kann man also auch die unbekannten Kondensatoren bestimmen. > > Kleine Anmerkung: Die Kondensatoren sind bekannt! Lediglich die 3 > Widerstände R1, R2, R3 sind Unbekannte. Damit reichen 3 Gleichungen mit den Beträgen der Spannung. Das Gleichungssystem löst man dann numerisch.
> Das Gleichungssystem löst man dann numerisch.
@egonotto:
Und es sollte doch linear sein?
Weil nur lineare Elemente vorhanden sind, und keine Leistung
gegeben/gesucht ist.
Elektrofan schrieb: >> Das Gleichungssystem löst man dann numerisch. > > @egonotto: > Und es sollte doch linear sein? > Weil nur lineare Elemente vorhanden sind, und keine Leistung > gegeben/gesucht ist. Die Berechnung von V1 bildet schon eine lineares Gleichungssystem, aber die Berechnung von R1 ergibt kein lineares Gleichungssystem da in allen 3 Gleichungen Terme mit R1*R2, R1*R3 und R2*R3 vorkommen. Als Beispiel die Formel für V1 die mir Sapwin4 berechnet hat. Wenn man s durch jw ersetzt, dann bekommt man die komplexe Spannung V1. V1(s) = ( (R2+R1)+ (C2*R2*R7+C2*R2*R6+C2*R2*R4+C2*R2*R3+C2*R1*R7+C2*R1*R6+C2*R1*R3+C2*R1*R2 +C3*R2*R7+ C3*R2*R6+C3*R2*R3+C3*R1*R7+C3*R1*R6+C3*R1*R5+C3*R1*R3+C3*R1*R2)*s )/( (R8+R2+R1)+ (C1*R5*R8+C1*R4*R8+C1*R2*R8+C1*R2*R5+C1*R2*R4+C1*R1*R8+C1*R1*R5+C1*R1*R4 +C2*R7*R8+ C2*R6*R8+C2*R4*R8+C2*R3*R8+C2*R2*R7+C2*R2*R6+C2*R2*R4+C2*R2*R3+C2*R1*R8+ C2*R1*R7+ C2*R1*R6+C2*R1*R4+C2*R1*R3+C2*R1*R2+C3*R7*R8+C3*R6*R8+C3*R5*R8+C3*R3*R8+ C3*R2*R8+ C3*R2*R7+C3*R2*R6+C3*R2*R5+C3*R2*R3+C3*R1*R7+C3*R1*R6+C3*R1*R5+C3*R1*R3+ C3*R1*R2)*s+ (C2*C1*R5*R7*R8+C2*C1*R5*R6*R8+C2*C1*R4*R7*R8+C2*C1*R4*R6*R8+C2*C1*R4*R5 *R8+C2*C1*R3*R5*R8+ C2*C1*R3*R4*R8+C2*C1*R2*R7*R8+C2*C1*R2*R6*R8+C2*C1*R2*R5*R7+C2*C1*R2*R5* R6+C2*C1*R2*R4*R8+ C2*C1*R2*R4*R7+C2*C1*R2*R4*R6+C2*C1*R2*R4*R5+C2*C1*R2*R3*R8+C2*C1*R2*R3* R5+C2*C1*R2*R3*R4+ C2*C1*R1*R7*R8+C2*C1*R1*R6*R8+C2*C1*R1*R5*R8+C2*C1*R1*R5*R7+C2*C1*R1*R5* R6+C2*C1*R1*R4*R7+ C2*C1*R1*R4*R6+C2*C1*R1*R4*R5+C2*C1*R1*R3*R8+C2*C1*R1*R3*R5+C2*C1*R1*R3* R4+C2*C1*R1*R2*R8+ C2*C1*R1*R2*R5+C2*C1*R1*R2*R4+C3*C1*R5*R7*R8+C3*C1*R5*R6*R8+C3*C1*R4*R7* R8+C3*C1*R4*R6*R8+ C3*C1*R4*R5*R8+C3*C1*R3*R5*R8+C3*C1*R3*R4*R8+C3*C1*R2*R7*R8+C3*C1*R2*R6* R8+C3*C1*R2*R5*R7+ C3*C1*R2*R5*R6+C3*C1*R2*R4*R8+C3*C1*R2*R4*R7+C3*C1*R2*R4*R6+C3*C1*R2*R4* R5+C3*C1*R2*R3*R8+ C3*C1*R2*R3*R5+C3*C1*R2*R3*R4+C3*C1*R1*R7*R8+C3*C1*R1*R6*R8+C3*C1*R1*R5* R8+C3*C1*R1*R5*R7+ C3*C1*R1*R5*R6+C3*C1*R1*R4*R7+C3*C1*R1*R4*R6+C3*C1*R1*R4*R5+C3*C1*R1*R3* R8+C3*C1*R1*R3*R5+ C3*C1*R1*R3*R4+C3*C1*R1*R2*R8+C3*C1*R1*R2*R5+C3*C1*R1*R2*R4+C3*C2*R5*R7* R8+C3*C2*R5*R6*R8+ C3*C2*R4*R7*R8+C3*C2*R4*R6*R8+C3*C2*R4*R5*R8+C3*C2*R3*R5*R8+C3*C2*R3*R4* R8+C3*C2*R2*R7*R8+ C3*C2*R2*R6*R8+C3*C2*R2*R5*R7+C3*C2*R2*R5*R6+C3*C2*R2*R4*R8+C3*C2*R2*R4* R7+C3*C2*R2*R4*R6+ C3*C2*R2*R4*R5+C3*C2*R2*R3*R8+C3*C2*R2*R3*R5+C3*C2*R2*R3*R4+C3*C2*R1*R7* R8+C3*C2*R1*R6*R8+ C3*C2*R1*R5*R8+C3*C2*R1*R5*R7+C3*C2*R1*R5*R6+C3*C2*R1*R4*R7+C3*C2*R1*R4* R6+C3*C2*R1*R4*R5+ C3*C2*R1*R3*R8+C3*C2*R1*R3*R5+C3*C2*R1*R3*R4+C3*C2*R1*R2*R8+C3*C2*R1*R2* R5+C3*C2*R1*R2*R4)*s^2 )
:
Bearbeitet durch User
Es ist aber schon klar was linear bedeutet? Bedeutet, dass doppelter Eingang auch doppelten Ausgang bedeutet. Und dass ein Summensignal am Eingang auch eine Funktion des Summensignals am Ausgang ergibt. Also f(a*A)+f(b*B)=f(a*A+b*B) mit a,b in Real, resp Complex
> ... aber die Berechnung von R1 ergibt kein lineares Gleichungssystem > da in allen 3 Gleichungen Terme mit R1*R2, R1*R3 und R2*R3 > vorkommen. Auch gut, hoffentlich muss ich sowas unübersichtliches, wie > V1(s) = ( > (R2+R1)+ > (C2*R2*R7+C2*R2*R6+C2*R2*R4+C2*R2*R3+C2*R1*R7+C2*R1*R6+C2*R1*R3+C2 > *R1*R2+C3*R2*R7+ > C3*R2*R6+C3*R2*R3+C3*R1*R7+C3*R1*R6+C3*R1*R5+C3*R1*R3+C3*R1*R2)* > s)/( > ... NIE ausrechnen. ;-)
Elektrofan schrieb: >> ... aber die Berechnung von R1 ergibt kein lineares Gleichungssystem >> da in allen 3 Gleichungen Terme mit R1*R2, R1*R3 und R2*R3 >> vorkommen. > > Auch gut, > hoffentlich muss ich sowas unübersichtliches, wie > >> V1(s) = ( >> (R2+R1)+ >> (C2*R2*R7+C2*R2*R6+C2*R2*R4+C2*R2*R3+C2*R1*R7+C2*R1*R6+C2*R1*R3+C2 >> *R1*R2+C3*R2*R7+ >> C3*R2*R6+C3*R2*R3+C3*R1*R7+C3*R1*R6+C3*R1*R5+C3*R1*R3+C3*R1*R2)* >> s)/( >> ... > > NIE ausrechnen. ;-) Dafür gibt es ja Programme die aus einem Schaltplan oder einer Netzliste diese Formel berechnen - SAPWIN4, SCAM, .... SAPWIN4 ist kostenlos. Für SCAM benötigt man Matlab mit der Symbolic-Toolbox. Das angeblich hochkompatible Octave hat bei meinem letzten Versuch mit SCAM kläglich versagt wegen seinem inkompatiblen "Symbolic-Solver". Seitdem bin ich vorsichtig mit der Behauptung Octave wäre super-kompatibel zu Matlab. Alternativ stellt man nur das Gleichungssystem mittels Knotenpotentialanalyse auf und löst es rein numerisch. Genau das macht z. B. SPICE. Es stellt sogar die Gleichungen für einen auf aber man sieht sie nicht. Man zeichnet nur noch die Schaltung, drückt RUN und bekommt das Ergebnis. Um mittels SPICE R1 zu berechnen, muss man noch einen Optimizer bemühen. In manchen SPICE-Programmen ist der schon eingebaut. Bei LTspice muss man einen externen Optimizer nehmen.
In der Zwischenzeit haette der Poster das Problem auch analytischen loesen koennen, resp mit einem selbst geschriebenen Solver loesen koennen. Da er aber schon an komplexen Zahlen scheitert, wird's wohl eh nichts.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.