Ultraschall Laufzeitmessung

Moin!

Als kleiner (aber wichtiger, grundlegender) Teil meiner Diplomarbeit möchte ich mittels Ultraschall (etwa 40kHz) eine Entfernung, bzw. die Laufzeit bestimmen. Die Diplomarbeit ist in Informatik und beinhaltet auf eigenen Wunsch diesen Elektronik-Anteil.

Die Signalgeneration (und -verstärkung) und Signalverarbeitung erfolgt auf der selben Platine, nur der US-Lautsprecher und das US-Mikrofon sind mittels Kabel abgesetzt. Der Maximale Abstand zwischen Lautsprecher und Mikro ist etwa 200cm (minimal keiner, also 0cm).

Die verwendeten Lautsprecher und Mikros haben ein (gemessenes) Optimum bei 40,5kHz. Diese generiere ich per DDS und verstärke sie mittels einfachen Verstärker-ICs. Ein µC generiert mir kurze, 20 Schwingungen lange Impulse, während denen der Verstärker aktiviert ist. Da verschiedene Entfernungen gemessen werden, ist nur ein zyklische Messung möglich.

Jetzt mein Problem:

Die Hüllkurve der Amplitude des empfangenen Ultraschalls sieht auf dem Oszi etwa wie eine Gauß-Verteilung. Lautsprecher und/oder Mikro schwingen nach: Bei geringem Abstand von Lautsprecher und Mikro ist der Pegel sehr groß und die Nachschwingzeit gut zu sehen. Da ich auf die erste Schwingung detektieren möchte ist das kein Problem, allerdings ist deren Pegel sehr unterschiedlich groß.

Ich hatte bisher verschiedene Ansätze zur Signalverarbeitung und erhoffe mir dazu noch Hinweise, Ideen, Tipps, weiterführende Infos oder sogar Schaltplanvorschläge:

- Verstärkung und anschließend Schmitttrigger: Klappt bei großen Signalen brauchbar, wenn diese kleiner werden, erreichen die ersten Schwingungen nicht mehr die Schaltschwelle des Schmitttriggers (Idee: Verstärkung größer, so daß auch die kleinsten möglichen Signale noch deutlich in die Sättigung verstärkt werden oder AGC zur 'Normalisierung'). Bisher arbeite ich mit einem OpAmp zur Verstärkung und einem weiteren zum Scmmitttriggern. Mit OpAmps bin ich nicht sonderlich erfahren.

- Mixing oder AM-Demodulation der Hüllkurve (die Trägerfrequenz von

40,5kHz ist bekannt und auf der Platine vorhanden) und Schmitttriggerung auf diese. Dazu habe ich mir Schaltungen von Langwellen-Empfängern angesehen, aber hier habe ich keine Erfahrungen.

- Ich möchte den Phasenversatz zwischen Quellsignal und Empfangenen Signal messen, dazu möchte ich beide Signale Schmitttriggern und addieren. Hierbei habe ich ebenfalls das Problem, daß die Siganl-Amplitude des zugrunde liegenden Signals sehr unterschiedlich groß ist und evtl zu klein für die Schaltschwelle.

- Abstand genommen habe ich von Möglichkeiten die Frequenz oder Amplitude zu modulieren und dieses zu detektieren. Es erscheint mir aufwändiger als die anderen Ansätze.

Ich freue mich, wenn Ihr mir weiterführende Ideen zukommen lasst.

Ciao Dschen

--
Dschen Reinecke

=== der mit dem Namen aus China ===
 Click to see the full signature
Reply to
Dschen Reinecke
Loading thread data ...

"Dschen Reinecke" schrieb im Newsbeitrag news:ejanh6$s93$ snipped-for-privacy@kohl.informatik.uni-bremen.de...

Falscher Ansatz, weil der Empfangsverstaerkerfilter einschwingen muss. Erzeuge das Signal mit ansteigender und dann fallender Amplitude, du weisst zu welchem Zeitpunkt du die maximale Amplitude gesendet hast, und such das Maximum beim Empfang.

