Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Afstand meten met ultrageluid

Pagina: 1
Acties:
  • 618 views sinds 30-01-2008
  • Reageer

  • Xqlusive
  • Registratie: Oktober 2003
  • Laatst online: 20-11 20:20
Ik ben bezig met een project waarbij ik afstanden wil meten met behulp van ultrageluid.

Ik heb hier nu een zender en ontvanger liggen, dit zijn de volgende 2 van het merk Prowave:

400ST10B (transmitter)
400SR10B (reciever)

http://www.prowave.com.tw.../ut/open-type/400s100.htm

Ik heb nu een opstelling gebouwd waarbij ik een functiegenerator op 40Khz op de transmitter aangesloten heb, en een scoop op de reciever.
Dit werkt allemaal prima, als ik de afstand verander zie ik het voltage van het signaal dat binnenkomt op de reciever inzakken en het signaal verschuift ook een beetje ten opzichte van het signaal op de transmitter.

Echter vraag ik me af hoe precies het mogelijk is om hiermee de afstand te bepalen, 0.1 mm is ongeveer de nauwkeurigheid die ik graag wil.

Ik was eigenlijk van plan om een paar pulsjes uit te sturen om daar het tijdsverschil tussen te meten, echter word het ontvangen signaal dusdanig slecht als ik het aantal periode's verlaag dat ik hiermee verplicht ben om de zender langer aan te laten staan.
Opzich hoeft dit geen probleem te zijn, ik sluit het toch aan op de pc, deze kan deze snelheid wel bij houden dacht ik zo.

Maar het word erg veel makkelijker als ik 1 enkele puls uitstuur, ik heb al gekeken naar de 400EP serie van Prowave, dit zijn pulse/tone burst transceivers. Deze lijken me beter omdat ze dus 1 enkele puls uitsturen met veel meer energie, zodat het makkelijker word om te ontvangen en te berekenen. Echter is dit dus een transceiver.

http://www.prowave.com.tw/english/products/ut/ep.htm

Zou het misschien mogelijk zijn om de pulsen uitgestuurd door de transceiver op te vangen met de reciever ? Of is het gebruik van alleen de transceiver beter ? Of dus toch misschien de manier die ik nu gebruik met losse zender en ontvanger ?

Verder staan er op de verschillende site's zo verschrikkelijk veel sensors dat ik door de bomen het bos niet meer zie, wat zijn belangrijke eigenschappen voor sensoren en ontvangers in afstandsmetingen ?

Verwijderd

Ff simpel stomweg rekenen: snelheid van geluid, pak ruwweg 350m/s. Dan wil je een resolutie van 0,1mm , dus 0,1mm / 350.000m/s = 2,85 * 10^-7, das dan 285 nanoseconden tussen twee pulsen.

Mogelijk, maar niet makkelijk. Lijkt me :) zeker omdat zo'n transmitters natrillen, dus als je ze op dezelfde print zet als je receiver moet je daar ook rekening mee gaan houden.

Nu ja, wsl heb ik weer een of andere gigantische rekenfout gemaakt hierboven, so don't let me put you down.

  • W.Wonderland
  • Registratie: Maart 2006
  • Laatst online: 18-11 18:51
Ik heb ooit eens de gedachte gehad om met ultrasonic aftandsmeting aan de gang te gaan maar tot op heden is dit nog niets geworden.
Ik heb wel een link naar Ti PDF misschien dat je er wat aan hebt: http://focus.ti.com/lit/an/slaa136a/slaa136a.pdf

Ben ook zeer benieuwd of je 0.1mm nauwkeurigheid kan halen. (Wat is je maximale afstand die je wilt meten met die nauwkeurigheid?)

  • jerbro
  • Registratie: September 2001
  • Niet online
Verwijderd schreef op donderdag 15 februari 2007 @ 11:28:
Ff simpel stomweg rekenen: snelheid van geluid, pak ruwweg 350m/s. Dan wil je een resolutie van 0,1mm , dus 0,1mm / 350.000m/s = 2,85 * 10^-7, das dan 285 nanoseconden tussen twee pulsen.
Als je een nauwkeurigheid van 0.1mm wilt kan je 0,2mm / 350.000m/s = 5.71 * 10^-7doen, dat is dan 517 nanoseconden. Het is namelijk 0.2mm omdat het geluid eerst heen gaat, en dan weer teruggekaatst wordt. En het geluid is dus 0.2mm onderweg geweest als je 0.1mm wilt meten.

Maar het blijft erg snel. Want om met 517 ns nauwkeurigheid te meten moet je je data erg snel binnenhalen. De paralelle poort schijnt maximaal 330 KHz aan te kunnen, en dat is te langzaam, voor die 517 ns nauwkeurigheid heb je minimaal 1.75MHz nodig. Ook de geluidskaart gaat waarschijnlijk te langzaam zijn. De seriele poort kan vaak maximaal 115200 bits per seconde, en is dus ook te langzaam. Dus moet je een andere (vaak lastigere manier) gebruiken om de meetgegevens op de computer te krijgen.

Ook moet je de temperatuur goed in de gaten houden. Het verschil in geluidssnelheid in de lucht is namelijk ook afhankelijk van de temperatuur(hier staat een calculator om de geluidssnelheid bij een temperatuur te berekenen). Als je de schakeling bij een bepaalde temperatuur calibreert, en je gaat vervolgens ergens meten waar het 10 graden warmer is kan je al behoorlijke afwijkingen krijgen (de grootte van de afwijking is afhankelijk van de te meten afstand)

[ Voor 5% gewijzigd door jerbro op 15-02-2007 12:31 . Reden: linkjes toegevoegd ]


  • Xqlusive
  • Registratie: Oktober 2003
  • Laatst online: 20-11 20:20
Ik heb het net ook even snel even uitgerekend, volgens mij moet ik idd op een veel hogere frequentie werken:

stel ik neem 40Khz, dan is 1 trilling 25µs, dit betekent dat als ik er 1 trilling naast zit, ik al een fout heb 8.5 mm (25µs * 340m/s).

Het is namelijk erg moeilijk om te zien wanneer de eerste periode word ontvangen, als ik op de scoop kijk, dan bouwt de ontvangen sinus zich langzaam op tot ongeveer 300mV op 5cm afstand.


Jerbro:
Als ik werk met de zender en ontvanger is het volgens mij wel ongeveer 300ns...
Ik denk dat het erg prijzig word als ik voor nog veel hogere frequenties ga, niet alleen voor de ultrasoon sensors, maar ook qua a/d conversie en dergelijke...
zijn er misschien nog andere oplossingen mogelijk die wel makkelijker de gewenste nauwkeurigheid halen ? laser misschien, weet iemand daar wat meer vanaf ?

  • Xqlusive
  • Registratie: Oktober 2003
  • Laatst online: 20-11 20:20
Ik bedenk me net ineens wat, zou het volgende misschien werken:

Als ik op 40Khz uitzend, kan elk moment het eerste pulsje ontvangen worden, als ik dan sample op 80Khz word om de 12.5µs gesampled en heb ik kans dat ik te laat ben. Als ik nu gewoon sample om de 300ns, dan weet ik eigenlijk zeker dat ik het signaal direct op pik. En dan kan ik toch de delay uitrekenen ?


Dit kan toch ?
Of is dit nu ongelovelijk grote onzin ?

Ik ben eigenlijk alleen op zoek naar de top van een sinus, deze moet heel nauwkeurig bepaald worden, om te zien of het de eerste is, hiervoor hoeft de ultrasone frequentie niet verhoogd te worden toch ? dat is alleen belangrijk als ik de eerst puls mis, dan heb ik direct een fout van 8mm, maar deze kan ik vergelijken met de oude waarde van de afstand, en dan weggooien, want 8mm is niet mogelijk in dit project.

[ Voor 34% gewijzigd door Xqlusive op 15-02-2007 13:03 ]


  • jerbro
  • Registratie: September 2001
  • Niet online
Xqlusive schreef op donderdag 15 februari 2007 @ 12:31:
Als ik werk met de zender en ontvanger is het volgens mij wel ongeveer 300ns...
Dat ligt eraan hoe je ze monteert. Als je de afstand van de zender tot de ontvanger gaat meten kom je inderdaad uit op 300 ns.

Maar als je de zender en ontvanger naast elkaar zet komt je volgens mij op het dubbele uit.
Je moet namelijk kijken naar de weg die het geluid aflegt. Als het geluid door iets weerkaatst wordt moet het heen en terug, en is de afstand die het geluid aflegt dus twee keer zo groot als de afstand die je meet.
code:
1
2
3
4
5
6
7
8
zender    ---->   geluid    ---->   ontvanger
//afstand van zender tot ontvanger, ongeveer 300 ns voor 0.1mm


zender    ---->  geluid     ---->   | 
                                    |  Iets dat het geluid weerkaatst
ontvanger <---   geluid     <----   |
//afstand tot object dat het geluid weerkaatst, ongeveer 600 ns voor 0.1mm
Xqlusive schreef op donderdag 15 februari 2007 @ 12:49:
Ik bedenk me net ineens wat, zou het volgende misschien werken:

