- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Phasenverschiebung bestimmen

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    11.05.2007
    Ort
    Hannover
    Alter
    35
    Beiträge
    40

    Phasenverschiebung bestimmen

    Anzeige

    Praxistest und DIY Projekte
    Ich komme mal wieder bei dem selben projekt nicht weiter.. Erfahrene Helfer erwünscht ^^

    Ich kriege ultraschall-Signall von 4 Piezos (ca 40kHz mit schwimmende Frequenz - +/- 1kHz, damit man verschiebungen über 1*lambda auch detektieren kann, + störungen). Ich will nun die Phasenverschiebung zwischen Kanal 1 und jeweils jedem anderen Kanal bestimmen - zu vereinfachung gelte, dass am alle anderen Kanäle dem Kanal 1 folgen oder gleichen, aber nicht vorauslaufen.

    Die frage ist wie. Ich habe mir überlegt dass man an einem Substrahierer die kanäle bis zu höchster auslöschung schieben muss (es ist auch nicht schlimm wenn das ergebnis dem signal leicht folgt)

    Analoge lösung:
    Problem 1: woher weiß ich in welche richtung zu schieben (ok, hier könnte man ja einfach durchlaufen..) Problem 2: wie schieb ich analog die Phase, ohne andere eigenschaften des signals zu verändern?

    Digitale Lösung:
    Um 40kHz optimal zu erfassen muss ich mit mindestens 80kHz abtasten (nach Nyquist), und zwar jedes Kanal. Der AVR schafft das so schnell nur auf einem kanal. Also weitere Kanäle auf schnellen ADCs nehmen?
    Leider wirds teuer 3 ADCs zu verbauen: gibt es denn so preiswerte ADCs bzw ein ADC der mehrere Kanäle abwechseln und schnell genug abtasten Kann.


    grüße

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo Maverick!

    Ich möchte dir helfen, aber ehrlich gesagt verstehe ich dein Problem nicht genug gut dafür.

    Du hast z.B geschrieben:

    Ich will nun die Phasenverschiebung zwischen Kanal 1 und jeweils jedem anderen Kanal bestimmen -
    und das verstehe ich nicht. Ich denke eben, dass du den Abstand zwischen den Impulsen einfach messen möchtest, oder ?

    Die analoge bzw. digitale Lösung ist von zulässigen Fehler abhängig. Bei digitaler Lösung werden angebich drei µC's günstiger als ein genug schneller ADC mit multiplexing.

    MfG

  3. #3
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Es gäbe da noch eine halb-analoge methode. Man bestimmt analog mit einem Multiplizierer und Tiefpaß die Kreuzkorrelation der Signale. Einmal direkt, und einmal wird eines der Signale um 90 Grad Phasenverschoben. Die beiden ausgangssignale kann man dann relativ langsam Digitalisieren und im µC daraus den Phasenwinkel bestimmen über den Arcustangens.

    Als etwas vereinfachte Version könnte man die beiden Signale in Rechecksignale umwandeln und dann einen digitalen Phasenvergleicher nutzen, z.B. als Teil eines 74HC4046. Da reicht dann ein Kanal.

    Für die rein digitale Lösung wäre eine Möglichkeit ein genügend schneller µC wie z.B. ein PIC33.... . Da gehen dann auch 2 Kanäle mit 80 kHz oder mehr.

    Wenn die Signale wenig Störungen haben, kännte man die Phase auch über die Verzögerungszeit zwischen den Nulldurchgängen bestimmen.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Am einfachsten das Signal digitalisieren und durch ein EXOR jagen. Das digitalisieren kann in diesem Fall ein einfacher Schmi trigger machen. Auf diese Art wurden (weden) ppm
    Signale im Servo zur Steuerung ausgewertet.

    Gruß Richard

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    03.05.2010
    Beiträge
    5

    Re: Phasenverschiebung bestimmen

    Hi, Maverick89,

    "Ich kriege ultraschall-Signall von 4 Piezos (ca 40kHz mit schwimmende Frequenz - +/- 1kHz, damit man verschiebungen über 1*lambda auch detektieren kann, + störungen). Ich will nun die Phasenverschiebung zwischen Kanal 1 und jeweils jedem anderen Kanal bestimmen - zu vereinfachung gelte, dass am alle anderen Kanäle dem Kanal 1 folgen oder gleichen, aber nicht vorauslaufen."

    In der Funkortung, Dopplerpeiler der Luxusklasse haben eine ähnliche Aufgabe - da sind die Phasen eines Signals an mehreren Antennen zu messen.
    Zusätzliche Erschwernis: Amplituden oder Frequenzmodulation des zu peilenden Signals.

    Lösung, hier angepaßt: Du nimmst Deinen Kanal 1 als Referenzkanal.
    Dessen Signal formst Du durch Begrenzung zum Rechteck.
    Gleichzeitig erzeugst Du ein um 90° verschobenes Hilfssignal von diesem Rechteck, dazu könnte eine PLL genügen, die auf doppelter oder vierfacher Frequenz schwingt und heruntergeteilt wird für den Phasenvergleich. Aus der Teilerkette leitest Du das Quadratursignal ab.

    Die Kanäle 2..4 sind die Messkanäle. Die tastest Du der Reiche nach ab, das Multiplexsignal heisse "Messsignal".
    Nun miss die Differenzphase zwischen Mess- und Referenzsignal.
    Beispielsweise mit einem Quadraturmischer, zwei Tiefpässen, A/D-Wandlung und Berechnung des cotangens.

    Durch das Multiplexen gewinnst Du drei Differenzen - und das sollte für Deine Anwendung ausreichen.

    Wenn Dein Multiplexer schnell genug ist, kannst Du die Messwerte über mehrere Zyklen des Multplexers mitteln.

    Ciao
    Wolfgang Horn

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    11.05.2007
    Ort
    Hannover
    Alter
    35
    Beiträge
    40
    Bayho144, Besserwessi:

    die Lösung klingt interessant, natürlich nicht unkompliziert.

    Richard's post hat ich auf folgende idee gebracht: Ich verstärke den signal stark (=> rechtecksignal) um amplituden-differenten zu unterdrücken und jags durch den scmitt-trigger.
    Umschaltungen des triggers lösen interrupts im cntroller aus, der dann die Zeiten der umschaltung speichert.

    Nun wird im uC aus der reihe von aufgenommenen umschaltungen eine zeitdifferent bestimmt, bei der die summe der differenzen der Zeiten am kleinsten ist.

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von Maverick89
    Bayho144, Besserwessi:

    die Lösung klingt interessant, natürlich nicht unkompliziert.

    Richard's post hat ich auf folgende idee gebracht: Ich verstärke den signal stark (=> rechtecksignal) um amplituden-differenten zu unterdrücken und jags durch den scmitt-trigger.
    Wenn Du nach dem schmitt Trigger noch ein Exor...

    (quote)
    A B Q
    0 0 0
    0 1 1
    1 0 1
    1 1 0
    (/Quote)
    ...setzt entspricht de Länge der 1 Pulse der Phasen Differenz der Eingänge, einfach Q auf einen capture Zähler legen. Allerdings sagt Q nicht aus welcher Eingang vor b.z.w. nacheilt. Das muss also noch eine geeignete Verknüpfung folgen.

    Gruß Richard

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    11.05.2007
    Ort
    Hannover
    Alter
    35
    Beiträge
    40
    Zitat Zitat von Richard
    Zitat Zitat von Maverick89
    Bayho144, Besserwessi:

    die Lösung klingt interessant, natürlich nicht unkompliziert.

    Richard's post hat ich auf folgende idee gebracht: Ich verstärke den signal stark (=> rechtecksignal) um amplituden-differenten zu unterdrücken und jags durch den scmitt-trigger.
    Wenn Du nach dem schmitt Trigger noch ein Exor...

    (quote)
    A B Q
    0 0 0
    0 1 1
    1 0 1
    1 1 0
    (/Quote)
    ...setzt entspricht de Länge der 1 Pulse der Phasen Differenz der Eingänge, einfach Q auf einen capture Zähler legen. Allerdings sagt Q nicht aus welcher Eingang vor b.z.w. nacheilt. Das muss also noch eine geeignete Verknüpfung folgen.

    Gruß Richard
    Im Prinip ja, allerdings nur wenn phi < lambda (also verschiebung kleiner einer wellenlänge). Da bei mir aber verschiebungen über einer wällenlänge auftreten können (die dank der variierenden frequenz aber nachweisbar sind), klappts mit dem XOR soweit ich verstehe nicht..

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.11.2006
    Beiträge
    463
    Beim Bestimmen der Phasenverschiebung z.B. durch Korrelation bekommt man immer noch recht gute Übereinstimmungen, wenn das Signal um einige wenige Schwingungen verschoben ist, solange die Zeitdifferenz zwischen den Signalen kleiner als etwa 1 geteilt durch den Frequenzunterschied zwischen minimaler und maximaler Frequenz ist. Dieser Frequenzunterschied ist jedoch andererseits durch den begrenzten Frequenzgang der Ultraschall Sender/Empfänger begrenzt. Bringt dir die genaue Phasenverschiebung auch etwas, wenn es möglicherweise noch nicht detektierte Verschiebungen um einige wenige komplette Schwingungen gibt?

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    03.05.2010
    Beiträge
    5
    Hi, Maverick89,

    "Im Prinip ja, allerdings nur wenn phi < lambda (also verschiebung kleiner einer wellenlänge). Da bei mir aber verschiebungen über einer wällenlänge auftreten können (die dank der variierenden frequenz aber nachweisbar sind), klappts mit dem XOR soweit ich verstehe nicht.."

    Noch ein Beispiel aus der Funkpeilerei: Faustformel ist 0,3 Lambda für die größte Phasendifferenz.
    Denn +0,5 Lambda sind identisch mit -0,5 Lambda, und davon muss man sich so weit verhalten, wie sich Fehler akkumulieren können.

    Breitbandige Interferometer gibt es beispielsweise für den Frequenzbereich von 1,5 bis 30 MHz, also viele Oktaven - und die Interferometer haben viele Antennen, beispielsweise in einem logarithmisch periodischen Abstand.

    Ciao
    Wolfgang Horn

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen