Hallo, ich bin dabei eine Schaltung zu entwerfen, die es mir möglich macht einen Piezosensor auszulesen. Die Piezosensoren werden als Vibrationssensoren verwendet. Damit soll präzise der Einschlagzeitpunkt eines Balls auf einer Platte gemessen werden, um dann der Einschlagsort (Trilateration) zu bestimmen. Ein paar Überlegungen: I. Das Signal muss gleichgerichtet werden, da der Piezo ein AC Signal generiert. II. Es müssen Signale von 30mV bis 30V gemessen werden können. III. Die Zeitmessung übernimmt ein µC. Die Idee bis jetzt: Das Signal geleichrichten und dann mittels eines Komparators bei einem Schwellwert eine Flanke erzeugen. Der µC wird bei der Flanke getriggert und startet die Zeitmessung. Für die Gleichrichtung habe ich die Schaltung im Anhang erstellt (http://www.planetanalog.com/document.asp?doc_id=528005) . Ich habe nun ein Problem mit der Simulation. Die Schaltung funktioniert wunderbar wenn ich sie mit einem Puls anrege. Positiv wie negativ. Wenn ich nun aber eine Sinusspannung anlege, dann wirkt die Schaltung wie ein Halbwellengleichrichter und die negative Halbwelle wird nicht mehr gleichgerichtet. Es liegt am OPV (OPA320). Wenn ich ein anderes Modell verwende (z.b. OPA364), dann funktioniert die Schaltung wieder. Das Problem ist, dass der OPA364 zu langsam ist und ich ihn deshalb nicht verwenden kann. Ich habe schon dutzende andere OPVs versucht! Aber ich finde keinen der schnell genug ist und single supply betrieben werden kann. Wieso funktioniert die Simulation mit einem Impuls und nicht mit einem Sinus? Wie sicher kann ich sein, dass die Schaltung wirklich funktioniert wenn ich sie aufbaue? Hat jemand eine Idee wie ich sonst noch meine Flanke für den µC generieren kann? Die Signalform des Sensors ist mir eigentlich egal (Aufwand für Gleichrichtung gerechtfertigt?) . Ich will nur eine Flanke sobald der Sensor eine Schwellwert erreicht. Und kann ich die Ausgangsspannung des Piezos mit den antiparallelen 1N4148 auf die Vorwärtsspannung der Dioden klemmen? Viele Grüße, fe_lab
Wenn eh schon ein Mikrocontroller benutzt wird, nehme einen single ended to differential Treiber wie den ADA4941-1 und danach einen differentiellen ADC. Den dann einfach die ganze Zeit auslesen, und bei einer Änderung des Wertes Messung starten und aufzeichnen. Dann kannst du auch direkt positive und negative Werte messen. (Den Treiber kann man auch mit zwei OPVs bauen, wie im Datenblatt des ADA4941-1 gezeigt)
fe_lab schrieb: > Die Piezosensoren werden als Vibrationssensoren verwendet. Damit soll > präzise der Einschlagzeitpunkt eines Balls auf einer Platte gemessen > werden, um dann der Einschlagsort (Trilateration) zu bestimmen. > > Ein paar Überlegungen: > > I. Das Signal muss gleichgerichtet werden, da der Piezo ein AC Signal > generiert. Nein. > II. Es müssen Signale von 30mV bis 30V gemessen werden können. Nein. > III. Die Zeitmessung übernimmt ein µC. Ja. [schnipp] > Hat jemand eine Idee wie ich sonst noch meine Flanke für den µC > generieren kann? Die Signalform des Sensors ist mir eigentlich egal > (Aufwand für Gleichrichtung gerechtfertigt?) . Ich will nur eine Flanke > sobald der Sensor eine Schwellwert erreicht. Noch nicht mal. Wenn ein Ball auf die Platte auftrifft, dann regt er die Platte zu Schwingungen an, die der Piezo wiederum aufnimmt und als elektrisches Signal bereitstellt. Auf dem Oszi sieht das Signal wie eine abklingende Schwingung aus. Resonanzfrequenz und Dämpfung werden durch die mechanischen Eigenschaften der Platte bestimmt. Wenn dich der Zeitpunkt des Ballaufschlags interessiert, dann mußt du das Signal einfach nur verstärken und begrenzen und dann die erste Flanke "einfangen". Über die Verstärkung stellst du dabei die Schwelle ein, ab der du ein Anstoßen der Platte als auftreffenden Ball ansiehst. Das wird zwar sicher variieren, aber bestimmt nicht zwischen 30mV und 30V. Insbesondere kann dir vollkommen egal sein, wieviel stärker das Signal ist als das von dir definierte Minimum. Allenfalls wirst du den Vorverstärker vor zu hohen Spannungen schützen müssen, z.B. mit zwei antiparallel geschalteten Dioden. Wenn du als Vorverstärker Single-Supply OPV nimmst, dann begrenzen die die Spannung an ihren Ausgängen ohnehin gleich. Bleibt noch das Problem, daß ein Ereignis dir viele Flanken auf jedem Kanal liefert. Im einfachsten Fall definierst du eine geeignete Totzeit nach der ersten Flanke (das ist ja die einzige die dich interessiert). Da die Folgefrequenz der Ereignisse eher gering sein dürfte, kannst du ruhig großzügig sein und z.B. eine Sekunde wählen. Bis dahin ist der Impuls sicher abgeklungen.
Kai Klaas schrieb: > Wie ist denn die Quellimpedanz für deinen Piezo? Der Piezo hat eine Impedanz von 400 Ohm. Axel Schwenke schrieb: > Wenn du als Vorverstärker Single-Supply OPV nimmst, dann begrenzen die > die Spannung an ihren Ausgängen ohnehin gleich. Bleibt noch das Problem, > daß ein Ereignis dir viele Flanken auf jedem Kanal liefert. Im > einfachsten Fall definierst du eine geeignete Totzeit nach der ersten > Flanke (das ist ja die einzige die dich interessiert). Da die > Folgefrequenz der Ereignisse eher gering sein dürfte, kannst du ruhig > großzügig sein und z.B. eine Sekunde wählen. Bis dahin ist der Impuls > sicher abgeklungen. Danke für die Tipps. Die Piezos können, wenn sie direkt getroffen werden, eine Spannung von ca. 30V erreichen. Ich muss halt nur die OPV davor schützen. Das kleinste Signal das wir gemessen haben, bei eine langsamen Ball und größter Entfernung zwischen Einschlagort und Sensor, sind etwa 30mV. Gerald M. schrieb: > Wenn eh schon ein Mikrocontroller benutzt wird, nehme einen single > ended > to differential Treiber wie den ADA4941-1 und danach einen > differentiellen ADC. > Den dann einfach die ganze Zeit auslesen, und bei einer Änderung des > Wertes Messung starten und aufzeichnen. > Dann kannst du auch direkt positive und negative Werte messen. > (Den Treiber kann man auch mit zwei OPVs bauen, wie im Datenblatt des > ADA4941-1 gezeigt) Ich hatte eigentlich gehofft, die Signalverabeitung analog zu erledigen. Ein ADC würde ich nur dann nehmen, wenn nichts anderes klappt.
Mein Problem ist die große Bandbreite der Signale. Da ich für eine ideale Zeitmessung für 30mV, 300mV und 3000mV "idealerweise" immer den gleichen Output generieren sollte. Der zeitliche Fehler zwischen den verschiedenen Inputwerten sollte nicht größer sein als 1µs. Ich glaube langsam, dass das Analog nicht zu erreichen ist.
Ich entschuldige mich dafür, dass ich schon wieder in den Thread poste, aber ich wollte nochmal ein bisschen Klarheit zu dem Sensorsignal schaffen. Ich habe ein Bild angehängt, dass das Messiganl von zwei Piezosensoren zeigt. Dabei schwingt jeder Piezo mit seiner Resonanzfrequenz von 4,4kHz. Diese Schwingung wird dann noch von der Schwingung der Platte auf der die Sensoren befestigt sind überlagert. Gemessen werden soll die Zeitdifferenz zwischen den Signalen. Wenn ich das Signal mit einem ADC aufnehme, dann könnte ich das Softwaretechnisch lösen. Doch geht das auch (mit vertretbarem Aufwand) Analog?
Kannst du mal das Signal bei den 4,4kHz Hochpass/Bandpassfiltern? Dann sollte ein ganz vertretbarer Sinus raus kommen, der wahrscheinlich deutlich besser auszuwerten ist.
>Der zeitliche Fehler zwischen den verschiedenen Inputwerten sollte nicht >größer sein als 1µs. Aber die Periode der 4,4kHz Eigenschwingung beträgt ja schon über 200µs. Wie soll das gehen? Schau doch mal selbst deinen Plot an. Wie willst du bei der unteren Kurve den Einsatz auf 1µs genau bestimmen? 10...20µs, besser geht es wohl nicht. Wenn du ein resonantes System hast, dann hast du eine charakteristische Einschwingzeit. Ich schätze mal, daß du für 1µs Auflösung hier Sensoren mit erheblich höherer Resonanzfrequenz brauchst. Da spielt es keine Rolle, ob du das analog oder digital machen willst.
fe_lab schrieb: > Mein Problem ist die große Bandbreite der Signale. Da ich für eine > ideale Zeitmessung für 30mV, 300mV und 3000mV "idealerweise" immer den > gleichen Output generieren sollte. Ich dächte doch, ich hätte mich klar genug ausgedrückt. Wenn das schwächste Signal, das du von deinem Piezo-Sensor erhältst, 30mV Spitzenwert hat. Und wenn dein µC ab 3V einen H-Pegel erkennt, dann mußt du das Signal um Faktor 100 verstärken. Fertig. Wenn der Piezo 100mV liefern sollte, dann würde der Verstärker nominell 10V liefern. Aber mit 5V Betriebsspannung ist bei 5V Spitzenspannung ohnehin Schluß (Begrenzung). Eine Verzögerung wird jetzt noch dadurch entstehen, daß zwischen Aufprall des Balls (Nulldurchgang des ersten Schwingungszugs) und dem Erreichen der Schaltspannung eine gewisse Zeit vergeht. Diese Zeit wird bestimmt von der Resonanzfrequenz und der Amplitude. Frequenz sollte für alle Sensoren gleich sein, Amplitude logischerweise nicht. Jetzt müßtest du halt mal messen, wie stark sich die Amplitude für den nächsten und den fernsten Sensor unterscheidet und wieviel das ausmacht. Allerdings wird es einen gewissen Kompensationseffekt geben. Der dem Aufschlagort nächste Sensor kriegt die höchste Amplitude und löst "am zeitigsten" aus. Die anderen Sensoren sehen das Signal mit weniger Amplitude und lösen deswegen etwas verspätet aus. Im Endeffekt wird das so aussehen, als wäre der Schall im Holz etwas langsamer unterwegs, weil sich die normale Verzögerung (Laufzeit) und die zusätzliche Verzögerung durch den Amplitudenunterschied addieren (und zwar immer in der gleichen Richtung). Vermutlich wird dieser Fehler also durch den ohnehin notwendigen Abgleich wieder rausgerechnet. fe_lab schrieb: > Dabei schwingt jeder Piezo mit seiner Resonanzfrequenz von > 4,4kHz. Diese Schwingung wird dann noch von der Schwingung der Platte > auf der die Sensoren befestigt sind überlagert. Für korrekte Funktion müssen die Piezos mit der Platte verklebt werden. Du willst definitiv nicht, daß die noch mit ihrer Eigenfrequenz schwingen. Auch der o.g. Amplitudenunterschied von 30mV bis 30V löst sich dann in Wohlgefallen auf. Denn einen Piezosensor, der auf der Unterseite der Platte aufgeklebt ist, den kannst du nicht direkt mit dem Ball treffen.
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.