Als ik op 40Khz uitzend, kan elk moment het eerste pulsje ontvangen worden, als ik dan sample op 80Khz word om de 12.5µs gesampled en heb ik kans dat ik te laat ben. Als ik nu gewoon sample om de 300ns, dan weet ik eigenlijk zeker dat ik het signaal direct op pik. En dan kan ik toch de delay uitrekenen ?
Of is dit nu ongelovelijk grote onzin ?
Dat kan inderdaad. Alleen hoe weet je waar het signaal begint. Je hebt namelijk altijd ook een klein beetje ruis, en dan is het erg lastig om te bepalen waar het signaal precies begint. Maar het is volgens mij wel mogelijk.
Maar het probleem is dus om elke 300 ns een sample naar de computer te krijgen.

  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
Zoals Jerbro al meldt, is het heel erg temperatuurafhankelijk. 0,1 milimeter zou alleen kunnen als je de temperatuur heel constant weet te houden.

Ik heb even de snelheid van geluid van wikipedia gejat:

Cair = 331,5 + (0,6 * T) m/s

T in graden celcius
Als de temperatuur 1 graden afwijkt van waar je op geijkt hebt, dan is de fout 0,6/331,5 *100% = 0,18 %
Nu lijkt dat weinig, maar als je op een afstand van 1 meter meet, is de fout dus al 2*1,8=3,6 milimeter.

U vraagt, wij antwoorden.


  • Xqlusive
  • Registratie: Oktober 2003
  • Laatst online: 20-11 20:20
jerbro schreef op donderdag 15 februari 2007 @ 13:04:
[...]

Dat ligt eraan hoe je ze monteert. Als je de afstand van de zender tot de ontvanger gaat meten kom je inderdaad uit op 300 ns.

Maar als je de zender en ontvanger naast elkaar zet komt je volgens mij op het dubbele uit.
Je moet namelijk kijken naar de weg die het geluid aflegt. Als het geluid door iets weerkaatst wordt moet het heen en terug, en is de afstand die het geluid aflegt dus twee keer zo groot als de afstand die je meet.
code:
1
2
3
4
5
6
7
8
zender    ---->   geluid    ---->   ontvanger
//afstand van zender tot ontvanger, ongeveer 300 ns voor 0.1mm


zender    ---->  geluid     ---->   | 
                                    |  Iets dat het geluid weerkaatst
ontvanger <---   geluid     <----   |
//afstand tot object dat het geluid weerkaatst, ongeveer 600 ns voor 0.1mm



[...]

Dat kan inderdaad. Alleen hoe weet je waar het signaal begint. Je hebt namelijk altijd ook een klein beetje ruis, en dan is het erg lastig om te bepalen waar het signaal precies begint. Maar het is volgens mij wel mogelijk.
Maar het probleem is dus om elke 300 ns een sample naar de computer te krijgen.
Op het moment gebruik ik 2 functiegenerators om het ultrasone signaal om de 9ms, 1 ms aan te zetten zodat ik de reactie van de sensor of de zender goed kan zien.
Ik laat functiegenerator 1 een blokgolf van 100Hz creeren met een duty cycle van 10%. Dit signaal zit aangesloten op de A.M. ingang van de 2e functiegenerator. Deze generator geeft elke 10ms, 1 ms een 40Khz signaal af, dit signaal zit op de scoop en gaat ook naar de zender. dit wordt weer opgevangen door de ontvanger en gaat dan ook naar de scoop. Het voltage van de ruis is ongeveer 2-4 mV Het eerste signaal is pk-pk ongeveer 8mV. Dit moet wel te herkennen zijn denk ik.

Volgens mij zijn er wel a/d converters die een aantal MHz aankunnen.
Kost misschien wat, maar daar hoef ik me niet zo druk om te maken ;)

Ik denk dat het het beste is als ik dan ook een temperatuursensor aanbreng, hier is dan later wel weer een correctiefactor uit te berekenen.

  • jerbro
  • Registratie: September 2001
  • Niet online
Xqlusive schreef op donderdag 15 februari 2007 @ 14:33:
[...]
Volgens mij zijn er wel a/d converters die een aantal MHz aankunnen.
Kost misschien wat, maar daar hoef ik me niet zo druk om te maken ;)
Die zijn er inderdaad. Ik denk dat je aan het samplen op 1 à 2 MHz wel genoeg hebt, en analog devices heeft ze tot wel 400 MHz. :)
En ik ga ervan uit dat er ook nog wel meer fabrikanten zijn die snelle AD converters hebben.
Ik verwacht ook dat je met een AD converter van 1 MHz, of misschien wel minder ook nog wel redelijk goed de tijd kunt bepalen, doordat je de waarden tussen de twee meetpunten vaak goed kunt intrapoleren.

Maar als je zo'n snelle AD converter neemt zit je waarschijnlijk wel met het probleem dat je buiten de computer om de signalen moet kunnen opslaan, omdat het lastig wordt om ze zo snel de computer in te krijgen.
Maar met 2 MHz sampelen is dat nog wel te doen met een microcontroller, CPLD of FPGA en wat geheugen.

  • caipirinha
  • Registratie: Mei 2004
  • Niet online

