Forum: Digitale Signalverarbeitung / DSP / Machine Learning Digitaler Integrator auf Rechtecksignal - Driftkompensation funktioniert nicht


von Karsten D. (kenny7537)


Lesenswert?

Guten Abend,

ich bin relativ neu im Thema digitale Signalverarbeitung und habe 
Probleme mit meinem Integrator.

Zur Anwendung:
Grob gesagt geht es darum an einem Prüfstand mittels eines Piezos die 
Druckänderung zu messen und aus dem Druckänderungssignal den Druck zu 
ermitteln.
Als Messaufnehmer verwende ich eine Verstärkerschaltung und einige 
Operationsverstärker, die das Signal konditionieren und der ADC eines 
STM32 nimmt das Signal dann auf (12Bit). Das Signal wird mit 1kHz an 
einen PC gesendet, wo die weitere Verarbeitung stattfindet.
Aber das nur am Rande, wo der Filter gerechnet wird, ändert am Prinzip 
ja wenig.

Im Verlauf der Versuche wird der Piezo über einige Sekunden mit 
konstanter Drucksteigerung beaufschlagt, bis ein eingestellter Zieldruck 
erreicht ist, das Profil der Druckänderung ist also grob ein 
Rechtecksignal, enthält aber auch höherfrequente Anteile, die durch die 
zum Prüfstand gehörige, pneumatische Druckregelung entstehen.
Das Drucksignal selbst muss also annähernd eine Sägezahnform haben.

Mein Problem: trotz Offsetkorrektur driftet mein integriertes Signal, es 
gibt also niederfrequente Komponenten, denen ich so nicht beikomme.
Ein Hochpass, den ich als Abhilfe implementiert habe, entfernt zwar die 
Drift, er nimmt allerdings auch die Rechteckform heraus.

An dieser Stelle komme ich nicht weiter, da mir die Erfahrung fehlt:
Das Problem wird ja nicht neu sein, also wie löst man so etwas 
normalerweise?

Es wäre toll, wenn mich jemand in die richtige Richtung schubsen könnte, 
wenn es sein muss geht auch ein kräftiger Tritt ;)

Viele Grüße und noch einen schönen Abend

Karsten

: Bearbeitet durch User
von Helge (Gast)


Lesenswert?

Ich kenne Druckaufnehmer eher mit DMS oder Tauchspule, mit Piezo lassen 
sich eher höherfrequente Messungen machen. Ich vermute, Piezos werden 
auch nicht ausreichend linear sein, um daraus einen guten Wert 
abzuleiten.

von Karsten D. (kenny7537)


Lesenswert?

Guten Morgen,

ja, das mag, aber wie steht es allgemein mit der 
Signalverarbeitungsfrage?

Wenn ich mit einem DMS ein langsames Rechtecksignal mit einer Drift 
erhalte, bin ich ja keinen Schritt weiter und sowas müsste man doch 
irgendwie in den Griff kriegen können?

von Achim S. (Gast)


Lesenswert?

Karsten D. schrieb:
> Wenn ich mit einem DMS ein langsames Rechtecksignal mit einer Drift
> erhalte, bin ich ja keinen Schritt weiter

Wenn dem so wäre, hättest du recht. Abe wenn dem nicht so ist?

Es gibt einen grundsätzlichen Unterschied zwischen piezoelektrischen 
Kraftsensoren und piezoresistiven Kraftsensoren (DMS).

Piezoresistive DMS lassen sich grundsätzlich auch für DC-Messungen 
einsetzen: wenn dauerhaft die selbe Kraft ausgeübt wird, dann liefern 
Sie auch dauerhaft das selbe Signal. Zumindest im Grundsatz, um Drifts 
und Einflüsse wechselnder Temperatur muss man sich immern och Gedanken 
machen.

Piezoelektrische Kraftsensoren lassen sich grundsätzlich nicht für 
DC-Messungen einsezten. Sie haben immer eine untere Grenzfrequenz. Was 
langsamer als diese ist (also z.B. der DC-Anteil des Signals) lässt sich 
damit nicht bestimmen. Bei vielen ICP-Sensoren musst du selbst den 
DC-Anteil des Signals abkoppeln, damit eine sinnvolle Messung möglich 
wird.

