Hallo zusammen 😊 ich bin neu hier und arbeite gerade an einer Praktikumsaufgabe. Bei einem LCR-Messgeräte-Projekt soll ich mittels Fitting einer Sinusfunktion die Phasenlage zwischen Spannung und Strom bestimmen. Das funktioniert anfangs gut: Ich messe mit einem STM32 beide Signale (Strom und Spannung) und passe dann jeweils Phase, Amplitude und Offset der Sinuskurven für den Strom an, um die Phasendifferenz zu berechnen. Anfangs stimmen die Ergebnisse gut mit dem Oszilloskop überein. Allerdings driftet der Messfehler (Differenz zwischen Oszi und STM32) über längere Zeiträume (mehrere Stunden, z. B. über Nacht), obwohl das Messobjekt unverändert ist und ein Referenz-LCR-Meter am nächsten Tag den gleichen Wert liefert. Jetzt bin ich mir unsicher: Liegt das Problem vielleicht am Fit? Oder stört der Offset den Nulldurchgang, sodass die Phase scheinbar „wandert“? Gibt es eine einfache Möglichkeit, die Messung so zu stabilisieren – z. B. softwareseitig oder schon beim Messen? Die Aufgabe ist es, die Phasenmessung auch über längere Zeiträume verlässlich zu vergleichen. Danke schon mal für Tipps! Liebe Grüße Chantalle 2000 😊
Chantalle schrieb: > Oder stört der Offset den Nulldurchgang, sodass die Phase scheinbar > „wandert“? Was meinst du mit "Nulldurchgang"? Der Nulldurchgang eines Sinus liegt nur dann bei Phase 0° bzw. 180°, wenn dem Sinus keine DC-Komponente überlagert ist. Es kommt also auf dein Fitting an, ob es mit einem Offset umgehen kann.
:
Bearbeitet durch User
Rainer W. schrieb: > Chantalle schrieb: >> Oder stört der Offset den Nulldurchgang, sodass die Phase scheinbar >> „wandert“? > > Was meinst du mit "Nulldurchgang"? > Der Nulldurchgang eines Sinus liegt nur dann bei Phase 0° bzw. 180°, > wenn dem Sinus keine DC-Komponente überlagert ist. > Es kommt also auf dein Fitting an, ob es mit einem Offset umgehen kann. Nein, das ist die Frage "Phasenlage zwischen Spannung und Strom bestimmen" wie beschrieben,
Eine Phasenbestimmung nur am Nulldurchgang festzumachen, ist ja auch übler Murks. Da reicht schon ein DC-Offset um die Phasenbestimmung in die Irre zu führen. Richtig würde man die Summe der Abstandsquadrate zu einer Referenz bestimmen, und durch Iteration der Phase der Referenz das Minimum suchen. Das ist natürlich ein wenig aufwendiger.
Cartman E. schrieb: > Eine Phasenbestimmung nur am Nulldurchgang festzumachen, ist ja auch > übler Murks. Da reicht schon ein DC-Offset um die Phasenbestimmung > in die Irre zu führen. > Richtig würde man die Summe der Abstandsquadrate zu einer Referenz > bestimmen, und durch Iteration der Phase der Referenz das Minimum > suchen. Das ist natürlich ein wenig aufwendiger. wie geschrieben "Bei einem LCR-Messgeräte-Projekt soll ich mittels Fitting einer Sinusfunktion die Phasenlage zwischen Spannung und Strom bestimmen. Das funktioniert anfangs gut: Ich messe mit einem STM32 beide Signale (Strom und Spannung) und passe dann jeweils Phase, Amplitude und Offset der Sinuskurven für den Strom an, um die Phasendifferenz zu berechnen." Genau das macht die Funktion ja, also wieso ist es denn jetzt Murks?
Chantalle schrieb: > Genau das macht die Funktion ja, also wieso ist es denn jetzt Murks? Ja dann ist ja alles Gut.
Abtastung synchron zur Anregung? Fitverfahren? Sinus geht als linear least Square Kann auch einen Offset mit fitten. Liefert Amplitude und Phase nur begrenzt von Noise bzw Messedauer.
Dieter D. schrieb: > Vielleicht läuft eine Variable hoch. Im Prinzip ist das bei Software auch mein erster Gedanke, aber der Code ist so aufgebaut das es keine Variablen gibt, die von Messung zu Messung angepasst werden. Aber vielleicht lass ich mir die trotzdem nochmal alle anzeigen, weil wenn ein Fehler drin ist, dann ist das ja unbeabsichtigt, vielleicht greift was auf den Speicher zu.
Henrik V. schrieb: > Abtastung synchron zur Anregung? > Fitverfahren? > Sinus geht als linear least Square > Kann auch einen Offset mit fitten. > Liefert Amplitude und Phase nur begrenzt von Noise bzw Messedauer. Also bei mir ist das quasi synchron, weil sowohl DAC als auch ADC denselben Takt vom STM32 benutzen – also nicht „wild asynchron“, sondern beide hängen am gleichen Timer-Teiler, wenn ich das richtig verstanden hab. Ich lasse den DAC einen Sinus ausgeben und messe dann mit zwei ADC-Kanälen gleichzeitig: einmal die Spannung direkt am Prüfling und den Strom (über einen Messwiderstand in Reihe zum Prüfling) Pro Messung erfasse ich genau eine oder zwei Perioden, aktuell sind’s 512 Werte pro Kanal im DMA-Modus. Die sind dann gleichmäßig verteilt über den Sinus. Im Speicher sieht das so aus: Es kommen abwechselnd Werte rein – erst einer für U, dann zwei für I, dann wieder zwei für U, usw. Am Ende bleibt ein einzelner U-Wert übrig, sodass ich insgesamt 1024 Messwerte habe. U I I U U I I U U I I U U I I U U I I U U I I ...I I U dann werden die beiden ersten U gemittelt und die beiden ersten I, das ist mein erster neuer Wert dann 3. und 4. für den zweiten neuen Wert Danach bilde ich für jedes Messpaar den Mittelwert, sodass ich am Ende 256 Werte für U und 256 für I habe. Dann passe ich die neuen Stromkurve (I) so an, dass sie möglichst gut zur neunen Spannungskurve (U) passt – also Offset, Amplitude und Phase werden so geändert, dass die Summe der Fehlerquadrate möglichst klein ist (klassisches Least Squares-Fit). Daraus ergibt sich dann die Phasenlage zwischen Spannung und Strom. Aus der Amplitude und der Phase kann ich dann den komplexen Widerstand berechnen und mit f dann L oder C Aber wenn ich jetzt die Langzeitmessung sehe, dann läuft Oszi zu STM weg Ich hoffe, das war halbwegs verständlich beschrieben
Dann würde ich U und I alternierend messen, Mittelwertbildung erfolgt ja über den Fit. Der Phase- bzw Timedelay durch das Multiplexing ist fix, kann man rechnen und oder messen. Mach dich mal schlau über den Sinusfit , Quellen kann ich Dir morgen schicken. Beim Sinusfit musst du die Matrix invertieren, aber das brauchst Du nur einmal (pro Frequenz) zu machen. Ergebnis ist dann pro Kurve a*sin(w)+b*cos(w)+C Über arctan dann die Phasen und dann die Phasendifferenz ... Und dann so viele Perioden wie der Speicher hergibt ;) Grundregel der Signalverarbeitung: Das überlegene Verfahren integriert länger:D
Henrik V. schrieb: > Dann würde ich U und I alternierend messen, Mittelwertbildung erfolgt ja > über den Fit. Der Phase- bzw Timedelay durch das Multiplexing ist fix, > kann man rechnen und oder messen. Ja richtig, kann man messen und ist dann fix, in der Theorie ergibt sich aber ein minimaler Fehler wenn die Frequenz des STM nicht stabil ist, das ist bei 200 ppm nicht weltbewegend, das Projekt hat aber auch theoretische Hintergründe "unnötige" Fehlerquellen vollständig auszuschließen > Mach dich mal schlau über den Sinusfit , Quellen kann ich Dir morgen > schicken. Beim Sinusfit musst du die Matrix invertieren, aber das > brauchst Du nur einmal (pro Frequenz) zu machen. Ich denke schon dass Sinus Fit funktioniert, weil wenn ich verschiedene Phasen durch Austausch des Messobjektes habe, dann werden die Phasen jeweils korrekt angezeigt wenn ich das mit dem Oszilloskop vergleiche. > Ergebnis ist dann pro Kurve a*sin(w)+b*cos(w)+C > Über arctan dann die Phasen und dann die Phasendifferenz ... > Und dann so viele Perioden wie der Speicher hergibt ;) Das Problem ist die Abweichung zum Oszi über einen längeren Zeitraumm, der STM zeigt teils weniger Veränderung. Deswegen die Frage, was muss ich für die Phasenberechnung anders machen als das Signal wie es gemessen wird zu U zu fitten, ich habe Offset, Phase und Amplitude als Variablen. Muss ich den Offset doch noch in die Phase reinrechnen, ich denke doch eher nicht. > Grundregel der Signalverarbeitung: Das überlegene Verfahren integriert > länger:D ich habe das Verfahren auch über mehrere Perioden getestet, 2 und 4, aber kein Unterschied, obwohl jede Langzeitmessung immer etwas anders aussieht, aber die Größenordnung ähnlich. Die Phasendrift zum Oszi ist so max 1° meist weniger, also nicht so viel das ich glaube das die Formel für den Fit falsch ist, da würde ich größere Fehler erwarten und nicht das die so "driften" Aber die 1° sind entscheidend wenn ich L oder C bestimmen will und die Phase zwischen Strom und Spannung nicht nahe genug an 90° ist
Chantalle schrieb: > Jetzt bin ich mir unsicher: > > Liegt das Problem vielleicht am Fit? Hmm. Also ich will es so ausdrücken: Deine Schilderung wirkt etwas planlos -- aber ich kann nicht beurteilen, ob schon die Auf- gabe planlos gestellt ist, oder nur Dein Vorgehen nicht optimal ist. Mir wird nicht klar, was feste Vorgaben sind, was als Vorschläge oder Empfehlungen aufzufassen ist, und wo Freiheitsgrade für eigene Entscheidungen bestehen. > Oder stört der Offset den Nulldurchgang, sodass die Phase > scheinbar „wandert“? Kann man ohne Kenntnis des Algorithmus/Programms m.E. nicht beantworten. > Gibt es eine einfache Möglichkeit, die Messung so zu > stabilisieren – z. B. softwareseitig oder schon beim > Messen? ??? Ich würde einen als zuverlässig bekannten zweikanaligen DDS-Generator direkt an den U- und I-Kanal anschließen und schauen, ob die Phasendrift immer noch auftritt. Noch einfacherer Test als Vorstufe: I- und U-Kanal am µC verbinden, EINEN Generator anschließen und schauen, ob zuverlässig 0° Phasenverschiebung gemessen werden. > Die Aufgabe ist es, die Phasenmessung auch über längere > Zeiträume verlässlich zu vergleichen. ???
Chantalle schrieb: > Dann passe ich die neuen Stromkurve (I) so an, dass sie möglichst gut > zur neunen Spannungskurve (U) passt – also Offset, Amplitude und Phase > werden so geändert, dass die Summe der Fehlerquadrate möglichst klein > ist (klassisches Least Squares-Fit). Warum möchtest du überhaupt irgendetwas anpassen? Rechne die Werte doch direkt aus. Da du den Sinus selber ausgibst, kennst du seine Amplitude und die Zeit des Nulldurchgangs. Du musst dir dazu nur auch noch den Cosinus erzeugen und kannst dann deine Messdaten einmal mit dem Wert des Sinus und einmal mit dem Wert des Cosinus multipliziert über komplette Perioden aufintegrieren (s.u. Orthogonalität Seite 1-3). Phase und Amplitude kannst du direkt aus den beiden Integralen berechnen und irgendein Offset kann dir egal sein. Oder brauchst du den Offset irgendwozu? Stichwort: Additionstheoreme für Sinus und Kosinus, Orthogonalität (S.1-3) https://vhm.mathematik.uni-stuttgart.de/Vorlesungen/Fourieranalysis/Folien_Reelle_Fourier-Reihe.pdf Chantalle schrieb: > Ich lasse den DAC einen Sinus ausgeben und messe dann mit zwei > ADC-Kanälen gleichzeitig:
:
Bearbeitet durch User
Rainer W. schrieb: > Warum möchtest du überhaupt irgendetwas anpassen? > Rechne die Werte doch direkt aus. Da du den Sinus > selber ausgibst, kennst du seine Amplitude und die > Zeit des Nulldurchgangs. Stimmt zwar -- ist aber für die Rechnung gar nicht notwendig. > Du musst dir dazu nur auch noch den Cosinus erzeugen > und kannst dann deine Messdaten einmal mit dem Wert > des Sinus und einmal mit dem Wert des Cosinus > multipliziert über komplette Perioden aufintegrieren > (s.u. Orthogonalität Seite 1-3). Phase und Amplitude > kannst du direkt aus den beiden Integralen berechnen Korrekt. > und irgendein Offset kann dir egal sein. Hier habe ich erstmal gewaltig gestutzt -- aber Du hast Recht: Konstante und Sinus (bzw. Cosinus) sind ja AUCH orthogonal... man braucht den Offset tatsächlich nicht.
Hippelhaxe schrieb: > Stimmt zwar -- ist aber für die Rechnung gar nicht > notwendig. Naja, die Anzahl der Summanden für das Integral, i.e. die Periodendauer braucht man schon, damit z.B. Offsets sauber rausfallen. Die Amplitude geht in das Integral als Faktor ein. Hippelhaxe schrieb: > .. man braucht den Offset tatsächlich nicht. Die Methode kann den Wert des Offsets nicht liefern. Man könnte allerdings zusätzlich das Signal über eine Periode integrieren und hätte ihn dann. Ob der Wert irgend wozu gebraucht wird, war eine Frage.
:
Bearbeitet durch User
Rainer W. schrieb: > Naja, die Anzahl der Summanden für das Integral, i.e. die Periodendauer > braucht man schon, damit z.B. Offsets sauber rausfallen. Dann sprechen wir hier offensichtlich von verschiedenen Methoden. Wenn ich mir eine handvoll Messdaten hernehme und da einen Fit mit der Funktion
drauflege, dann bekomme ich schon brauchbare Werte für Amplitude, Frequenz, Phase und Offset. Es muß nur der zeitlich Abstand zwischen den Samples bekannt sein. Mit dem Fit kann man auch gleich prüfen, wie sinusförmig die Messwerte wirklich sind (unterste Kurve). Bei der Anwendung hier dürfte es einfacher werden, da die Frequenz vorgegeben ist. Chantalle schrieb: > erst einer für U, dann zwei für I, Warum so durcheinander? Chantalle schrieb: > Allerdings driftet der Messfehler über längere Zeiträume Was passiert bei einem Widerstand z.B. 10 kOhm als Messobjekt? Lass Dir doch die 512 Werte pro Kanal mal alle paar Minuten ausgeben und vergleiche die miteinander.
Hippelhaxe schrieb: > Chantalle schrieb: > >> Jetzt bin ich mir unsicher: >> >> Liegt das Problem vielleicht am Fit? > > Hmm. > Also ich will es so ausdrücken: Deine Schilderung wirkt etwas > planlos -- aber ich kann nicht beurteilen, ob schon die Auf- > gabe planlos gestellt ist, oder nur Dein Vorgehen nicht optimal > ist. > Was ist daran planlos, vielleicht ein bisschen zu kompakt, also es ist ein Projekt wie man ein LCR entwickelt, Baugruppen vorhanden die werden verschaltet und auf dem STM, Herzstück des LCR Meters der Algorithmus programmiert. Bei der Phase die ermittellt wird läuft es zum Vergleichmessgereät über Zeit davon. Darum gehts, >> Oder stört der Offset den Nulldurchgang, sodass die Phase >> scheinbar „wandert“? > > Kann man ohne Kenntnis des Algorithmus/Programms m.E. nicht > beantworten. > > >> Gibt es eine einfache Möglichkeit, die Messung so zu >> stabilisieren – z. B. softwareseitig oder schon beim >> Messen? > > ??? > > Ich würde einen als zuverlässig bekannten zweikanaligen > DDS-Generator direkt an den U- und I-Kanal anschließen > und schauen, ob die Phasendrift immer noch auftritt. > > Noch einfacherer Test als Vorstufe: I- und U-Kanal am µC > verbinden, EINEN Generator anschließen und schauen, ob > zuverlässig 0° Phasenverschiebung gemessen werden. das ist ein guter Punkt, mit einem Generator als Quelle wo alles fix bleibt kann ich Softwarefehler, ausschließen. Aber wie geschrieben, es hat den Anschein, das der Offset eine Rolle spielt. Wenn es damit funktioniert kann ich Software als Fehler ausschließen und das es keinen Offset gibt, bleibt diese Möglichkeit bestehen. >> Die Aufgabe ist es, die Phasenmessung auch über längere >> Zeiträume verlässlich zu vergleichen. > > ??? Langzeitstabilität des Messgerätes
Rainer W. schrieb: >> Dann passe ich die neuen Stromkurve (I) so an, dass sie möglichst gut >> zur neunen Spannungskurve (U) passt – also Offset, Amplitude und Phase >> werden so geändert, dass die Summe der Fehlerquadrate möglichst klein >> ist (klassisches Least Squares-Fit). > > Warum möchtest du überhaupt irgendetwas anpassen? Ja, ist schon korrekt das es mehrere Lösungen gibt, natürlich kann ich für die Grundwelle die Fourier Komponenten bestimmen und dann habe ich auch die Phasenlage und Amplitude, das setzt aber voraus, das ich die Frequenz immer auch selber vorgebe wie ich es gerade mache, so das die Messung exakt ganzzahlige Perioden im Speicher lädt. Es gibt auch andere Versuche, wo die Frequenz so eingestellt wird, das nicht exakt n Perioden in den Speicher passen und zwischen zwei Perioden auch nicht eine ganzzahlige Anzahl an Samples liegt. Natürlich kann man dann auch erst die Frequenz genau bestimmen und dann mit bekannter Frequenz das Verfahren anwenden die Fourier Komponenten zu bestimmen, aber dann kann ich es eigentlich auch machen wie bisher. Aber wenn ich es anders mache, wie soll dass das Problem mit der Drift lösen?
Du weißt aber schon, das eine Phasenverschiebung durch Ableitung nur für einen reinen Sinus durch eine Zeitverschiebung gleichzusetzen ist?
Die 'Drift' wird um Code liegen.. Andere Methoden machen andere Fehler. Der 4 Parameter Sinusfit ist schon erfunden... Ist auch schon genormt .. anders als bei der FFT funktioniert der bei allen Frequenzen ohne Leakage .. Ist halt 'etwas' rechenaufwendiger.
Rick schrieb: > Dann sprechen wir hier offensichtlich von verschiedenen Methoden. Offensichtlich - ich sprach von einer Methode ohne Fitterei mit direkter Berechnung der Werte aus einem Integral über ganzzahlige Vielfache der Periodendauer, so wie in dem verlinkten PDF geschrieben. Chantalle schrieb: > ..., das setzt aber voraus, das ich die > Frequenz immer auch selber vorgebe wie ich es gerade mache, so das die > Messung exakt ganzzahlige Perioden im Speicher lädt. Du schriebst, dass du den Sinus über den ADC ausgibst. Wo ist also das Problem. Den Speicher bräuchtest du nur, wenn dein Rechner es nicht schafft, online die Integrationen zu rechnen.
:
Bearbeitet durch User
Henrik V. schrieb: > Du weißt aber schon, das eine Phasenverschiebung durch Ableitung nur für > einen reinen Sinus durch eine Zeitverschiebung gleichzusetzen ist? Ja, um deine Frage zu beantworten, weiß ich Aber wie kommst darauf das ich was ableiten will Wieso kommst du auf die idee das es kein sinus ist
Rainer W. schrieb: > Rick schrieb: >> Dann sprechen wir hier offensichtlich von verschiedenen Methoden. > > Offensichtlich - ich sprach von einer Methode ohne Fitterei mit direkter > Berechnung der Werte aus einem Integral über ganzzahlige Vielfache der > Periodendauer, so wie in dem verlinkten PDF geschrieben. > > Chantalle schrieb: >> ..., das setzt aber voraus, das ich die >> Frequenz immer auch selber vorgebe wie ich es gerade mache, so das die >> Messung exakt ganzzahlige Perioden im Speicher lädt. > > Du schriebst, dass du den Sinus über den ADC ausgibst. Wo ist also das > Problem. > Den Speicher bräuchtest du nur, wenn dein Rechner es nicht schafft, > online die Integrationen zu rechnen. Das problem ist, das es ja nicht die ursache für die ursprüngliche Fragestellung löst. Es gibt alternativen, ok, wusdte ich auch vorher. Wir haben uns aber für diese verfahren entschieden, weil du es anders machen würdest ist dieser ansatz ja nicht falsch. Und die frage wo kommt die drift her klärt das nicht
Wenn nach einigen Stunden die Ergebnisse nicht mehr passen, jedoch ein Neustart Deines Systems diesen Fehler beseitigt, wird es wohl an der Software liegen. Chantalle schrieb: > Henrik V. schrieb: >> Du weißt aber schon, das eine Phasenverschiebung durch Ableitung nur für >> einen reinen Sinus durch eine Zeitverschiebung gleichzusetzen ist? > > Ja, um deine Frage zu beantworten, weiß ich > > Aber wie kommst darauf das ich was ableiten will > > Wieso kommst du auf die idee das es kein sinus ist Die Ableitung ( oder Integration) besorgt dir die Impedanz (L oder C), die Du messen möchtest. Wenn in Deiner Anregung Oberwellen und andere Störungen wie Brummen drin sind, dann kann dies bei Deinem Ansatz U und I zu skalieren und zu verschieben um Aussagen zur Impedanz zu machen, dazu führen dass das Fehler-Minimum nicht an der gewünschten Stelle liegt. (Kann man sicher auch mal schön simulieren..) Wenn Du die Anregung kontrollieren kannst, dann wäre eine synchrone Abtastung über ganze Perioden (je mehr desto besser) mit FFT und Betrachtung des ensprechenden BINs am einfachsten. Wenn die Anregung asynchron ist und man bei der FFT Leakage hat, kann man das mit den NachbarBINS korrektur rechnen. Oder man nimmt einen Sinusfit nach IEEE-STD-1057, der funktioniert bei beliebigen Frequenzen und Abtastzeitpunkten. Hier hatte ich mal ein paar Quellen dazu verlinkt: Beitrag "Re: 100A Stromquelle für Messzwecke" (Englisch und mit Mathe ;) )
:
Bearbeitet durch User
Chantalle schrieb: > Und die frage wo kommt die drift her klärt das nicht Richtig, es vermeidet die Frage. Ihr werdet die Ursache für die Drift schon ermitteln müssen. Alleine eure Beobachtung, dass sie da ist, reicht dafür nicht aus. Das anzuwendende Verfahren heißt "debuggen". Die hier im Thread nicht genannten Details zum verwendeten Algorithmus könnten schon eher helfen. Wie sehen die erfassten Daten aus und was rechnet ihr genau damit? Chantalle schrieb: > Die Phasendrift zum Oszi ist so max 1° meist weniger Für die Drift müsste die Einheit ein s^-1 o.ä. enthalten. Meinst du Phasenlage? Was genau meinst du mit "Phasendrift zum Oszi"?
:
Bearbeitet durch User
Rainer W. schrieb: > Chantalle schrieb: >> Und die frage wo kommt die drift her klärt das nicht > > Richtig, es vermeidet die Frage. > > Ihr werdet die Ursache für die Drift schon ermitteln müssen. Alleine ok, dann hätte ich hier nicht fragen sollen > Chantalle schrieb: >> Die Phasendrift zum Oszi ist so max 1° meist weniger > > Für die Drift müsste die Einheit ein s^-1 o.ä. enthalten. > Meinst du Phasenlage? Was genau meinst du mit "Phasendrift zum Oszi"? über mehrere Stunden betrachtet gehen die Phasen im Bereich 1/10° rauf und runter, bei STM wie auch beim Oszi, aber die Differenz zum Oszi veränderts sich, läuft manchmal wieder zurück das am Ende gleich ist, manchmal aber auch weiter weg
wie machst du den fit über mehrere stunden??? arbeitest du da vielleicht mit kontinuierlicher phase??? wenn du da z.B mit einem double in eine sin/cos funktion reingehst, dann wundert mich das überhaupt nicht... da stoßt du einfach irgendwann an die numerischen grenzen. 73
Hans W. schrieb: > wie machst du den fit über mehrere stunden??? > > arbeitest du da vielleicht mit kontinuierlicher phase??? > > wenn du da z.B mit einem double in eine sin/cos funktion reingehst, dann > wundert mich das überhaupt nicht... da stoßt du einfach irgendwann an > die numerischen grenzen. > > 73 Nein einen Fit mache ich nicht über mehrere stunden, sondern über 1, 2 oder 4 perioden, im moment, es soll aber auch über nicht ganzzahlige perioden später funktionieren. Wad och über mehrere Stunden mache, ist den Fit berechenen und das ergebnis ablegen da fas mit dem Fit aber schnell geht macht das system einen delay, so dass ich nach 10 s die nächste messung starte. Dann habe ich 360 werte pro stunde und nach 20 bis 12 stunden dann entsprechend Parallel hängt das oszilloskop dran und misst den abstand zwischen den phasen, d.h. alle 10 sekunen, aber nicht richtig synchron wird eine messung abgelegt und ein python script berechnet die phasendifferenz, süäter offline. So vergleiche ich dann die messungen miteinander über mehrere stunden, das ist so aber ein standardverfahren bei der überprüfung von messgeräten.
Nur mal zum Vergleich: Ich messe die komplexe Übertragungsfunktion von Vertstärkern (Signalkonditionierer) mit einem Signalgenerator und 2 ADCs, alles schön synchronisiert. Ebenfalls mit Sinusanregung (5mHz bis 300 kHz). Eine Messung ist über 5 bis 500 Perioden. So ~50k Sample Auf beide Signale wird ein 3 Parameter Sinusfit (nach IEEE-STD-1057) angewendet. Bei 50 Wiederholungen liegt die rel. Standardabweichung des Amplitudenverhälnisses bei kleiner 2 ppm (wenn der Verstärker wenig rauscht) und die Standardabweichung der Phasendifferenz liegt bei 0,0003° (leicht steigend zu höheren Frequenzen, bei 100 kHz etwa 5 mal mehr) (Achtung, das ist nicht die Messunsicherheit! ;)) Das ist der Grund, warum ich vom Sinusfit nach 1057 überzeugt bin. Es gibt Leute, die weitaus mehr von Mathe und Signaltheorie verstehen und die behaupten, dass dies Verfahren das mathematisch beste Ergebnis liefert. Wenn man genau n Perioden erfasst, dann ist die FFT mit Rechteckfenster identisch, ansonsten ist das Sinusfitverfahren überlegen. Diese Art der Auswertung unterscheidet sich erheblich von Deiner Methode (so wie ich sie Verstanden habe), da sie sehr schmalbandig ist (1/Messdauer). Deine Methode 'frisst' das gesammte Rauschen und alle Frequenzanteile. Schaue Dir mal das Residuum von Deinen Messdaten an, nachdem Du über einen Sinusfit den Grundton abgezogen hast, oder eine FFT deiner Messdaten bzw des Residuums. Wenn Du einen Kondensator misst, dann werden Oberwellen in Deiner Spannungsanregung im Strom linear stärker.. Auch weitere Störfrequenzen (Netz, Netzteile, ...) haben auf Dein Fitverfahren einen Einfluß. Wenn Du nun gezwungen bist, genau Dein Verfahren zu benutzen, dann würde ich es mit einen digitalen Notchfilter (sehr schmalbandigen Bandpass) bei der Anregungsfrequnenz auf beide Signale versuchen und erst dann Deinen Fit. Da der Filter auf beide Signale gleich wirkt, hat er bei der Verhältnisbetrachtung keinen Einfluß.
:
Bearbeitet durch User
Ich zitiere Dich mal: Chantalle schrieb: > das Projekt hat aber auch > theoretische Hintergründe "unnötige" Fehlerquellen vollständig > auszuschließen Dann ist Dein Fitverfahren meiner Meinung nach eine Fehlerquelle, da nicht schmalbandig.
:
Bearbeitet durch User
Henrik V. schrieb: > Ich zitiere Dich mal: > > Chantalle schrieb: >> das Projekt hat aber auch >> theoretische Hintergründe "unnötige" Fehlerquellen vollständig >> auszuschließen > > Dann ist Dein Fitverfahren meiner Meinung nach eine Fehlerquelle, da > nicht schmalbandig. Du hast deine IEEE STD1057 erwähnt, ich habe beschrieben das ich phase offset und amplitude fitte, deswegen ist mein verfahren die Fehlerquelle, schon mal auf die idee gekommen das ich die frequenz nicht fitte weil die bekannt ist und ich deshalb nur die unbekannten suche. Du sagst mein verfahren ist nicht schmalbandig genug, wenn die frequenz unbekannt wäre, dann würden zu wenig messpunkte natürlich bei der frequenz einen fehler verursachen können, meinst du das mit schmalbandig. Aber die frequenz ist immer bekannt, sie passt nur nicht immer auf ganzzahlige samples, weswegen das fit verfahren und keine fft gewählt wurde ider fourierkoeffizienten
Sorry, ich habe Dein Fitverfahren so verstanden, das Du die Stromkurve auf die Spannungskurve fittest. Wenn Du einen Sinusfit jeweils auf U und I anwendest, OK. Dann brauchst Du nur mehr Daten (länger messen) damit du schmalbandiger wirst. Mindestens 20ms ;) damit Netzbrumm sicher nicht in den Fit spuckt.
Henrik V. schrieb: > Sorry, ich habe Dein Fitverfahren so verstanden, das Du die Stromkurve > auf die Spannungskurve fittest. Wenn Du einen Sinusfit jeweils auf U und > I anwendest, OK. > Dann brauchst Du nur mehr Daten (länger messen) damit du schmalbandiger > wirst. Mindestens 20ms ;) damit Netzbrumm sicher nicht in den Fit > spuckt. Ja mache ich auch, ich habe nur nicht die ganzen details beschrieben weil ich dachte, das das nichts mit der drift uu tun hat, also konkret fitte ich die gemessene stromkurve zum bekannten sinus im programm und das selbe mache ich auch mit der gemessenen spannungskurve, somit habe ich für strom und spannung eine phase zum sinus in der software, die differenz ist die phase strom zu spannung am messobjekt. Deswegen fitte ich die strommessung zur spannungsmessung, wie ich es ausdrücken würde. Ich dachte die details erklären sich von selbst wenn ich von einem LCR messgeräte projekt schreibe. Auf diesem weg ermittel ich dann auch das rauschen für strom und spannung. Dein punkt netzbrumm unterdrückung ist denke ich ein wertvoller hinweis. Da ich 10s paus von messung zu messung mache, könnten kleine toleranzen der uC frequenz und schwankungen der netzfrq eine schwebung verursachen, das werde ich mal anpassen das die messdauer 20ms beträgt
Auch wenn Deine Anzahl der Messpunkte begrenzt ist, lieber länger messen und wenn es nur 4, besser 16 Punkte pro Periode sind.
:
Bearbeitet durch User
Henrik V. schrieb: > Auch wenn Deine Anzahl der Messpunkte begrenzt ist, lieber länger messen > und wenn es nur 4, besser 16 Punkte pro Periode sind. Wenig punkte pro periode kann man machen, aber dann sollte die abtastfrequenz kein ganzzahliges vielfaches der messfrequenz sein. Das wird bei den hohen frequenzen für die messung gemacht, aber bis 1khz sollte es kein problem sein 20ms zu messen und mehr als 4 punkte zu sampeln pro periode, haben 128kB speicher, davon mindetesn di hälft zum messen für 2 kanäle, als 32 kB. Aber die letzte messung hatte wieder abweichungen zum oszi, da fehlt die idee Werde den aufbau nochmals komplett durchgehen müssen
Schiebe mal einen Sägezahn (intern wie extern erzeugt) rein. Wenn das Sample Timeming nicht stimmt oder zu viel Jitter hat, haut das rein.
Chantalle schrieb: > Werde den aufbau nochmals komplett durchgehen müssen erhöhe Einfach Einmal Den signal-rauschabstand. wenn Sich Die phase Dann Immer Noch Genauso Erratisch Benimmt, Liegt Es Am algorithmus, Sonst Wohl Eher An Deiner bandbreite. hast Du Schon Einmal Die fehlerfortpflanzung Deines messrauschens Auf Die phasenbestimmung Angesehen?
Rainer W. schrieb: > Chantalle schrieb: >> Werde den aufbau nochmals komplett durchgehen müssen > > erhöhe Einfach Einmal Den signal-rauschabstand. wenn Sich Die phase Dann > Immer Noch Genauso Erratisch Benimmt, Liegt Es Am algorithmus, Sonst > Wohl Eher An Deiner bandbreite. hast Du Schon Einmal Die > fehlerfortpflanzung Deines messrauschens Auf Die phasenbestimmung > Angesehen? Ich denke mal Signal Rauschabstand hat nicht wirklich was mit Drift zu tun, ich würde es auch nicht als "Erratisch" bezeichnen, ich habe kein Problem mit der Wiederholbarkeit. Und der Algorithmus zum Fitten funktioniert prinzipiell, also alle direkten Teste zeigt er richtig an, einzig die Langzeitmessung im Vergleich zum Oszilloskop hat eine Drift. Du musst nicht mehr Fehler hineindeuten als ich beschrieben habe. Fehlerfortpflanzung ist ein anderes Thema, da liegt eine Verwechslung vor und Messrauschen hat auch nichts mit Drift zu tun, Messung zu Messung ist sehr stabil. Das Problem bei der Langzeitdrift ist das man nicht zig Messungen hintereinander machen kann, das dauert immer 12h-24h für eine Messreihe.
:
Bearbeitet durch User
Chantalle schrieb: > Das Problem bei der Langzeitdrift ist das man nicht zig Messungen > hintereinander machen kann, das dauert immer 12h-24h für eine Messreihe. Da hast du ein interessantes Projekt, welche Messgrößen kannst du bei deinen Langzeitmessungen mit aufzeichnen. Wenn du die Abweichung zu deiner Referenz aufträgt, statt über Zeit mal zu anderen Messgrößen, sieht man zu irgendwelchen Größen eine Korrelation. Beispiel für weitere Messgrößen - Betriebspannung - Temperatur - Offset Strom oder Spannungsmessung - Taktfrequenz uC - ... so würde ich erst mal eingrenzen und dann überlegen wie das zusammenhängen kann
Hast Du denn eine Möglichkeit dir die Rohdaten rauszuziehen? Bei Drift reicht es ja, das alle fünf Minuten zu machen. Dann würde ich die Verarbeitung (Fit, Differenz, etc.) auf dem PC machen und weitere Untersuchung dort anstellen...
Das sollte sich mit Hausmitteln noch besser eingrenzen lassen. 1° ist nicht viel. - Ist die Phase am Oszi in der Langzeitmessung (evtl. thermisches Gleichgewicht abwarten) konstant? - Phase am Oszi reproduzierbar deutlich genauer als 1°? (Ein-/Ausschalten) - Phase am STM reproduzierbar deutlich genauer als 1°? (Ein-/Ausschalten und Neustart der Software) - Was macht die gedriftete Phasenlage am STM nach Ein-/Ausschalten bzw. Reset? Immer noch gedriftet oder wieder der ursprüngliche Wert? - Temperatur konstant? - Abstand zu Oszi Netzteil PC etc. deutlich erhöhen und beobachten - in anderem Raum aufbauen (evtl. Schwebung zu "fast" synchronen Störern) - mit Akku weg von Netzbrumm testen - Betriebsspannung auch (siehe Lutz) - Frequenz von Anregung und Abtastung um 10% variieren Rick schrieb: > Hast Du denn eine Möglichkeit dir die Rohdaten rauszuziehen? > Bei Drift reicht es ja, das alle fünf Minuten zu machen. > Dann würde ich die Verarbeitung (Fit, Differenz, etc.) auf dem PC machen > und weitere Untersuchung dort anstellen... Auf jeden Fall. Daten von STM und Oszi. Rohdaten ansehen. Auf beide nen Sinusfit legen und die Differenz Daten-Fit ansehen. Evtl. nimmt das Oszi nur den steilen Nulldurchgang und der Sinusfit wird durch kleine systematische Störungen verschoben. Zahl der Messpunkte, Messdauer etc. weicht beim Oszi sicher auch ab.
Stephan schrieb: > - Ist die Phase am Oszi in der Langzeitmessung (evtl. thermisches > Gleichgewicht abwarten) konstant? > - Phase am Oszi reproduzierbar deutlich genauer als 1°? > (Ein-/Ausschalten) > - Phase am STM reproduzierbar deutlich genauer als 1°? (Ein-/Ausschalten > und Neustart der Software) > - Was macht die gedriftete Phasenlage am STM nach Ein-/Ausschalten bzw. > Reset? Immer noch gedriftet oder wieder der ursprüngliche Wert? Das oszi ist permanent an, das oszi misst nur den bereich wo die nulldurchgänge von strom und spannung liegen und speichert dies alle 10s, plus minus eingen ms misst auch der stm Die daten vom oszi werden mit einem script ausgewertet, also die rohdaten, wegen begrenzten speicher und dem wunsch nach hoher auflöung sehe ich aber nicht die ganze periode in diesen Daten. Hier sehe ich eine drift, die größer ist als die vom stm, es driften letztendlich beide messungen rauf und runter. Es ist aber nicht klar was messfehler ist und was wirklich echt ust, wenn das messobjekt sich tatsächlich verändert. Ein Ausschalten am stm oder reset bewirken keine änderung des ergebnisses.
Chantalle schrieb: > Die daten vom oszi werden mit einem script ausgewertet, also die > rohdaten, wegen begrenzten speicher und dem wunsch nach hoher auflöung > sehe ich aber nicht die ganze periode in diesen Daten. > Hier sehe ich eine drift, die größer ist als die vom stm, es driften > letztendlich beide messungen rauf und runter. > Es ist aber nicht klar was messfehler ist und was wirklich echt ust, > wenn das messobjekt sich tatsächlich verändert. > > Ein Ausschalten am stm oder reset bewirken keine änderung des > ergebnisses. Es driften also Oszi und STM. Das Oszi sogar mehr. Da würde ich mal mindestens deine Kommunikation als erratisch bezeichnen... Ausschalten/Reset am STM liefert genau das vorherige (gedriftete) Ergebnis, richtig? Und 2-20 Stunden später ists um 1° verschoben und Ausschalten/Reset liefert aber wieder genau das unmittelbar vorherige Ergebnis, richtig? Dann ists wohl eher eine Abhängigkeit von Temperatur Luftfeuchte etc. des Prüflings. Schwebung mit Störsignalen ist dann eher unwahrscheinlich. Vorausgesetzt du gehst bei der Analyse einigermaßen planvoll vor, wo ich mir inzwischen aber nicht so ganz sicher bin. Wenn die Oszi-Messung mehr driftet taugt es wohl nicht als Referenz (Oszi selbst oder Messmethode). Wenn der Prüfling driftet musst du für konstante Bedingungen sorgen, dann driftet der stationär auch nicht mehr. Wenn der Kopf driftet vielleicht mal paar Tage Abstand und neu überlegen.
Was mir imer wieder hilft (wir setzten die Sinusfit an vielen Stellen ein ;) ): Ein Blick auf die Residuen und mit dem Scope mal FFT schauen. Harmonische sind nicht das Problem, aber andere Störfrequenzen, gerade deutlich Tiefere, die dann im Messfenster eine Rampe hinterlassen. Wenn Du die Rohdaten Deiner Messungen hast, dann würde ich mir die Residuen von U und I bei den erwähnten extremen Schwankungen ansehen. Dann sind da immer noch die Sampleclocks für ADC und DAC. Wenn die nicht wirklich sauber und mit geringem Jitter sind, kann das böse Effekte haben. Was auch ein sehr netter Effekt ist, wenn der DAC und ADC quasi gleichzeitig sampeln, das kann dann mal etwas verrutschen und schon liegt man erratisch einen Sampleclock daneben. Keine Ahnung ob man dem STM beibiegen kann, bei gleichem Clock das eine auf steigende und das andere auf fallende Flanke zu legen. Aber das sollte nie nimmer nicht zur 'gleichen' Zeit passieren.
:
Bearbeitet durch User
Chantalle schrieb: > Hier sehe ich eine drift, die größer ist als die vom stm, es driften > letztendlich beide messungen rauf und runter. Hast Du Deine Auswertung mal auf synthetisch generierte Daten losgelassen? Da kann man dann auf das ideale Signal mal Rauschen oder andere Störkomponenten draufrechnen und schaut, wie empfindlich die eigentliche Rechnung ist.
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.