caipirinha

The boy from brazil

Over welke afstand wil je meten ? Als het een kort stukje is kun je gewoon een continue sinus nemen en het faseverschil tussen verzonden en gereflecteerd meten door te correleren. Bij een niet bewegend object hoef je ook niet met een grote sample rate te samplen. Google maar eens op repetitive sampling en A/D. Je startpunt waarop je begint te samplen verschuift steeds een beetje waardoor je na een bepaalde tijd genoeg meetpunten hebt om je gewenste resolutie te halen. Zoals al eerder gezegd de voorwaarde is dat je omgeving voor langere tijd constant is.

No self-respecting engineer should have to close a game to run a circuit simulation.


  • Guru Evi
  • Registratie: Januari 2003
  • Laatst online: 18-11 12:30
Misschien niet wat je wilt, maar als je 0,1mm nauwkeurigheid wilt, denk ik dat je beter met lichtsnelheden (lasers, IR, radio) gaat meten dan met geluid.

Indien je toch met geluid wilt werken, ga je moeten zien dat de worst-case scenario variabelen die inwerken op de geluidsgolf een kleinere afwijking kunnen geven dan je maximum afwijking op de meting. Dus moet je waarschijnlijk met je frequentie iets hoger (100x, 1000x) gaan dan 40kHz (wat op zich reeds laag is voor een grote nauwkeurigheid, wordt gebruikt in $20 afstandsmetertjes (0,5cm of minder nauwkeurig) in de lokale hardware shop)

Trivia: Je moet er ook aan denken dat voor zo'n nauwkeurigheid (technisch gezien) de afwijking op de afstand tussen de eigenlijke zender/ontvanger en waar je meetpunt begint/eindigt (allemaal opgeteld) minder moet zijn dan 0,1mm of toch op minder dan 0,1mm moet na-gecorrigeerd worden.

[ Voor 50% gewijzigd door Guru Evi op 15-02-2007 21:45 ]

Pandora FMS - Open Source Monitoring - pandorafms.org


  • Xqlusive
  • Registratie: Oktober 2003
  • Laatst online: 20-11 20:20
caipirinha schreef op donderdag 15 februari 2007 @ 20:20:
Over welke afstand wil je meten ? Als het een kort stukje is kun je gewoon een continue sinus nemen en het faseverschil tussen verzonden en gereflecteerd meten door te correleren. Bij een niet bewegend object hoef je ook niet met een grote sample rate te samplen. Google maar eens op repetitive sampling en A/D. Je startpunt waarop je begint te samplen verschuift steeds een beetje waardoor je na een bepaalde tijd genoeg meetpunten hebt om je gewenste resolutie te halen. Zoals al eerder gezegd de voorwaarde is dat je omgeving voor langere tijd constant is.
Het gaat over een afstand van ongeveer 10-15 cm.
Als ik het goed begrijp word er dus met repetitive sampling elke keer op een ander punt van de sinus gesampled, logisch, want je samplefrequentie is niet precies het dubbele van je signaalfrequentie. Hierdoor kan je dus een hoge resolutie behalen (mits de afstand constant is voor een bepaalde periode). Uiteindelijk kan ik zo dus hetzelfde beeld krijgen als op de scoop. 2 sinussen die in fase verschoven zijn.
Dit had ik ook al bedacht, maar volgens mij is de faseverschuiving soms meer dan een hele trilling, hierdoor weet je dus niet of het bijvoorbeeld 20° verschuiving is, of 380° verschuiving is. Maar ik denk dat ik dit wel weer kan oplossen door ook te kijken naar de amplitude van het signaal.

Als dit werkt word het wel veel makkelijker, de signalen zijn veel duidelijker te onderscheiden van de ruis. Ik zal es kijken of dit te realiseren is !

  • MeMoRy
  • Registratie: Augustus 2004
  • Laatst online: 17-07 12:50
Xqlusive schreef op donderdag 15 februari 2007 @ 14:33:
Ik denk dat het het beste is als ik dan ook een temperatuursensor aanbreng, hier is dan later wel weer een correctiefactor uit te berekenen.
Dan ga je er vanuit dat de temperatuur in de ruimte overal gelijk is, wat normaal niet zo is. Nu is 10-15 cm niet zo veel, maar toch ;)

U vraagt, wij antwoorden.


  • Xqlusive
  • Registratie: Oktober 2003
  • Laatst online: 20-11 20:20
MeMoRy schreef op vrijdag 16 februari 2007 @ 10:39:
[...]

Dan ga je er vanuit dat de temperatuur in de ruimte overal gelijk is, wat normaal niet zo is. Nu is 10-15 cm niet zo veel, maar toch ;)
Daar heb je zeker gelijk in, temperatuur is namelijk erg belangrijk, helemaal in dit project omdat de temperatuur nogal kan schommelen. Maar of de temperatuur over een afstand van 15 cm zo veel zal veranderen...