--
Manfred Winterhoff, reply-to invalid, use mawin at gmx dot net
homepage: http://www.geocities.com/mwinterhoff/
 Click to see the full signature
Reply to
MaWin

Hm, bist du dir sicher, dass das der richtige Ansatz ist?

Das beobachtete Problem ist auf die geringe Bandbreite des Übertragungssystems bestehend aus Signealerzeugung, Verstärkung, Umwandlung in Schall , Schalldetektion, Empfangsverstärkung und Demodulation zurückzuführen. Eine geringe Bandbreite bedeutet lange Einschwing- und lange Nachschwingzeit und damit eine Verfälschung des Ergebnisses.

Diese bewirkt bei der Amplitudenmodulation, die du vorschlägst ebenfalls eine "Zeitverzögerung" in der Hüllkurve. Diese kann man allerdings messen und dann als konstannte Abweichung berücksichtigen.

Außerdem ist die Auflösung bei einer Wellenlänge von ca. 1 cm ziemlich schlecht.

Wie machen kommerzielle Anbieter sowas? Von Balluff gibt es glaube ich Ultraschall Abstandssensoren mit einer Genauigkeit von 0,3mm.

Gruß

Stefan

Reply to
Stefan Brröring

Stefan Brröring schrieb:

Wenn sie bei durch unterschiedlichen Abstand bedingten unterschiedlicher Amplitude gleich bleibt...

Aber Auf dem Oszi sieht das so aus.

Ich möchte dafür den Phasenversatz messen. Darum habe ich extra darauf hingewiesen, daß ich sowohl Signalerzeugung, als auch -verarbeitung auf der selben Platine habe. Der Phasenversatz lässt sich auf dem Oszi sehr gut beobachten, ich denke eine Auflösung auf 40° oder sogar 20° sollte machbar sein, was etwa 1mm bzw. 0,5mm entspricht (Wellenlänge ist etwas unter 10mm).

Wenn mir allerdings unter bestimmten Umständen die erste Schwingung flöten geht, dann liege ich zwar auf den Millimeter richtig, aber eine Wellenlänge daneben.

Ciao Dschen

--
Dschen Reinecke

=== der mit dem Namen aus China ===
 Click to see the full signature
Reply to
Dschen Reinecke

Hallo,

Wie wäre es mit einer längeren oder gar Dauerstrich-Sendung und in gewissem zeitlichen Abstand Frequenzwechsel? Da sollte sich das Problem der Verstärkungsregelung ein wenig entschärfen. Du misst dann einfach die Zeit, die vergeht, bis der Frequenzwechsel beim Empfänger angekommen ist ... während sich die Eingangsstufen längst dem Pegel angepast haben.

Also, du sendest z.B. erst 2ms lang 40 khz und springst dann für 2ms auf

42 kHz. Gemessen wird nicht der Beginn der Sendung, sondern der Moment in dem die Perioden plötzlich kürzer werden ...

Frank

Reply to
Frank Esselbach

MaWin schrieb:

Ich wollte vermeiden das ganze Signal samplen zu müssen (oder ober analoge Max-Wert-Detektion gehen zu müssen). Zumal ich hier nicht zeitgleich weiß wann es angekommen ist, sondern nur ein oder zwei Schwingungen später weiß, daß eben der Max-Wert war.

Lieber ist mir eine Lösung, die mir zum richtigen Zeitpunkt eine digitale Information gibt ('Signal da'). Lässt sich das mit der einer solchen Dreiecks-AM machen?

Auf jeden Fall werde ich für meine manuellen Versuche ('erkenne ich schon die erste Schwingung?') mit dem Oszi das erzeugte Signal Modulieren (vermutlich aber testweise M-förmig, statt wie vorgeschlagen, A-förmig).

Danke schon mal für den Hinweis.

