Goedenmiddag CO-ers,
Voor school moet ik een aantal opdrachten maken over sensoren. Helaas kom ik er niet helemaal uit.
Het gaat over een Smart Sensor SMT 160-30. Die volgens de opdracht een blokgolf uitlevert met een frequentie van 2 kHz. Nu moet ik de samplefrequentie gaan bepalen van de microcontroller die de sensor uit moet lezen. De temperatuur die gemeten moet worden is 50 graden. Dit moet op 0,1% nauwkeurig gebeuren. Dus er moet bepaald worden wat de samplefrequentie minstens moet zijn om 50 graden 0,1% nauwkeurig te kunnen meten.
Eerst heb ik door deze formule de duty cycle bepaalt: 0,32+0,00470 *50 graden
= 0,555
= 55,5 %
1 trilling van de blokgolf duurt 1: 2000 hz = 0,5 milliseconden.
In die ene trilling staat hij 0,2775 milliseconden aan en dan weer 0,2225 millseconden uit.
Waar ik niet uit kwam is met die nauwkeurigheid en de samplefrequentie. Hoe moet ik dat doen?
Alvast bedankt.
Corné
Hoi Corne,
je kan ook met de microcontroller een bepaalde tijd, bijv. 0,1 sec het aantal pulsen van je sensor tellen en daar uit afleiden wat de waarde is.
misschien gaat er nu een lamje branden?
Ik snap wat u bedoelt. Maar het is toch zo, dat bij deze sensor de uitgaande frequentie constant is, en dat de duty cycle wisselt?
Ok, dat weet ik niet, heb de datasheet van de sensor niet gezien.
In dat geval is het belangrijk hoe snel je controller clockt.
Je gaat dan de tijd meten van het signaal door een input poort te testen, of je kan een ISR (interupt service routine) schrijven die met behulp van een inwendige counter, de meeste controllers hebben deze wel aan boord, de lengt van het signaal meet.
je sluit dan het signaal aan op een interupt, daar zet je een teller op nul, en de volgende flank van je signaal weer een INT, bekijk je de teller weer en heb je de gegeven tijd.
Je dient dus wel de controller te kennen i.v.m. de counter snelheid e.d. en dan kan je ook berekenen hoe veel 0,1% van je signaal is.
suc6
Dit kan niet de bedoeling zijn van de opdracht.
De blokgolffrequentie is: 2 kHz.
Temperatuur: 50 graden.
We moeten de minimale samplefrequentie bepalen zodat de temperatuur op 0,1% nauwkeurig wordt gemeten.
De microcontroller meet dan het stuk blokgolf op het moment dat hij hoog is. Maar hoe kan ik daaruit de samplefrequentie bepalen en hoe verwerk ik die nauwkeurigheid erin?
signaal is 227,5 microsec. aan, 0,1 % daarvan is niet zo heel moeilijk te berekenen. even uit de losse hand; dat is 0,227 micro sec. minimale sample freq. is dan 5 Mhz en nog wat, dat moet je zelf maar even precies uitrekenen.
LaStei
carpe cerevisi
0.1% van 2 kHz... De sensor kan een frequentie van 1 to 4 kHz afgeven, ik weet niet of je daar ook nog rekening mee moet houden. 2 kHz= 500 usec, 0.1% daarvan is 0.5 usec. Als je over het hele bereik wilt doen is het dus 4 kHz, 0.25 usec, met een maximale tijd van 1000 usec, heb je dus 4000 (4096) stapjes nodig, dus een 12 bit teller met een pulstijd van 0.25 usec.
Op 14 mei 2009 16:51:13 schreef Corné 12:
Dit kan niet de bedoeling zijn van de opdracht.De blokgolffrequentie is: 2 kHz.
Temperatuur: 50 graden.
We moeten de minimale samplefrequentie bepalen zodat de temperatuur op 0,1% nauwkeurig wordt gemeten.De microcontroller meet dan het stuk blokgolf op het moment dat hij hoog is. Maar hoe kan ik daaruit de samplefrequentie bepalen en hoe verwerk ik die nauwkeurigheid erin?
Wil je nou de sample frequentie weten of de duty-cycle?
Volgensmij wordt er namelijk over verschillende dingen gepraat.
Als ik je startpost goed begrijp, wil je met een microcontroller een meting uitvoeren en wil je weten of die meting binnen 1% afwijking zit?
[Bericht gewijzigd door LED-Maniak op (16%)]
LaStei heeft het goed uitgelegd. Er zit toch nog een addertje onder het gras. Je moet echt de dutycycle meten omdat de frekwentie niet konstant is. Je moet dus de totale periode meten en de hoog periode. Om op 0.1 % eindresultaat te komen moeten die beide metingen nauwkeuriger dan 0.1% zijn.
Op de website van smartec staan trouwens voorbeelden hoe je dit met een 8051 micro kunt doen.
http://www.smartec.nl/pdf/appsmt01.pdf
Het is een theorie vragen dus hoe ik het in de praktijk aansluit is eigenlijk niet belangrijk.
Ik zal de vraag even letterlijk overschrijven, want het komt niet helemaal duidelijk over.
Opgave:
Gegeven is een Smart Sensor van het type SMT 160-30 (temperatuur). Als de frequentie van de blokgolf 2 kHz bedraagt, bepaal dan met welke samplefrequentie een microcontroller minstens moet samplen om een temperatuur van 50 graden op 0,1% nauwkeurig te kunnen opnemen.
Dus de frequentie is vast, dus moet je via de dutycycle achter de samplefrequentie komen. Dat lukt bij mij niet helemaal.
Alvast bedankt.
Nou, ik kan er totaal langszitten ... maar ...
Sampling doet me meteen denken aan de Nyquistfrequentie.
Om een signaal zonder vervorming te samplen moet de samplefrequentie 2 maal zo hoog liggen.
Een vervorming van 0.1% is toegestaan.
Dus ... 2kHz +- 0.1% = 1998 Hz - 2002 Hz
Dit maal twee = 3996 kHz of 4004 Khz
Conclusie : Minimale samplefrequentie met 0.1% vervorming = 3996 Hz ?
(Dit resultaat puur onder voorbehoud)
Zie op dit moment niet meteen wat de duty cycle hiermee te maken heeft, je kent de frequentie/periode toch.
De sensor geeft 2kHz met een bepaalde duty-cycle.
De uC samplet die blok met een veel hogere frequentie en meet de duur van laag en van hoog (of van laag en de hele periode..) en rekent dan die duty cycle uit.
Dus als die sample frequentie bv. 1 MHz zou zijn, kun je in beide metingen een fout van 1uS maken.. etcetera, zo'n soort berekening.
LaStei
carpe cerevisi
@T_C: klopt, maar je nyquist frequentie zit ergens anders. Je kunt niet sneller samplen dan de frequentie die de sensor afgeeft, dus aan die 2 kHz zit je vast. Als je een waarde wilt hebben die binnen die 0.1% gereproduceerd kan worden in een real time systeem, dan moet de frequency response bij 2 kHz 60 dB gedaalt zijn t.o.v. de volle meetwaarde. (een bit is een factor twee ofwel 6 dB, 10 bits, 1024 is dus 6*10 dB dus 60 dB, daarom zie je bij CD spelers heel vaak -96 dB, het is een 16 bit systeem, 16*6 = 96) Bij een -6dB filter is dit dus 10 oktaven, ofwel 2 Hz. Als je anti aliasing filter steiler is, word de maximale meetfrequentie navenant hoger. Dus je duty cycle varandering van je sensor mag een maximale frequentie hebben van 2 Hz.
Anoniem
Op 14 mei 2009 22:14:31 schreef True_Challenge:
Nou, ik kan er totaal langszitten ... maar ...
Sampling doet me meteen denken aan de Nyquistfrequentie.Om een signaal zonder vervorming te samplen moet de samplefrequentie 2 maal zo hoog liggen.
Een vervorming van 0.1% is toegestaan.
Dus ... 2kHz +- 0.1% = 1998 Hz - 2002 Hz
Dit maal twee = 3996 kHz of 4004 KhzConclusie : Minimale samplefrequentie met 0.1% vervorming = 3996 Hz ?
(Dit resultaat puur onder voorbehoud)
Zie op dit moment niet meteen wat de duty cycle hiermee te maken heeft, je kent de frequentie/periode toch.
Je zit er inderdaad naast.
Een blokgolf heeft een oneindig breed spectrum. De grondgolf (een sinus) heeft inderdaad de frequentie van de blokgolf, maar daarnaast zitten nog een oneindige reeks harmonischen.
Op 18 mei 2009 10:27:33 schreef LaStei:
@T_C: klopt, maar je nyquist frequentie zit ergens anders. Je kunt niet sneller samplen dan de frequentie die de sensor afgeeft, dus aan die 2 kHz zit je vast. Als je een waarde wilt hebben die binnen die 0.1% gereproduceerd kan worden in een real time systeem, dan moet de frequency response bij 2 kHz 60 dB gedaalt zijn t.o.v. de volle meetwaarde. (een bit is een factor twee ofwel 6 dB, 10 bits, 1024 is dus 6*10 dB dus 60 dB, daarom zie je bij CD spelers heel vaak -96 dB, het is een 16 bit systeem, 16*6 = 96) Bij een -6dB filter is dit dus 10 oktaven, ofwel 2 Hz. Als je anti aliasing filter steiler is, word de maximale meetfrequentie navenant hoger. Dus je duty cycle varandering van je sensor mag een maximale frequentie hebben van 2 Hz.
Geen enkel idee waar Nyquist zegt dat je maximale samplefrequentie de maximale frequentie van het signaal zelf is.
Nyquist zegt net dat je met MINIMAAL 2x de maximale bandbreedte - die je signaal heeft - moet samplen om het signaal te kunnen reconstrueren.
en nyquist heeft het dan idd over sinusvormige signalen en repetetieve signalen. even tervoorbeeld om het duidelijk te maken:
als je steeds dezelfde frequentie hebt en jij sampelt 2x ergens in de sinus. dan kun je als je alle samples zou laten staan uiteindelijk ook de sinus zien met je meetpuntjes. Immers MINIMAAL 2x de smaple rate: dus je zit steeds ergens anders in de sinus. dus laten we zeggen dat je punjtes steeds 1 mm opschuiven...
enfin, grafisch ga ik het ff niet uittekenen, maar mag je zelf wel doen hoor.
de max freqeuntie is hier 4000 Hz. Daarvan zou je dus 2x moeten samplen dan mits het een sinus zou zijn. komt neer op MINIMAAL 8 kHz.
echter je weet al dat het een blok is. Om je frequentie van de blok te bepalen, moet je dus zorgen dat je eigenlijk idere stapje telt, maar stel nu dat hij net na het stapje komt, dan is je afwijking te groot, je moet dus met MINIMAAL 8 KHz kijken waar wat komt te zitten.
immers er stond een afwijking van 0,1 %. in praktijk is dat dus +/- 0,05%!!!!
Op 18 mei 2009 11:08:53 schreef High met Henk:
immers er stond een afwijking van 0,1 %. in praktijk is dat dus +/- 0,05%!!!!
Volgens mij gewoon +/- 0,1% hoor.
als ik op 100V heb en 100,1V meet is dat toch een afwijking van 0,1%
En omgekeerd, 99,9V is ook 0,1% afwijking.
Nyquist heeft het over sampelen met minimaal tweemaal de hoogste frequentie die in het signaal voorkomt.
Bij een blok van 2 kHz is 2 kHz dan ook niet de hoogste frequentie die in het signaal voorkomt. 
Maar we dwalen af. Als je de duty wilt meten van een blok van 2 kHz, dan hangt het gewoon van de nauwkeurigheid af wat de sampleperiode moet zijn. Een sampletijd van 1uS levert gewoon een onzekerheid van +/- 1 uS, etc., plus nog je gewone meetfouten.
/e: er staat nergens dat de uC met zijn samplefrequentie gebonden is aan die 2kHz van de sensor.
Wat mij betreft komt het gewoon neer op een periodemeting zoals die in iedere frequentie/tijdteller voorkomt. Dus sensor op ene poot van de poort, kristalfrequentie op de andere. En dan maar tellen hoeveel pulsen er door komen per "aan" tijd van de sensor-blokgolf.
zo heeft TS het niet omschreven. dus kon ik uitgaan van een afwijking van +/- 0,05
als TS het wel bedoeld had als +/- 0,1 had hij dat duidelijk moeten omschrijven. De totale onderlinge afwijking kan nu immers (bijna) 0,2% zijn in de meting. Heb ik de afwijking van de sensor niet meegenomen dus (heb er ook niet goed naar gekeken)
Anoniem
Op 18 mei 2009 12:23:57 schreef Frederick E. Terman:
Nyquist heeft het over sampelen met minimaal tweemaal de hoogste frequentie die in het signaal voorkomt.
Nyquist heeft het over minimaal tweemaal de maximale bandbreedte van te sampelen signaal. Anders zou iets als undersampling niet kunnen.
LaStei
carpe cerevisi
Ehhhh snap niet...
Gegeven de sensor, 2 kHz, 0.1% Daar heeft m.i. Nyquist niets mee te maken, alleen de nauwkeurigheid zodanig dat de tolerantie in meetwaarde keiner is dan je quantiserings meetwaarde, dus 2kHz * 1000 = 2MHz. teller frequentie.
Van elke meetwaarde heb je dus een sample. Dus 2000 samples per seconde. Nu pas komt meneer Nyquist om de hoek kijken. Als je een anti alliasing filter hebt van 6dB/oktaaf en je wilt een nauwkeurigheid van 0.1% met 2000 samples per seconde dan moet de filter frequentie op 2 Hz gezet worden. (zodat je een 0.1% nauwkeurigheid hebt i.v.m. hogere harmonische)
Op 18 mei 2009 12:29:11 schreef reactokrato:
[...]
Nyquist heeft het over minimaal tweemaal de maximale bandbreedte van te sampelen signaal. Anders zou iets als undersampling niet kunnen.
I stand corrected.. ik zit in de baseband te denken, zoals we hier hebben.
Zelf zou ik hier nooit aan Nyquist gedacht hebben hoor.
Ik zou ook geen 2000x per seconde meten, alleen zo vaak als ik een nieuwe meetwaarde nodig heb. Misschien iets vaker om te kunnen middelen.
Maar ik denk niet dat ik 1000 meetwaarden moet middelen, alleen omdat ze af en toe + of - 1 count staan te knipperen.
@FET: nyquist speelt hier ook niet heel erg direct, daar je het signaal niet hoeft te reconstrueren.
je moet alleen de freqeuntie meten. Dan moet je dus minimaal 1x hoogste sample freq hebben dan afhankelijk van je afwijking moet je meer of minder hebben.
[Bericht gewijzigd door High met Henk op (15%)]
Of liever gezegd de aan- (en voor de zekerheid ook de uit-) tijd. Als het goed is blijft de frequentie constant begrijp ik.