Je hebt wel gelijk, ik streef naar een erg hoge nauwkeurigheid, dus moet ik eigenlijk alle factoren meenemen, maar dit gaat wel een beetje te ver, als er al verschil zou zijn, dan heb ik ook nog heel nauwkeurige temperatuur sensor nodig. En deze zijn vast ook wel weer afhankelijk van bepaalde factoren, maarjah, zo blijf ik bezig natuurlijk 8)7

  • jerbro
  • Registratie: September 2001
  • Niet online
Xqlusive schreef op vrijdag 16 februari 2007 @ 11:13:
[...]
Daar heb je zeker gelijk in, temperatuur is namelijk erg belangrijk, helemaal in dit project omdat de temperatuur nogal kan schommelen. Maar of de temperatuur over een afstand van 15 cm zo veel zal veranderen...
En mocht het temperatuurverschil in die 15 cm wel te groot worden, dan kan je altijd een kleine PC fan erbij zetten, zodat er een continue luchtstroom is, en de temperatuur behoorlijk constant is over het gebied.

  • caipirinha
  • Registratie: Mei 2004
  • Niet online

caipirinha

The boy from brazil

Xqlusive schreef op vrijdag 16 februari 2007 @ 10:23:
[...]
Dit had ik ook al bedacht, maar volgens mij is de faseverschuiving soms meer dan een hele trilling, hierdoor weet je dus niet of het bijvoorbeeld 20° verschuiving is, of 380° verschuiving is. Maar ik denk dat ik dit wel weer kan oplossen door ook te kijken naar de amplitude van het signaal.
Of op twee frequenties meten 40 en 41 kHz bijvoorbeeld. je hebt dan twee faseverschillen verzonden-gereflecteerd maar ook een verschuiving tussen de nuldoorgangen (of toppen) van de 40 en 41 kHz gereflecteerde signalen. Dat verschil bepaalt welke periode in de verzonden reeks je ziet. Hoe kleiner het frequentieverschil hoe verder je in theorie kunt meten. Die transducer zal best twee toontjes tegelijk aankunnen maar het dsp gedeelte wordt wel weer een uitdaging :)

No self-respecting engineer should have to close a game to run a circuit simulation.


  • Xqlusive
  • Registratie: Oktober 2003
  • Laatst online: 20-11 20:20
caipirinha schreef op vrijdag 16 februari 2007 @ 13:14:
[...]

Of op twee frequenties meten 40 en 41 kHz bijvoorbeeld. je hebt dan twee faseverschillen verzonden-gereflecteerd maar ook een verschuiving tussen de nuldoorgangen (of toppen) van de 40 en 41 kHz gereflecteerde signalen. Dat verschil bepaalt welke periode in de verzonden reeks je ziet. Hoe kleiner het frequentieverschil hoe verder je in theorie kunt meten. Die transducer zal best twee toontjes tegelijk aankunnen maar het dsp gedeelte wordt wel weer een uitdaging :)
Het idee klinkt erg goed, waarschijnlijk is het ook preciezer dan werken met de amplitude en het faseverschil.

Maar ik weet niet zeker of ik het helemaal snap, is het de bedoeling dat ik de 40Khz en 41Khz signalen bij elkaar optel door middel van een opamp (sommator), dan uitstuur met de transmitter, weer opvang met de reciever, en dan door een DSP haal om weer een 40Khz en een 41Khz signaal te krijgen.

Maar wat dan ?
Ik heb dan dus de volgende signalen:

40KHz uitgezonden
40KHz ontvangen (verschoven in fase)
41KHz verzonden
41KHz ontvangen (verschoven in fase)

Hoe moet ik hiermee bepalen welke periode ik moet hebben ?

  • jerbro
  • Registratie: September 2001
  • Niet online
Xqlusive schreef op vrijdag 16 februari 2007 @ 13:58:
[...]
Maar wat dan ?
Ik heb dan dus de volgende signalen:

40KHz uitgezonden
40KHz ontvangen (verschoven in fase)
41KHz verzonden
41KHz ontvangen (verschoven in fase)

Hoe moet ik hiermee bepalen welke periode ik moet hebben ?
Doordat je twee verschillende frequenties hebt kun je het faseverschil bij de 40 KHz meten, het faseverschil bij de 41KHz, maar ook het faseverschil tussen deze twee fasen.

Bijvoorbeeld:
Je stuurt het signaal over een afstand van 10 cm (0.1 m) bij een geluidssnelheid van 340 m/s.
Het signaal is nu ongeveer 0,1 / 340 = 294 us onderweg
Het 40KHz signaal komt dus ( 294,12*10^-6) * 40000 = 11,7648 pulsen later aan bij de ontvanger dan dat het verstuurt is. Die 11 hele pulsen weet je niet, maar je kunt dan wel het faseverschil van 0,7648 puls, = 0,7648* 360 = 275 graden meten.

