Ett enkelt enkeltpoligt lågpass, rekursivt IIR-filter är snabbt och enkelt att implementera, e g. where x, y är de oåfiltrerade XY-accelerometersignalerna, xf, yf är de filtrerade utsignalerna och k bestämmer tidskonstanten för Filtren är vanligen ett värde mellan 0 9 och 0 9999 där en större k betyder en längre tidskonstant. Du kan bestämma k empiriskt, eller om du vet din nödvändiga avstängningsfrekvens, Fc då kan du använda formeln. Där Fs är Samplingsfrekvens. Notera att xf, yf är de tidigare värdena för utsignalen på RHS och de nya utgångsvärdena på LHS i uttrycket ovan. Notera också att vi antar här att du kommer att samplera accelerometerns signaler med jämna mellanrum Tidsintervaller, t ex varje 10 ms Tidskonstanten kommer att vara en funktion både k och detta provtagningsintervall. Jag har en 1D-accelerometersignal enbart en axel. Jag skulle vilja skapa en robust algoritm som skulle kunna känna igen några former i Signalen. Först tillämpar jag en glidande medelfilt R till råsignalen På den bifogade bilden är råsignalen färgad röd och den genomsnittliga signalen är svart. Som det framgår av bilden är vissa trender synliga från den genomsnittliga svarta signalen - signalen innehåller 10 repetitioner av ett toppliknande mönster där acceleration Klättrar upp till maximalt och sedan faller ner igen Jag har markerat början och slutet på dessa mönster med ett kors. Så är mitt mål att hitta de markerade positionerna automatiskt Problemet med att mönstret extraheras är svårt är. Början på mönstret kan ha en Annorlunda värde än slutet av mönstret. Mönstret kan ha mer än en topp. Jag har ingen konkret tidsinformation från början till slutet av mönstret som tar en tidsenheter. Jag har försökt olika metoder, som är vackra Mycket hemmabrygga, så jag vann inte att nämna dem. Jag vill inte att du ska vara partisk med mitt sätt att tänka. Finns det några vanliga eller böckerna närmar sig att göra den typen av mönsterutvinning. Eller kanske någon vet hur man Ta itu med problemet på ett robust sätt. En ny idé kommer att uppskattas. asked dec 3 10 på 0 04.Keep it simple Det verkar som det glidande medlet är en tillräckligt bra spjällenhet, håll den som, kanske bara ökar eller minskar dess provräkning Om du märker att den antingen lämnar för mycket ljud eller tar bort alltför mycket signal. Därefter arbetar du ut den här genomsnittliga signalen uteslutande. Mönstret markörer du söker verkar relativt lätt att upptäcka Uttryckt på engelska, är dessa markörer inriktade på böjningspunkterna i Medelvärdesläsningskurvan när höjden går markant negativ till positiv Du bör därför kunna detektera denna situation genom att jämföra lutningsvärdena, beräknade tillsammans med glidande medelvärdet då varje nytt läsvärde kommer att finnas tillgängligt naturligtvis med en kort fördröjning, beroende på Löpningsläget vid en given punkt kan endast beräknas när den genomsnittliga avläsningen för nästa punkt s är tillgänglig. För att undvika falsk detektering behöver du dock definiera några parametrar aime D vid filtrering av de oönskade mönstren Dessa parametrar definierar mer exakt betydelsen av markant i ovanstående måldefinition. Tentativt kan formeln för detektering av en intressepunkt vara så enkel som denna -1 S t-1 S t MindeltaSlope där S är den Lutning mer på detta vid tiden t-1 och t. MindeltaSlope är en parameter som definierar hur skarp en förändring i lutningen vi vill ha på ett minimum. Med antagande av normaliserade t och Y-enheter kan vi ställa in MindeltaSlope-parametern nära eller till och med förbi 1 Intuitivt a Värdet på 1 igen i normaliserade enheter skulle indikera att vi målade punkter där den krökta anlände med en nedåtgående lutning på 50 och lämnade punkten med en uppåtgående lutning på 50 eller 40 60 eller 10 dvs nästan platt och 90 dvs nästan vertikal för att undvika att detekteras Poäng i fallet då detta bara är ett litet dopp i kurvan, kan vi ta hänsyn till fler poäng, med en mer avancerad formel som t. ex. Pm2 S t-2 Pm1 S t-1 P0 S t Pp1 S t 1 MindeltaSlope där Pm2, Pm1, P0 och Pp1 är koefficienter som ger relativ betydelse för lutningen vid olika punkter före och efter intressepunktet Pm2 och Pm1 typiskt negativa värden Om vi inte använder enbart positiv parameter och använder negativa tecken i formeln S t - n är lutningen olika gånger och MindeltaSlope är en parameter som definierar hur skarp en förändring i lutningen vi vill ha på ett minimum. Intuitivt skulle denna 4 poäng formel ta hänsyn till Kurvans form vid en punkt två avläsningar före och två läsningar förbi punkten av intresse förutom att överväga punkten rätt före och efter den. Med tanke på de korrekta värdena för parametrarna skulle formeln kräva att kurvan stadigt kommer ner för Två tidsskivor och fortsätter sedan stadigt för de kommande två tidsskivorna och undviker därför att markera mindre fall i kurvan. Ett alternativt sätt att uppnå detta kan vara att beräkna sluttningen med hjälp av skillnaden i Y-värde mellan averag Ed läsning från två eller flera tidsskivor sedan och den aktuella genomsnittliga läsningen Dessa två metoder är likartade men skulle ge något annorlunda resultat generellt sett har vi mer att säga på kurvens önskade form med parametrarna Pm2, Pm1, P0 och P1.answered dec 3 10 på 3 22.Accelerometrar mäta acceleration Det är acceleration på grund av rörelse och även acceleration på grund av gravitation Accelerometrar används ofta för att beräkna en lutningsvinkel. De kan bara göra detta på ett tillförlitligt sätt när de är statiska och inte rör sig. För att få en korrekt Vinklingsvinkel kombineras de ofta med en eller flera gyro s och kombinationen av data används för att beräkna vinkeln. Digitala accelerometrar ger dig information med ett seriellt protokoll som I2C SPI eller USART, medan analoga accelerometrar kommer att mata ut en spänningsnivå inom Ett fördefinierat sortiment som du måste konvertera till ett digitalt värde med hjälp av en ADC analog till digital omvandlaren modul. I denna handledning kommer vi kortfattat att förklara funktionaliteten för acce Lerometrar, hur de används för att mäta lutningsvinklar och äntligen ge några exempelkod Se även handledningen om att kombinera accelerometer och gyrodata för att ge en bättre lutningsvinkel för ett dynamiskt system. Vad innebär en accelerometermätning. Accelerometrarna mäter accelerationen För ett statiskt objekt Det är accelerationen på grund av gravitationen 1g Observera också att utgången från accelerometrarna inte är linjär men är en sinusvåg, så att du inte kan ta den direkta utgången som en proportionell representation av en vinkel för lutning baserat på gravitationen. Normalt en accelerometer sx och y Utgångsspänningar kommer att vara halva matningsspänningen vid mätning av nollgie enheten är vinkelrät mot tyngdkraften - horisontell Tilt den på ett sätt och spänningen kommer att öka, luta den åt andra hållet och den kommer att minska Med en acceleraxel med tre axlar mäter z-axeln 1g med enheten horisontell Utgången från en accelerometer är en sinusvåg av accelerationen uppmätt Accelerometrarna är känsligare för små förändringar i lutningen När de är vinkelräta på gravitationen I e när horisontella små ändringar i lutningen ger användbara läsningar Förbi ca 45 grader av lutning blir de alltmer känsliga Det är därför vanligt att använda mer än ett axelvärde vid bestämning av lutningsvinkeln som kommer Ses nedan. Om du vill mäta lutningen i både x och y-axeln med en 2-axels accelerometer kan du helt enkelt använda sin-1 a där a är utgången från en axel på accelerometern. Kom ihåg att bortom 45 och -45 grader kommer noggrannheten att minska. Mätning av vinklar med två axlar. Reduktionen i upplösning och noggrannhet över 45 grader av lutning kan förbättras genom att använda 2 axlar för att mäta lutningen. Tyngdpunktskomponenten verkar på x Axeln är en sinusfunktion medan den som verkar på y-axeln är en cosinus När x-axelns känslighet börjar släppa av efter 45 grader av lutning ökar känsligheten av y-axeln. Såsom kan ses i diagrammet nedan, är den djärva par Ts av varje rad visar området med mest känslighet. Såsom genom att kombinera x - och y-värdena kan en mycket förbättrad noggrannhet erhållas. Vinkeln beräknas med hjälp av formeln. Mätande vinklar med tre axlar. För exakta mätningar av lutningen i x Och y-plan behöver vi en 3-axels accelerometer Vi kan använda formeln ovan för att beräkna vinklarna med x och z för x-axeln och använda y och z för y-axeln. Vi kan dock förbättra sakerna genom att använda alla tre utgångarna för att beräkna Varje vinkel Detta görs med hjälp av följande formler. Låt oss komma ner till någon kodning. Vi är nu ganska tydliga om principerna, men vi kan se hur detta görs i praktiken. Vi använder en 3-axels accelerometer och utarbetar vinklar för rullning X och pitch y. We antar att beroende på vilken accelerometer som används har du läst värdena för x, y och z och att du också har baslinjevärden för x, y och z när accelerometern är stationär och level. void calcxyangles Tomrum Användning av xy och Z från accelerometer, beräkna x och y vinklar float xval, yval, zval, resultat unsigned short long x2, y2, z2 24 bit. Låt oss få avvikelser från vår baslinje xval float accelvaluex - float accelcenterx yval float accelvaluey - float accelcentery zval float accelvaluez-float accelcenterz. Träna ut rutorna x2 unsigned short long xval xval y2 unsigned kort lång yval yval z2 unsigned short long zval zval. X Axis resultat sqrt y2 z2 result xval result accelanglex atan resultat. Y Axis resultat sqrt x2 z2 resultat yval resultat accelangley atan result. Ok, det är det Bara ett par noter om accelerometrar i allmänhet De är mycket känsliga och är därför ganska benägna att vibrera Om du använder ett i ett system med motorer eller andra källor Av vibrationer föreslår starkt någon form av skumdämpning. Ta också flera mätningar från accelerometern och genomsnitts dem för att filtrera bort eventuellt brus.
Comments
Post a Comment