Labview Bevegelig Gjennomsnitt Matrise


Beregner Moving Average. This VI beregner og viser det bevegelige gjennomsnittet ved å bruke et forhåndsvalgt nummer. First initierer VI to skiftregister. Toppskiftregisteret initialiseres med ett element, og legger kontinuerlig den forrige verdien med den nye verdien. Dette skiftregisteret holder summen av de siste x-målene Etter å dele resultatene av add-funksjonen med den forutbestemte verdien, beregner VI den bevegelige gjennomsnittsverdien. Bunnskiftregisteret inneholder en matrise med dimensjonen Gjennomsnitt Dette skiftregisteret beholder alle verdier av verdien. Utskiftningsfunksjonen erstatter den nye verdien etter hver sløyfe. Denne VI er veldig effektiv og rask fordi den bruker erstatningselementfunksjonen i løpet av løpet, og den initialiserer arrayet før den går inn i sløyfen. Denne VI ble opprettet i LabVIEW 6 1.Bookmark Share. flytte gjennomsnitt for 10 verdier fra en array. I må bygge et program hvor jeg kontinuerlig får en verdier lagret i en gruppe med en fast størrelse 10 For hvert nytt tidsintervall den siste verdien slettes og ny verdi legges til en gang 10 verdier leses og gjennomsnittet beregnes når jeg får den gjennomsnittlige verdien jeg må sammenligne med min og maks avvik fra gjennomsnittet Hvis verdien av hver array av et sett er innenfor rekkevidden, da må jeg oppgi en telling som viser antall verdier i gruppesettet 10 andre viser tellingen som antall verdier utenfor området. Et sett er 10 verdier for hvert tidsintervall. t0 - t9 - 10 values. t2-t11 - 10 values. for alle sett må jeg gi indikasjon på om settet er gyldig eller ikke. Message 1 av 8 923 Views. Re moving average for 10 values ​​from a array. 12-02-2013 04 03 PM. Hvis du gjør det søket du skulle ha før du spurte spørsmålet ditt, skrev jeg i glidende gjennomsnitt og søkemotoren fant umiddelbart 100 meldingstråder, og ville trolig ha funnet mer om jeg hadde gitt det tid Mange på første side så ut akkurat som det du spør om. For feil er det en datamaskin. Optimisten mener at vi er i beste av alle mulige verdener - pessimisten frykter at dette er sant Profanity er det ene språket alle programmererne vet best En ekspert er noen som har gjort alle mulige feil. For å lære noe om LabVIEW uten ekstra kostnad, jobbe online LabVIEW opplæringen s. Message 2 of 8 894 Views. Re moving average for 10 values ​​from en matrise. 12-03-2013 12 53 AM. Jeg gjorde det allerede, men synes ikke å få en skikkelig løsning. Jeg beklager, men jeg er ny på labview og jobber for det faglige prosjektet som jeg må sende innen få dager fra nå. Jeg setter pris på din hjelp, og jeg vil prøve å dekke opp for meg gjennom mange andre innlegg. Les 3 av 8 874 visninger. Flytt gjennomsnitt for 10 verdier fra en matrise. 12-03-2013 03 50 AM. You vil bare vite om metoden din er gyldig right. It er når matrisen er full 10.Had ingenting å gjøre det jeg endret din vi litt, fjernet for-loop og case struktur. UnCertified LabVIEW Student feil er for å lære, det er derfor forslag er alltid velkommen. Message 4 av 8 847 Views. Re moving gjennomsnittlig for 10 verdier fra en matrise. 12-03-2013 04 07 AM. Jeg setter pris på din hjelp. Hva jeg egentlig ser er det en gang. Jeg får de første 10 på tidsintervallet t0-t9 og verdier som a0-a9 verdier i matrisen, bør jeg begynne å behandle mener og ikke før de 10 arrays er fylt med verdiene etter at de første 10 verdiene er fylt, vil jeg sjekke for avviket for hver array verdi fra a0-a9, hvis i rekkevidde det skulle indikere ja eller annet nei dette jeg allerede har. når dette er behandlet, bør jeg ta datasettet fom t1-t10, verdier som a1-a10 dette vil bli mitt nye sett igjen Jeg vil følge prosedyren for gjennomsnittlig kontroll. Dette fortsetter kontinuerlig. I den tidligere vi av meg og i Den senere av deg, i begge tilfeller beregnes gjennomsnittet fra den første verdien selv som ikke er nødvendig for mitt tilfelle. Det skal bare behandle når alle 10 verdiene er angitt senere for alle sett, skal det kontinuerlig behandle gjennomsnittet siden for lateral tid jeg vil alltid ha 10 verdier i array. I prøvde å søke etter denne querry men kunne ikke finne noen p roper løsning. Jeg vil virkelig sette pris på om jeg kan bli hjulpet. Takk på forhånd. Jeg kan ikke få poenget ditt. Du vil ha et bevegelige gjennomsnitt fra 10 poeng, dette er det du allerede har implementert. Men du vil ikke gjennomsnitts det før du har din fulle 10 poeng. Hvis dette er det du vil ha, er det to alternativer.1 Du lager en for-loop infront av mens loops som gjengir 9 ganger din tilfeldige generator, og koble den til array shif-registeret.2 begynner med en tom rekkefølge og la gjennomsnittet beregne fra mindre enn 10 poeng til matrisen er full, denne er vedlagt. Uncertified LabVIEW Studentfeil er for å lære, det er derfor forslagene er alltid velkommen. Simpel flytting Gjennomsnittlig VI. Utalt når folk snakker om en Flytende Gjennomsnitt betyr de Bytt punkt N med gjennomsnittet av M poeng rundt Point N Anta at jeg har 100 poeng hvis verdier er 1, 2, 3 100, og jeg vil gjøre en 5-punkts Moving Average Første ting å merke seg er at det er en. Den glidende gjennomsnittet på det tredje punktet er ave raseri av 1, 2, 3, 4, 5 3 Gjennomsnittet av det fjerde punktet er gjennomsnittet av 2, 3, 4, 5, 6 4 Dette er kanskje kanskje for enkelt et eksempel. Hva med gjennomsnittet av en trinnfunksjon, 0 fra 1 til 10, deretter 20 deretter. Oppnå, kaste ut poeng 1 og 2 Gjennomsnittet av poeng 1-5 går inn i Poeng 3 0 siden alle poengene er 0 På samme måte som punkt 4, 5, 6,7 og 8 Punkt 9 er imidlertid gjennomsnittet på 0, 0, 0, 0, 20 4 Hva med punkt 10 Vel, det skal være gjennomsnittet på 0, 0, 0, 20, 20 8, men husket du ikke å overskrive punkt 9 Hmm, virker som om vi må beholde to kopier av Array som generelt er dyrt. Det er flere måter du kan unngå å gjøre dette. Forstår du hvor problemet oppstår i forrige avsnitt. Hvis ikke, prøv å gjøre dette med blyant og papir eller prøv å kode det i LabVIEW Jeg vil gi deg svaret slik at du kan sjekke - det bevegelige gjennomsnittet av trinnfunksjonen er -, -, 0, 0, 0, 0, 0, 0, 0, 4, 8 , 12, 16, 20, 20, 20 -, - hvor - er de tomme verdiene i enden av arrayet, poengene du ikke har tilstrekkelig naboer. PS - det ville ikke overraske meg hvis det var LabVIEW-funksjonen som gjør dette for deg Men hvis du lærer LabVIEW og vil ha en bedre forståelse av hvordan algoritmer du er plugger i arbeid, gjør det aldri vondt å leke og prøve det selv. Du kan til og med komme med en forbedring flere av oss har gjort det. tanker for sensibilisering med hensyn til de finere punktene i Moving Average-metoden. Dette afterall er et statistisk verktøy som bidrar til å se hva du vil se abstraherer distrahererne Så metoden er bundet til å ha noen mangler i noen situasjoner eller sammenheng. Men jeg antar at den er perfekt egnet for min snille DF datalogging - det er et trykk eller temperatur eller flyt signal - og jeg skaffer meg noe som 400 eksemplarer sek, og bruk deretter en gjennomsnittlig enkelt prøve og prosessen er ganske treg da hovedkoden kjører på ikke mer enn 20 Hz. Så når jeg gjør et 5 prøveformat gjennomsnitt, kommer min første prøve 5 x 50 ms senere, deretter for hver 50ms får jeg en gyldig prøve. Basisk er jeg mer opptatt av trender og ikke spotverdier. I dette er det lite bekymring for ubesvarte prøver eller falske verdier. Selvfølgelig ville jeg ikke tør å bruke dette for en trinnfunksjon som ville være grusomt. Raghunathan LV2012 for å automatisere hydrauliske testrigs. Message 4 of 15 1,107 Views. Re Simple Moving Average VI. 03-30-2016 11 58 PM. Det er gjennomsnittlig ptbypt som gjør det samme. Du kan inspisere koden hvis du vil. En stor feil i koden er det faktum at du stadig vokser og krymper et eksisterende utvalg. Du bør prøve å finne en Løsning som fungerer på plass i et fast størrelsesarrangement. Eksempler har blitt lagt ut på forumet gjennom årene ser hee for eksempel. Den betyr ikke om elementene er ute av orden, så du kan bare erstatte det eldste elementet, uansett hvor den er plassert. Du forbereder også det nye elementet til begynnelsen av et eksisterende utvalg, som alltid er mye dyrere enn å legge til slutten. Din utvalgsstørrelse kan ikke endres når VI kjører. Ditt skiftregister bør initialiseres med et tomt array, ikke en matrise som allerede inneholder et enkelt element som er null Denne ekstra null vil gi feil gjennomsnitt. Din kode skal gjøres til en subVI, slik at den kan brukes på nytt ligner ptbypt-versjonen. Din VI kan aldri stoppes , bare aborted. Good optimering tips Poin t ved å initialisere med null savnet meg Og ja, brukeren bør ikke endre prøvestørrelsen når den begynner å løpe. Til slutt vil jeg lage en SubVI og håndtere ting som stopper etc. As til punktet for å legge ut enn å legge til den nye verdien til array, kanskje Det er en ytelse straff, men gitt størrelsen på mitt array er jeg sikker på at CPU ikke bryr seg anwyay Men for meg må det være slik at jeg bruker de endelige dataene for å plotte en trend av en fysisk parameter. Takk for tiden din. Raghunathan LV2012 for å automatisere hydrauliske testrigs. thanks for sensibilisering med hensyn til de finere punktene i Moving Average-metoden. Dette afterall er et statistisk verktøy som bidrar til å se hva du vil se abstraherer distrahererne. Så metoden er bundet til å ha noen svikt i noen situasjoner eller kontekst. Men jeg antar at den er perfekt egnet for min slags DOV-datalogging - det er et trykk eller et temperatur - eller flyt-signal - og jeg kjøper på noe som 400 eksemplarer sek og bruker deretter en gjennomsnittlig enkeltprøve. Og prosessen er ganske sakte ettersom hovedkoden min kjører på ikke mer enn 20 Hz. Så når jeg gjør et 5 prøvefiksjonsmiddel, kommer min første prøve 5 x 50 ms senere, så for hver 50mms får jeg en gyldig prøve. Nå, så vil du ikke ha en bevegelse gjennomsnittlig, men bare et enkelt gjennomsnitt Det er mye lettere Her er ideen som fungerer mye bedre med en Producer Consumer Design. Sikkert du er prøvetaking på 400Hz, vil lagre dataene ved 400 Hz, dvs. lagre alle dataene til disk, men vil ha å vise på 20 Hz fordi du vil se trender, en lengre tidssokkel etc. Opprett ditt AD-system for å samle 20 prøver ved 400Hz notat at du kan samle N-kanaler samtidig, og gir deg et 2D utvalg av prøver. Som du få dataene ved 20 Hz fra annonsen, slik at produsenten gjør det til forbrukeren. Forbrukeren begynner med å skrive dataene til disken, ikke tar mye tid Nå har du en 2D-serie - i en For Loop på en kanal - kanalbasis, gjennomsnittlig de 20 poengene Nå har du en 1D-array, med et gjennomsnittspunkt for hver kanal. Fortsett og plott det. Merk at denne ordningen a bruker alle dataene, b håndterer flerkanalsdata med aplomb, og hvis du er fra Midtøsten hvor de vokser, kan du også håndtere dataene dine med en saftig plomme, og c lar deg samle inn dataene dine fra AD-utstyret, lagre dataene dine på disken, hold alle poengene og vis dataene dine på skjermen ved hjelp av alle poengene dine, men også gjennomsnittlig for å forbedre synsforholdet mellom signal og støy, alt uten å miste data jeg har gjort nøyaktig dette med 24 kanaler ved 1KHz, med dataene tatt på et fjernt system og sendt til PCen via TCP IP, så vi har også TCP-behandling i loop. Welcome til den spennende verden av Data Acquisition and Processing med LabVIEW Trust meg, dette er et flott system for å gjøre denne typen arbeid. Basert på tilbakemeldingen jeg fikk på min opprinnelige VI, har jeg raffinert Moving Average-koden til en subVI. Jeg brukte den til å gjennomsnittlig en simulert 10Channel-data - bare for å holde ting Enkelt, jeg sørget for at alle 10 kanaler hadde identiske data en ville da forvent å få det samme glidende gjennomsnittet for alle 10 kanaler jeg er overrasket over den lille variansen jeg legger merke til mellom kanaler - generelt er de nært, men ikke eksakte. Og bare for å forklare prosessen jeg prøver, har jeg også enclsoed en XLS. So hvor gjør variasjonen kommer inn fra The Unitialized shift register i Sub VI. Raghunathan LV2012 til Automate Hydraulic Test Rigs. Message 9 av 15 1.010 Views. Re Simple Moving Average VI. 04-01-2016 10 25 AM. Koden din gir fortsatt ingen mening SIN Når du ringer til subVI en skalar av gangen, får du ikke det du vil fordi skiftregisteret bare rememeberer de siste N-skalarene, uansett hvilken kanal det er er fra Koden din er fortsatt svært ineffektiv og innviklet, for eksempel hvorfor bruker du fortsatt innsats i array for å legge til både i mani nad i underen. Du kan bruke en reenetrant subVI og en parallell innerste FOR-sløyfe, men det virker altfor komplisert også. Hvis du vil gjøre et løpende gjennomsnitt på hver kanal, trenger subVI å holde en 2D-array i subVI Alt dette har blitt gjort før. Message 10 of 15 994 Views.

Comments

Popular Posts