Het 41KHz signaal komt dus ( 294,12*10^-6) * 41000 = 12,0589 pulsen later aan bij de ontvanger dan dat het verstuurt is. Die 12 hele pulsen weet je niet, maar je kunt dan wel het faseverschil van 0,0589 puls, = 0,0589* 360 = 21,2 graden meten.

Dat was de ene kant op, maar hoe kom je nu terug.

De gegevens die je nu gemeten hebt zijn dus:
faseverschil bij 40 KHz: 275 graden.
faseverschil bij 41 KHz: 21,2 graden

Verder weet je dat het 41KHz signaal een hogere frequentie heeft, en daarom voor zou moeten lopen op het 40 KHZ signaal.
Je kunt nu de volgende formule's maken.

Voor het 40 KHz signaal
Looptijd signaal = (X + 275/360) / 40 000
Waarbij X een nog onbekend getal is.

Voor het 41 KHz signaal:
Looptijd signaal = (Y + 21,2 / 360) / 41 000
Waarbij Y een nog onbekend getal is.

Omdat je weet dat het 41 KHz signaal voor zou moeten lopen op het 40 KHz signaal, maar het gemeten faseverschil kleiner is, moet de Y groter zijn dan de X.
Omdat je maar een kleine afstand meet, en in het geval van een geluidssnelheid van 340 m/s de twee signalen precies in fase zouden zijn bij een afstand van 0 cm, 34 cm, 68 cm, enz. Maar je weet dat de te meten afstand kleiner is dan 34 cm. Dus het 41 KHz signaal loopt minder dan 1 hele fase voor op het 40 KHz signaal.
Daarom kun je voor deze kleine afstanden zeggen: Y = X + 1.
Als de afstanden groter zijn kun je ook eerst met een puls bepalen hoe lang de looptijd ongeveer is, en aan de hand daarvan bepalen of het Y = X+1, Y=X+2, of nog meer moet zijn.

Dus krijg je:
(X + 275/360) / 40 000 = ((X+1) + 21,2 / 360) / 41 000
Na wat omschrijven krijg je dan X = ongeveer 11,036.
Dan pak je weer de formule die je al eerder had:
Looptijd signaal = (X + 275/360) / 40 000
maar nu kun je de X invullen, en krijg je:
Looptijd = ongeveer 295 us.
Dit is een klein verschil met de 294 us waar ik mee begonnen ben, maar dat komt waarschijnlijk door afrondingsfouten. Je zult dus erg goed moeten opletten op afrondingsfouten :) Ook zul je de fase nog steeds zeer precies moeten meten om nauwkeurige resultaten te krijgen.
reken- schrijf- en beredenerings- fouten voorbehoud

  • Xqlusive
  • Registratie: Oktober 2003
  • Laatst online: 20-11 20:20
Heel erg bedankt, het is zo veel duidelijker !
Het enige probleem, naja probleem, er is wel omheen te rekenen, is dat het even duurt na het inschakelen van de zender voordat de sinussen gestabiliseerd zijn. Er moet afhankelijk van de afstand ongeveer 500µs bij de tijd opgeteld worden, dit moet dan later er ook weer vanaf getrokken worden. Opzich geen probleem, maar het rekent wel wat lastiger.

Edit: Even iets verkeerd begrepen, het maakt dus helemaal niks uit op welk punt je meet natuurlijk, die fase verandert als het goed is niet meer ;)

Ook moet ik nu dus een 41Khz sinus genereren, een DSP programmeren, en het programmeerwerk wordt wat ingewikkelder. Maar dit zie ik eigenlijk alleen maar als een uitdaging !

het volgende stappenplan heb ik opgesteld:

- start 40 & 41Khz signaal
- tel ze bij elkaar op (opamp)
- verzend het signaal met transceiver
- ontvang signaal met transceiver 2
- wacht een bepaalde tijd tot opstartverschijnselen uitgedempt zijn (+-500µs)
- begin repetitive sampling op alle 3 de kanalen.
- stuur het gemixte 40/41Khz signaal naar de DSP
- split de 2 signalen en stuur ze naar de pc (later PIC)
- bepaal faseverschil 40Khz signalen
- bepaal faseverschil 41Khz signalen
- los vergelijking op (stel Y=X+1, afstanden groter dan 34cm komen niet voor)
- meet temperatuur
- berekenen afstand

[ Voor 35% gewijzigd door Xqlusive op 16-02-2007 19:11 ]


  • jerbro
  • Registratie: September 2001
  • Niet online
Xqlusive schreef op vrijdag 16 februari 2007 @ 17:57:
[...]

het volgende stappenplan heb ik opgesteld:

