Labview Glidande Medelvärde Array


Beräkning av rörligt medelvärde. Detta VI beräknar och visar det glidande medlet med ett förinställt nummer. Först initierar VI två skiftregister. Topskiftregistret initialiseras med ett element och lägger sedan kontinuerligt det föregående värdet med det nya värdet. Detta skiftregister håller Summan av de sista x-mätningarna Efter att ha delat resultaten av add-funktionen med det förinställda värdet beräknar VI det rörliga genomsnittsvärdet. Det nedre skiftregistret innehåller en matris med medelvärdet. Detta skiftregister håller alla värden av mätningen. Utbytesfunktionen Ersätter det nya värdet efter varje loop. Denna VI är mycket effektiv och snabb eftersom den använder funktionen ersättningselement inuti öglan och initierar arrayen innan den går in i loop. This VI skapades i LabVIEW 6 1.Bookmark Share. Glidande medelvärde för 10 värden från en array. I måste bygga en applikation där jag kontinuerligt får ett värde lagrat i en grupp med en fast storlek 10 För Varje nytt tidsintervall det sista värdet raderas och nytt värde läggs till i en tid 10 värden läses och medelvärdet beräknas när jag får medelvärdet jag måste jämföra med min - och maxavvikelsen från medelvärdet om värdet av varje Array av en uppsättning är inom intervallet då måste jag ange ett tal som visar antalet värden i uppsättningen av 10 andra visar räkningen som antal värden utanför intervallet. En uppsättning är 10 värden för varje tidsintervall. t0 - t9 - 10 värden. t2-t11 - 10 värden. för alla inställningar måste jag ange om uppsättningen är giltig eller inte. Visa 1 av 8 923 Visningar. Rör glidande medelvärdet för 10 värden från en array. 12-02-2013 04 03 PM. Därefter gör du den sökning som du skulle innan du ställde din fråga. Jag skrev i glidande medelvärde och sökmotorn hittade genast 100 meddelandestrådar och skulle troligen ha hittat mer om jag hade gett det Tid Många på den första sidan såg ut som exakt vad du frågar om. För att err är mänsklig, men för att verkligen göra det, behöver det en dator. Optimisten tror att vi är i bästa av alla möjliga världar - den pessimistiska rädslan är att det är sant Profanity är Det enda språket som alla programmerare vet bäst En expert är någon som har gjort alla möjliga misstag. För att lära dig något om LabVIEW utan extra kostnad, arbeta online LabVIEW handledning s. Message 2 av 8 894 Views. Re moving average för 10 värden från En array. 12-03-2013 12 53 AM. Jag gjorde det redan, men det verkar inte som att få en riktig lösning. Jag är ledsen men jag är ny på att arbeta och jobba för det akademiska projektet som jag måste skicka in inom några dagar från nu. Jag uppskattar din hjälp och jag kommer att försöka täcka upp mig genom många andra inlägg. Läs 3 av 8 874 visningar. Flytta genomsnittsvärdet för 10 värden från en array. 12-03-2013 03 50 AM. You vill bara veta om din metod är giltig right. It är när matrisen är full 10.Had inget att göra så jag ändrade din vi lite, tog bort för-loop och fallstruktur. UnCertified LabVIEW Studentfel är för lärande, det är därför förslag är alltid välkomna. Läs 4 av 8 847 visningar. Flytta genomsnittsvärdet för 10 värden från en array. 12-03-2013 04 07 AM. Jag uppskattar din hjälp. Vad jag faktiskt ser är det en gång. Jag får de första 10 vid tidsintervallet t0-t9 och värden som a0-a9 värden i matrisen bör jag börja bearbeta Medelvärdet och inte förrän de 10 arraysna har fyllts med värdena efter det att de första 10 värdena är fyllda, kommer jag att kontrollera för avvikelsen för varje matrisvärde från a0-a9, om det i intervallet ska anges ja eller annars nej det jag redan har. När det här är bearbetat ska jag ta datasatsen fom t1-t10, värdena som a1-a10 det här blir min nya uppsättning. Återigen följer jag proceduren för den genomsnittliga kontrollen. Detta fortsätter kontinuerligt. I den tidigare vi av mig och i Den senare av er, i båda fallen beräknas medelvärdet från det första värdet självt vilket inte behövs för mitt fall. Det bör bara behandlas när alla 10 värdena är inmatade senare för hela uppsättningen borde det kontinuerligt bearbeta medelvärdet sedan för lateral Tiden kommer jag alltid att ha 10 värden i matrisen. Jag försökte söka efter denna querry men kunde inte hitta någon p Roper lösning. Jag skulle verkligen uppskatta om jag kan bli hjälpt. Tack på förhand. Jag kan verkligen inte få din poäng. Du vill ha ett glidande medelvärde från 10 poäng, det här är vad du redan implementerat. Men du vill inte genomsnitts det Du har din fulla 10 poäng. Om det här är vad du vill finns det två alternativ.1 Du skapar en för-loop infront av de öglor som detererar 9 gånger din slumpmässiga generator och kopplar sedan den till array shif register.2 börjar med En tom matris och låt medelvärdet beräkna från mindre än 10 poäng tills matrisen är full, den här är bifogad. Uncertified LabVIEW Studentfel är för lärande, det är därför förslag är alltid välkomna. Simpelrörande medelvärde VI. Uppsiktigt när människor pratar om Ett rörligt medelvärde betyder det att byta punkt N med medelvärdet av M-punkter som omger punkt N. Antag att jag har 100 poäng vars värden är 1, 2, 3 100 och jag vill göra en 5-punkts rörande medelvärde. Det första att notera är att Det finns ett. Det rörliga genomsnittet för den tredje punkten är ave Raseri av 1, 2, 3, 4, 5 3 Medelvärdet av den fjärde punkten är medeltalet 2, 3, 4, 5, 6 4 Detta är dock kanske för enkelt ett exempel Vad sägs om genomsnittet av en stegfunktion, 0 från 1 till 10, därefter 20 därefter. Hämta ut punkterna 1 och 2 Medelvärdet av punkterna 1-5 går in i punkt 3 0 eftersom alla punkterna är 0 På samma sätt som punkt 4, 5, 6,7 och 8 Punkt 9 är dock medeltalet 0, 0, 0, 0, 20 4 Vad sägs om punkt 10, det borde vara medeltalet 0, 0, 0, 20, 20 8, men kom ihåg att inte skriva över punkt 9 Hmm, verkar som om vi behöver hålla två kopior av Array som är i allmänhet dyra. Det finns flera sätt att undvika att göra detta. Förstår du var problemet uppstår i föregående stycke. Om inte, försök att göra det med penna och Papper eller prova det i LabVIEW Jag ska ge dig svaret så att du kan kolla - det rörliga genomsnittet för stegfunktionen är -, -, 0, 0, 0, 0, 0, 0, 0, 4, 8 , 12, 16, 20, 20, 20 -, - var - är de tomma värdena vid ändarna av Arrayen, punkterna som du inte har tillräckliga grannar. PS - det skulle inte överraska mig om det skulle vara LabVIEW-funktion som gör det här för dig Men om du lär dig LabVIEW och vill ha en bättre förståelse för hur de algoritmer du är Pluggar i arbete, det gör aldrig ont för att spela och prova själv. Du kan till och med komma med en förbättring som flera av oss har gjort. Tankar för sensibilisering med avseende på de finare punkterna i Moving Average-metoden. Denna afterall är ett statistiskt verktyg som hjälper till att se Vad du vill se abstrahera distraktorerna Så metoden är bunden att ha några brister i vissa situationer eller sammanhang. Men jag antar att den passar perfekt för min snygga DF-dataloggning - det är ett tryck eller en temperatur eller en flödessignal - och jag förvärvar något Som 400 prov sek och sedan använda ett genomsnittligt singelprov och processen är ganska långsam, eftersom min huvudkod körs vid högst 20 Hz. Så när jag gör ett 5 provmätningsgenomsnitt kommer mitt första prov 5 x 50 m senare, sedan för Varje 50ms får jag ett giltigt urval. Basiskt är jag mer bekymrad över trender och inte spotvärden I detta finns det lite oro för missade prov eller skurvärden. Naturligtvis skulle jag inte våga använda detta för en stegfunktion som skulle vara grym. Raghunathan LV2012 för att automatisera hydrauliska provriggar. Möjliggör 4 av 15 1,107 Visningar. Re Enkelt Flyttande Medeltal VI. 03-30-2016 11 58 PM. Det finns en genomsnittlig ptbypt som gör detsamma. Du kan inspektera koden om du vill. En stor fel i din kod är det faktum att du ständigt växer och krymper en befintlig matris. Du borde försöka hitta en Lösning som fungerar på plats i en fast storlek array Kan exempel har skrivits på forumet genom åren ser hee till exempel Medeln bryr sig inte om elementen är i ordning, så att du helt enkelt kan byta ut det äldsta elementet, oavsett vilket Där den ligger. Du förbereder också det nya elementet till början av en befintlig array, vilket alltid är mycket dyrare än att lägga till slutet. Din samplingsstorlek kan inte ändras när VI körs. Ditt skiftregister bör initialiseras med En tom array, inte en array som redan innehåller ett enda element som är noll Denna extra noll kommer att ge fela medelvärden. Din kod ska göras i en subVI så att den kan återanvändas liknande den ptbypte versionen. Din VI kan aldrig stoppas , Just aborted. Good optimering tips Poin T vid initialisering med Zero missade mig Och ja, användaren ska inte ändra provstorleken när den börjar springa. Slutligen ska jag göra en SubVI och hantera saker som att stoppa etc. Ans till punkten för att lägga ut än att lägga till det nya värdet till array, kanske Det finns en prestationsstraff, men med tanke på storleken på min array är jag säker på att CPU inte bryr sig annorlunda Men för mig måste det vara så här som jag använder de slutliga data för att plotta en trend av en fysisk parameter. Tack för din tid. Raghunathan LV2012 för att automatisera hydrauliska provrigs. tankar för sensibilisering avseende de finare punkterna i Moving Average-metoden Denna afterall är ett statistiskt verktyg som hjälper till att se vad du vill se abstrahera distraktorerna Så metoden är bunden att ha några brister i vissa situationer Eller kontext. Men jag antar att den passar perfekt för min snygga DF-dataloggning - det är ett tryck eller en temperatur eller en flödessignal - och jag förvärvar på något som 400 samples sek och sedan använder ett genomsnittligt prov och processen är Ganska långsamt, eftersom min huvudkod körs med högst 20 Hz Så när jag gör ett 5 provmätningsgenomsnitt kommer mitt första prov 5 x 50 m senare, och för varje 50 m får jag ett giltigt prov. Aha Så du vill inte flytta Genomsnitt, men bara ett enkelt medel Det är mycket lättare Här är tanken som fungerar mycket bättre med en Producer Consumer Design. Så du är provtagning vid 400Hz, vill spara data vid 400 Hz, dvs spara alla data till disken, men vill ha Att visa på 20 Hz eftersom du vill se trender, en längre tidsbas etc. Anlägga ditt AD-system för att samla 20 prover vid 400Hz notera att du kan samla N-kanaler samtidigt, vilket ger dig en 2D-serie prov Som du Hämta data vid 20 Hz från AD, vilket gör det till producenten, skicka det till konsumenten. Konsumenten börjar med att skriva data till disken om du inte tar mycket tid Nu har du en 2D-array - i en för loop, på en kanal - kanalbasis, medeltal de 20 poängen Nu har du en 1D-array, med en medelvärde för varje kanal. Fortsätt och diagram Det. Notera att detta schema a använder alla data, b hanterar flerkanalsdata med aplomb och, om du är från Mellanöstern där de växer, kan du också hantera dina data med en saftig plommon och c låter dig samla Dina data från AD-utrustningen, spara dina data till disken, hålla alla punkter och visa dina data på skärmen med alla dina poäng men också medelvärdet för att förbättra visuellt signalförhållande, allt utan att förlora data jag Gjort exakt detta med 24 kanaler vid 1 KHz, med data som tas på ett fjärranslutet system och skickas till PC via TCP IP, så vi har även TCP-bearbetning i loop. Welcome till den spännande världen av Data Acquisition och Processing med LabVIEW Trust Mig, det här är ett underbart system för att göra denna typ av arbete. Baserat på den feedback jag fick på mitt ursprungliga VI har jag förfinat Moving Average-koden till en subVI. Jag använde den för att genomsnittsa en simulerad 10Channel-data - bara för att hålla saker Enkelt jag såg till att alla10 kanaler hade identiska data man skulle då Förvänta dig att få samma rörliga medelvärde för alla 10 kanaler Jag är förvånad över den lilla variansen jag märker mellan kanaler - vanligtvis är de nära men inte exakta. Och bara för att förklara processen jag försöker har jag också enclsoed en XLS. So där gör Variationen kommer in från det enhetliga skiftregistret i del VI. Raghunathan LV2012 till Automate Hydraulic Test-riggar. Möjliggör 9 av 15 1 1010 Visningar. Re Enkelt Flyttande Medeltal VI. 04-01-2016 10 25 AM. Your kod saknar fortfarande mening SInce du ringer subVI en skalar åt gången, får du inte vad du vill, eftersom skiftregistret bara hämtar de sista N-skallarna, oavsett vilken kanal det är Är från Din kod är fortfarande mycket ineffektiv och omvandlad, till exempel varför använder du fortfarande inlägg i array för att lägga till både i maniken i underdelen. Du kan använda en reenetrant subVI och en parallell innerlig FOR-loop, men det verkar också alltför komplicerat. Om Du vill göra ett löpande medelvärde på varje kanal, behöver subVI att hålla en 2D-array i subVI. Allt detta har gjorts innan. Message 10 of 15 994 Views.

Comments