Wenn du das Ausgangssignal aufintegrierst, spielt natürlich genau der 
DC-Anteil die größte Rolle, weil genau der bei der Integration zu einem 
ständigen Anstieg des Signals führt. Von daher solltest du dich schon 
zuerst fragen, ob dein Ansatz überhaupt sinnvoll ist. Und es könnte 
dabei rauskommen, dass er für einen DMS-basierten Kraftsensor sinnvoll 
wäre, für einen piezoelektrischen Kraftsensor aber nicht sinnvoll ist.

Ein guter Einstieg wäre einfach mal zu sagen, welchen konkreten 
Kraftsensor du denn verwendest. Ist er überhaupt wirklich 
piezoelektrisch oder stand deine Kurzbezeichnung "Piezo" vielleicht 
unbewusst für piezoresistiv (also einen DMS)?

von Karsten D. (kenny7537)


Angehängte Dateien:

Lesenswert?

Guten Morgen,

vielen Dank für deine Ausführungen. Grundsätzlich bin ich mir absolut 
sicher, dass es wirklich ein Piezo ist, weil ich diesen selbst eingebaut 
habe.

Dass es da Probleme mit statischen Messungen gibt, ist mir grundsätzlich 
bewusst, nach dem Prüfstand kommt aber die reale Anwendung (über die ich 
leider nicht offen reden kann) und die ist dynamischer.
Ich wollte jetzt wirklich niemanden wegen der üblichen Fallstricke hier 
im Forum (XY-Problem, Salamitaktik, geheime Anwendung, usw.) verärgern 
und habe mir bei  meinem Eröffnungsbeitrag wirklich Mühe gegeben.
Die Aufbaubeschreibung war nur zur Erläuterung gedacht, evtl. hätte ich 
besser fragen sollen:

"Wie baut man einen funktionierenden digitalen Integrator, der ein 
driftbehaftetes Rechtecksignal integrieren kann?"
Antworten bitte möglichst auf diese Frage.

Anbei noch ein Bild. Das Signal ist grün, das integrierte Signal gelb. 
Man beachte die Skalierung des integrierten Signals (rechte y-Achse).

Viele Grüße
Karsten

von Achim S. (Gast)


Lesenswert?

Karsten D. schrieb:
> Grundsätzlich bin ich mir absolut
> sicher, dass es wirklich ein Piezo ist, weil ich diesen selbst eingebaut
> habe.

Ist "ein wirklicher Piezo" jetzt Piezoresisitv oder Piezoelektrisch? 
Beide beginnen mit "Piezo", beides sind aber ganz unterschiedliche 
Sensoren. Speziell im Hinblick auf die Behandlung des Gleichsignals.

Karsten D. schrieb:
> "Wie baut man einen funktionierenden digitalen Integrator, der ein
> driftbehaftetes Rechtecksignal integrieren kann?"
> Antworten bitte möglichst auf diese Frage.

Na, wenn du nicht mir mehr Info rausrücken willst, dann halt auch nur 
die entsprechend unspezifische Antwort: wenn dein Signal einen 
undefinierten Gleichanteil hat, dann wird ein echter Integrator auf 
lange Frist immer undefiniert davonlaufen. Wenn du das nicht willst, 
musst du den Gleichanteil entfernen. Du musst dich also entscheiden, 
welche Frequenzanteile du aufintegrieren willst, und welche du 
unterdrücken willst.

Den Gleichanteil entfernen kannst du direkt im Eingangssignal, z.B. 
indem du den Mittelwert über das Eingangssignal bildest und den jeweils 
vom Eingangssignal abziehst. Einfacher geht es ggf., indem du den 
Ausgang des Integrators selbst nochmal aufintegrierst und dieses Signal 
auf den Eingang gegekoppelst. Durch die Festlegung der Mittelungszeit 
bzw. der unterschiedlichen Integrationszeitkonstanten legst du fest, 
welche Frequenzanteile du integrieren willst, und welche untedrücken.

von Experte (Gast)


Lesenswert?

Karsten D. schrieb:
> nach dem Prüfstand kommt aber die reale Anwendung (über die ich
> leider nicht offen reden kann)

Kein Problem: 200,- € Netto, und Du bekommst eine Lösung von mir.

von Helge (Gast)


Lesenswert?

?? Das Verhältnis von Eingangssignal und ausgangssignal ist für einen 
piezoelektrischen Sensor ziemlich das, was ich erwarte. Der Eensor 
lagert im "verbogenen" Zustand irgendwo ein paar elektronen ein, der 
Ausgang des Integrators wird daher nicht den absoluten Druck 
wiedergeben. Mit einem piezoelektischen Sensor läßt sich nur dynamik 
abbilden, nicht statik.