- start 40 & 41Khz signaal
- tel ze bij elkaar op (opamp)
- verzend het signaal met transceiver
- ontvang signaal met transceiver 2
- wacht een bepaalde tijd tot opstartverschijnselen uitgedempt zijn (+-500µs)
- begin repetitive sampling op alle 3 de kanalen.
- stuur het gemixte 40/41Khz signaal naar de DSP
- split de 2 signalen en stuur ze naar de pc (later PIC)
- bepaal faseverschil 40Khz signalen
- bepaal faseverschil 41Khz signalen
Als het te meten object stil blijft staan is het misschien ook wel mogelijk om twee keer een meting uit te voeren, een keer met het 40 KHz signaal, en daarna met het 41 KHz signaal, dat kan het een stuk gemakkelijker maken.
En dan bij voorkeur een aantal keer deze meting doen, en de resultaten gaan middelen.
- los vergelijking op (stel Y=X+1, afstanden groter dan 34cm komen niet voor)
Dit gelijkstellen van y = x+1 moet alleen indien het faseverschil van het 41 KHz signaal kleiner is dan het faseverschil van het 40 KHz signaal.
Bij een afstand van bijvoorbeeld 8 cm moet er bijvoorbeeld geen 1 bij opgeteld worden.
Het signaal van 40 KHz heeft dan een fasedraaiing van 148 graden,
en het signaal van 41 KHz heeft een draaiing van 233 graden.
Hier geldt dus y = x.
Je moet gewoon onthouden dat het signaal van 41 KHz altijd tussen 0 en 360 graden voor moet lopen op het signaal van 40 KHz (bij een afstand kleine afstand). Indien het veertig KHz signaal dus 148 graden gedraaid is, en het 41 KHz 233 graden, dan loopt deze al voor, en hoef je er geen 360 graden meer bij op te tellen.

  • Xqlusive
  • Registratie: Oktober 2003
  • Laatst online: 20-11 20:20
jerbro schreef op vrijdag 16 februari 2007 @ 23:03:
[...]

Als het te meten object stil blijft staan is het misschien ook wel mogelijk om twee keer een meting uit te voeren, een keer met het 40 KHz signaal, en daarna met het 41 KHz signaal, dat kan het een stuk gemakkelijker maken.
En dan bij voorkeur een aantal keer deze meting doen, en de resultaten gaan middelen.
Het achter elkaar aan meten zal niet lukken, dit duurt te lang, als het tegelijk gebeurt, is het te doen binnen 1ms, dit is dan inclusief opstartverschijnselen. We hebben aangenomen dat binnen 1ms de afstand gelijk blijft. Het volgende probleem doet zich nu echter voor:
Ik heb nu het 41Khz signaal gesuperponeerd op het 40Khz, en ook andersom geprobeerd, maar de transducers trekken zich hier helemaal niks van aan, Het ontvangen signaal is weer een doodgewoon 40Khz signaal waar de draaggolf dan uitgefilterd is. Pas als de frequentie verlaagd wordt tot 4Khz is de draaggolf terug te herkennen.

Het volgende idee is nu in me opgekomen, ik neem gewoon 2 transducers, 1 op 40Khz en 1 op 32.8Khz. Hier is dan hetzelfde principe op toe te passen als de 40/41 combinatie.
[...]

Dit gelijkstellen van y = x+1 moet alleen indien het faseverschil van het 41 KHz signaal kleiner is dan het faseverschil van het 40 KHz signaal.
Bij een afstand van bijvoorbeeld 8 cm moet er bijvoorbeeld geen 1 bij opgeteld worden.
Het signaal van 40 KHz heeft dan een fasedraaiing van 148 graden,
en het signaal van 41 KHz heeft een draaiing van 233 graden.
Hier geldt dus y = x.
Je moet gewoon onthouden dat het signaal van 41 KHz altijd tussen 0 en 360 graden voor moet lopen op het signaal van 40 KHz (bij een afstand kleine afstand). Indien het veertig KHz signaal dus 148 graden gedraaid is, en het 41 KHz 233 graden, dan loopt deze al voor, en hoef je er geen 360 graden meer bij op te tellen.
Duidelijk, alleen nog 1 vraagje:

De punten waar de sinussen met elkaar in fase zijn, hoe worden deze bepaald, zelf heb ik deze manier afgeleid, maar het kan vast sneller !
32.800 - 40.000
328 - 400
164 - 200
82 - 100
41 - 50 is dus het eerst punt waar ze weer in fase zijn, dit is dus bij een afstand van ((1/40.000)*50)*340=42.5cm

Hierdoor lever ik dus wel weer in op precisie, maar het is wel makkelijker, deze frequenties zijn standaard verkrijgbaar !
Ik zal op zoek gaan naar 2 transducers die dichter bij elkaar liggen, maar zoals ik het nu beredeneer klopt het toch ?

  • jerbro
  • Registratie: September 2001
  • Niet online