Wenn ich so ein moduliertes Signal normalisieren will, dann sollte ich eine Regelzeit von 5 Schwingungen vorsehen (bei momentan 20 Schwingungen pro Signal), oder was ist da gut, daß es mir nicht die AM rausregelt, aber trotzdem zeitnah ein Ergebnis liefert?

Ciao Dschen

--
Dschen Reinecke

=== der mit dem Namen aus China ===
 Click to see the full signature
Reply to
Dschen Reinecke

Frank Esselbach schrieb:

Dauernd kann ich nicht senden, da ich mehrere Meßstrecken habe, die ich nacheinander abfragen muß, ohne daß sie sich gegenseitig stören.

Daran hatte ich auch schon gedacht, aber die bisher verwendeten Ultraschall-Lautsprecher und -Mikros sind sehr schmalbandig mit der Frequenz.

Ich versuche möglichst die Signalverarbeitung nicht auf dem µC zu erledigen, sondern von der eingangs-Elektronik ein digitales Signal zu bekommen. Das sollte so auch gehen, aber ich habe keine Idee wie ich z.B. einen F/U-Umsetzer oder was hierfür passendes bauen soll.

Ciao Dschen

--
Dschen Reinecke

=== der mit dem Namen aus China ===
 Click to see the full signature
Reply to
Dschen Reinecke

Hi,

Könnte man das vielleicht auf eine Schwingung reduzieren? Dann entfällt die Unsicherheit ob der Empfänger nun die erste oder zweite Schwingung registriert hat.

Ansonsten wäre mein Ansatz eine kurze mit Pseudo-Random AM-modulierte Sequenz zu senden und dann eine Kreuzkorrelation zwischen gesendetem und empfangenen Signal zu berechnen. Dann weiss man auch gleich wie zuverlässig der Messwert ist.

Gruss Michael

Reply to
Michael Koch

Hi,

noch ein Hinweis. Bei Reflektometern wird die Empfindlichkeit des Empfängers proportional zur Zeit erhöht, d.h. der Empfänger wird um so empfindlicher je länger das Echo braucht.

Gruss Michael

Reply to
Michael Koch

Messung der Periodenlänge mit einem im MHz-Bereich laufenden binären Zähler und Decodierung der binären Ausgänge über eine Lookup-Table (RAM, EEPROM) ... ?

Frank

Reply to
Frank Esselbach

Hallo,

So in etwa würde ich das auch machen. Ausserdem würde ich auf das Abschalten triggern wollen, Einschwingvorgänge sind müßig zu detektieren, aber der Signalabfall nach dem Maximum ist viel einfacher. Wenn die Sender und Empfänger gut bedämpft sind, sollte da ein recht zuverlässiges Signal zu sehen sein. Da Du die Signale auch digital erstellst, müsstest Du ja auf die Periode hin abschalten können. steigende Rampe und senkrechter Abfall sollte das geeignetste Signal liefern. Ein Überschwingen nach einem solchen Signal sollte eher seltener passieren, als bei steil angeregten Hüllkurven. Energie weg, Signal wird kleiner scheint mir der Sicherste Trigger zu sein.

Marte

Reply to
Marte Schwarz

"Dschen Reinecke"

hingewiesen, daß ich sowohl Signalerzeugung, als

auf dem Oszi sehr gut beobachten, ich denke eine

entspricht (Wellenlänge ist etwas unter 10mm).

geht, dann liege ich zwar auf den Millimeter richtig,

Wo genau liegt jetzt eigentlich dein Problem? Wieso machst du die Verstärkung nicht einfach so groß dass alels in Sättigung ist, machst eine Fouriertransformation [32 Samples bei 80 oder 160kHz soltlen ausreichen] und schmeißt alles außer den 40 kHz raus. Danach nochmal digital _nahezu_ maximal verstärken und du hast 99,9%ig jede Welle erwischt...

MfG,

Markus

Reply to
Markus

"Dschen Reinecke"

messen, dazu möchte ich beide Signale Schmitttriggern

des zugrunde liegenden Signals sehr unterschiedlich