von Heiner und sonst keiner (Gast)


Lesenswert?

Experte schrieb:
> Karsten D. schrieb:
>> nach dem Prüfstand kommt aber die reale Anwendung (über die ich
>> leider nicht offen reden kann)
>
> Kein Problem: 200,- € Netto, und Du bekommst eine Lösung von mir.
Ich biete die Lösung für 150,- an inklusive MWST, aber nicht 
ausgewiesen, da Kleinunternehmerregelung.

von Walter L. (charly2)


Lesenswert?

Da gibt es aus keine praktikable/wirtschaftliche Lösung. Wenn der Druck 
gemessen werden soll, setze einen Drucksensor ein. Vergleichbar mit 
Mems-Gyroskopen,, aus denen man einen künstlichen Horizont bauen will, 
das scheitert aus den gleichen Gründen.

von Walter T. (nicolas)


Lesenswert?

Der zweite Post sieht doch brauchbar aus. Mit dem Bild kann man etwas 
anfangen.

Ich sehe zwei Möglichkeiten:

a) Der hochfrequente Teil ist Rauschen. Das Rauschen ist in der gleichen 
Größenordnung wie das Nutzsignal. Dann hast Du eh nur begrenzte 
Genauigkeit und es wird nicht besser, solange das Rauschen nicht 
unterdrückt wird.

b) Es ist gar kein Rauschen, sondern das hochfrequente ist Nutzsignal. 
Dann wird hier massiv unterabgetastet und es wird nicht besser, solange 
nicht die Abtastfrequenz erhöht wird.

Um zu wissen, welcher Fall zutrifft, müsste man das System besser 
kennen.

: Bearbeitet durch User
von Xilinx-user (Gast)


Lesenswert?

Karsten D. schrieb:
> trotz Offsetkorrektur driftet mein integriertes Signal,

Wie betreibst du denn die Offsetkorrektur? Sie scheint offensichtich 
nicht zu funktionieren. Und wie arbeitet der Integrator? Ich nehme an, 
nicht bandbegrenzt, sondern er nimmt alles was er bekommt, oder?

von Karsten D. (kenny7537)


Angehängte Dateien:

Lesenswert?

Guten Morgen,

ihr habt ja recht...

In der Zwischenzeit haben sich ein paar neue Erkenntnisse ergeben:
Wie Xilinx-user sagt, scheint etwas mit der Offsetkorrektur nicht zu 
stimmen. Diese erfolgt zweistufig: Das Eingangssignal wird in der 
Hardware auf 0V justiert, die letzte Drift wird in der Software (vor dem 
Integrator) herausgerechnet. Dazu wird der Mittelwert aus einigen 
tausend Werten berechnet, gespeichert und ab dann immer abgezogen.

Meine Schaltung verfügt aktuell über zwei Messkanäle, von denen es mir 
bei einem der Kanäle offensichtlich besser gelungen ist, die Hardware 
abzugleichen. Dieser Kanal driftet auch weniger.

Ich werde das weiter untersuchen: die nächste Hardwaregeneration bekommt 
Spindeltrimmer zum besseren Abgleich, außerdem werde ich es mal mit 
einer AC-Kopplung versuchen. Ihr seid recht überzeugend, dass ich hier 
Mist versuche.

Zusätzlich habe ich meine Rohdaten mal untersucht, und den Offset 
nachträglich einstellbar gemacht. das Integral habe ich dann 
nachträglich manuell berechnet. Damit kann ich das Ende der Kurve wieder 
nach unten drücken, es bleibt nur eine "Beule" zurück, also vermutlich 
ein niederfrequenten Störsignal.
Außerdem drückt sich der Anfang des Signals (wo eigentlich kein 
Eingangssignal ist, also für ein paar Sekunden 0V) ins Negative.
Ich habe das Bild dazu und auch die Exceltabelle mal angehängt, nur für 
den Fall, das es jemanden interessiert.

Blau = Eingangssignal, rot = vom System integriertes Signal, grün = 
Signal mit manuell angepasstem Signaloffset, bis die Null wieder etwa 
erreicht wurde.

Viele Grüße

Karsten

PS: Die xlsx ist recht groß, da über 90k-Werte. Ich hoffe, das ist 
erlaubt.

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
Noch kein Account? Hier anmelden.