Xqlusive schreef op zaterdag 17 februari 2007 @ 12:10:
[...]


Duidelijk, alleen nog 1 vraagje:

De punten waar de sinussen met elkaar in fase zijn, hoe worden deze bepaald, zelf heb ik deze manier afgeleid, maar het kan vast sneller !
32.800 - 40.000
328 - 400
164 - 200
82 - 100
41 - 50 is dus het eerst punt waar ze weer in fase zijn, dit is dus bij een afstand van ((1/40.000)*50)*340=42.5cm
Ik heb het ook op ongeveer deze manier berekend. Ik heb alleen 32800/40000 gedaan, waarna mijn rekenmachine het om kan zetten in een breuk met gehele getallen, 41/50 :) . Maar dat is in princiepe dezelfde manier.
Hierdoor lever ik dus wel weer in op precisie, maar het is wel makkelijker, deze frequenties zijn standaard verkrijgbaar !
Ik zal op zoek gaan naar 2 transducers die dichter bij elkaar liggen, maar zoals ik het nu beredeneer klopt het toch ?
Je krijgt hierdoor nog wel een ander lastiger probleem. Namelijk dat je niet meer kunt zeggen dat het signaal van de 40KHz altijd tussen 0 en 360 graden voorloopt op het signaal van de 38,2 KHz.
Je hebt zelf ook al gezien dat het 38,2 KHz signaal 41 pulsen heeft in deze 42,5 cm. en het 40 KHz signaal 50 pulsen.
Hierdoor kan het 40 KHz signaal tussen 0 en 3240 graden voorlopen, en kan het dus y=x+1, y=x+2, ... y=x+9 worden.
Het zal vast wel mogelijk zijn om dan ook te bepalen welke puls je moet hebben, aan de hand van de twee signalen, en de verhoudingen daar tussen, maar het wordt dan wel wat lastiger een formule te vinden.

edit:
Nu ik er even over nagedacht heb denk ik dat het wel mogelijk moet zijn om dit te meten. Omdat X en Y gehele getallen zouden moeten zijn indien er geen meet afwijking zou zijn, kan er gekeken worden bij welke waarde van X en Y het resultaat voor X het dichtst bij een geheel getal ligt. Er kan dus berekend worden voor y=x+0, ... y=x+9. En dan achteraf kijken welke X het dichtst bij een geheel getal ligt, en ervan uitgaan dat deze goed is.

[ Voor 12% gewijzigd door jerbro op 18-02-2007 17:08 ]


  • Xqlusive
  • Registratie: Oktober 2003
  • Laatst online: 20-11 20:20
Voor de geïnteresseerden, even een korte update van dit project:

Momenteel zit ik in de laatste weken van mijn stage en heb ik het project bijna af, hopelijk lukt het me nog om het voor de einddatum af te krijgen. De ontworpen schema's werken perfect zoals het zou moeten. Ik gebruik echter alleen maar 1 40Khz signaal wat constant aan staat, omdat de verschuivingen binnen de 0.5 cm blijven zal het nooit meer dan 1 periode verschuiven, en heb ik dus een precisie van 360 graden. De verschuiving word vergeleken met het verzonden signaal (AND bewerking). Van het uitgangssignaal maak ik dan allemaal kleine pulsjes op 10Mhz. Deze pulsjes gaan naar de asynchrone teller van de PIC die 4 samples per kanaal neemt om de gemiddelde verschuiving te bepalen. Daarna schakel ik over naar de volgende ontvanger, en dan begint het meten weer opnieuw :) Zodoende meet ik 12 verschillende verschuivingen die met een FM transceiver naar de pc worden verstuurd. Op de pc wordt het dan netjes in grafiekjes getoond.

Op het moment werkt alles perfect, er zijn alleen wat problemen met de draadloze transceiver, dit ligt aan de firmware van mijn PIC, deze moet ik dus nog aanpassen en dan zal het hopelijk naar behoren werken.

Omdat beelden meer dan woorden zeggen hier een aantal foto's van het project, en de ontworpen schema's :)

Afbeeldingslocatie: http://img504.imageshack.us/img504/8413/digitalstuffaw0.th.png
Afbeeldingslocatie: http://img169.imageshack.us/img169/8793/signalconditioningandpoea3.th.png
Afbeeldingslocatie: http://img504.imageshack.us/img504/2509/s5001202hb7.th.jpg
Afbeeldingslocatie: http://img504.imageshack.us/img504/1989/s5001203et7.th.jpg
Afbeeldingslocatie: http://img409.imageshack.us/img409/9145/s5001207hh6.th.jpg
Afbeeldingslocatie: http://img409.imageshack.us/img409/4586/s5001208au7.th.jpg
Pagina: 1