Dann skalier dein Signal logarithmisch. Logarithmieren kann man IMHO sogar analog machen.

Reply to
Markus

ausreichen]

Örks. Viel Erfolg...
Reply to
Ralph A. Schmid, DK5RAS

"Ralph A. Schmid, DK5RAS"

ausreichen]

Hoppla. In der Eile hat sich da ein kleiner logikfehler eingeschlichen. Man darf natürlich nur alle _oberhalb_ der 40Khz wegmachen, weil ja sonst der Anstieg flöten geht.

Reply to
Markus

ausreichen]

Nicht alle k=F6nnen mit DFT und FFT etwas anfangen. Aber um FFT wird er whk. nicht drumherumkommen, sodass dies ein guter Ansatz ist. FFT erzeugt allerdings ein wenig Zeitverz=F6gerung, durch den hohen Verbrauch von Rechenleistung. Bei der digitalen Filtertechnik ist das Verfahren aber unschlagbar. Die Rechenleistung sollte gleich beim CPU ber=FCcksichtigt werden.

Ich bezweifle, das komerzielle Ger=E4te FFT oder DFT verwenden, da muss es was einfacheres geben. Wie w=E4re es mit Frquenzmodulation und analoge Filtertechnik. Hier l=E4sst sich auch noch die Dauer bestimmen bis der Schall zur=FCckkommt. In einem Siemens-Buch hatte ich mal eine einfache Schaltung dazu gefunden (der SE555 wurde gerade vorgestellt).

Wenn das Signal hochgemsicht wird, gibt es fertige 200Hz und 500Hz breite Filter mit sehr steilen Flanken. Evtl. k=F6nnte auch ein Ladder-Filter n=FCtzlich sein (wenn es preiswert sein soll).

Ich find DFT und FFT sehr kompleziert. Mit ein wenig mehr Aufwand d=FCrfte doch auch die relative Geschwindigkeit zu bestimmen sein?

Reply to
Stefan Engler

Dschen Reinecke schrieb:

Hallo Dschen,

hier ein Link zu einer Applikation von Ti. Ist zwar nicht besonders genau, aber vielleicht ausbaufähig.

formatting link

Gruß Rolf

Reply to
Rolf Mennekes

Hallo Dschen,

suche mal nach Dichtemessung von Flüssigkeiten/flüssigen Gemischen mittels Ultraschall. Bei diesen Verfahren wird üblicherweise ein Konparator mit einstellbarer (via DAC) Schwelle verwendet. Allerdings ändert sich dort die Laufzeit nur mit geringer Dynamik, nämlich mit dem Flüssigkeitsstrom. Zur Zeitmessung noch das Stichwort TDC (Time-to-Digital-Conversion), eine deutsche Firma (welche?) bietet dafür spezielle ICs an.

Tom

Reply to
Thomas Reinemann

Distributor:

formatting link

MfG JRD

Reply to
Rafael Deliano

Dschen Reinecke schrieb:

Danke schonmal für die verschiedenen Ansätze, Ich habe jetzt die Amplitude mit einem Sägezahn moduliert. Das Ergebnis sieht schon deutlich besser aus. Momentan kann ich nur 0% (per Mute auf dem Verstärkerchip) und zwischen 50% und 100% Modulieren (per änderung der Referenzspannung am DDS-Chip AD9835), denn sonst kriegt der Schmitttrigger kein phasenrichtiges Signal für den µC hin.

Ich werde da mit einem µC-internem Timer basteln müssen. Zumal ich auch testen will, ob eine aktive Schwingungsauslöschung duch ein

180°-verschobenes Signal das Ergebnis noch verbessert (und dabei sowieso die Phasensynchronität des Schmitttrigger-Signals verliere).

Wie gesagt, ich bin am Testen der verschiedenen Ansätze und danke für diese.

Ciao Dschen

--
Dschen Reinecke

=== der mit dem Namen aus China ===
 Click to see the full signature
Reply to
Dschen Reinecke

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.