Friday 10 November 2017

Labview Moving Average Beispiel


Berechnen von Moving Average Dieses VI berechnet und zeigt den gleitenden Durchschnitt mit einer vorgewählten Nummer an. Zuerst initialisiert das VI zwei Schieberegister. Das obere Schieberegister wird mit einem Element initialisiert und fügt dann den vorherigen Wert kontinuierlich mit dem neuen Wert hinzu. Dieses Schieberegister hält die Summe der letzten x Messungen. Nach dem Teilen der Ergebnisse der Additionsfunktion mit dem vorgewählten Wert berechnet das VI den gleitenden Mittelwert. Das untere Schieberegister enthält ein Array mit der Dimension Average. Dieses Schieberegister hält alle Werte der Messung. Die Ersatzfunktion ersetzt den neuen Wert nach jeder Schleife. Dieses VI ist sehr effizient und schnell, weil es die ersetzen Element-Funktion innerhalb der while-Schleife verwendet, und es initialisiert das Array, bevor es in die Schleife eintritt. Dieses VI wurde in LabVIEW 6.1 erstellt. Bookmark amp ShareSimple Moving Average VI Normalerweise, wenn Leute über einen Moving Average sprechen, bedeuten sie, ersetzen Punkt N mit dem Durchschnitt von M Punkten um Punkt N. Angenommen, ich habe 100 Punkte, deren Werte sind 1, 2, 3. 100, und ich möchte Mache einen 5-Punkt-Moving Average. Das erste, was zu beachten ist, dass es einen gleitenden Durchschnitt des dritten Punktes ist der Durchschnitt von 1, 2, 3, 4, 5 3. Der Durchschnitt des vierten Punktes ist der Durchschnitt von 2, 3, 4, 5, 6 4. Das ist aber vielleicht ein zu einfaches Beispiel. Wie wäre es mit dem Mittelwert einer Schrittfunktion, 0 von 1 bis 10, dann 20 danach. Wieder die Punkte 1 und 2 auswerfen. Der Durchschnitt der Punkte 1-5 (um in Punkt 3 zu gehen) 0 (da alle Punkte 0 sind). Ähnlich mit Punkt 4, 5, 6,7 und 8. Jedoch ist Punkt 9 der Durchschnitt von 0, 0, 0, 0, 20 4. Wie wäre es mit Punkt 10 Nun, es sollte der Durchschnitt von 0, 0, 0 sein , 20, 20 8, aber hast du dich daran erinnert, nicht Punkt 9 Hmm zu überschreiben, scheint, dass wir zwei Kopien des Array (das ist im Allgemeinen teuer) zu halten. Es gibt mehrere Möglichkeiten, wie du es vermeiden kannst. Verstehst du wo das Problem im vorherigen Absatz auftaucht. Wenn nicht, versuchen Sie es mit Bleistift und Papier (oder versuchen Sie es in LabVIEW zu codieren). Sie geben Ihnen die Antwort, damit Sie überprüfen können - der gleitende Durchschnitt der Schrittfunktion ist -, -, 0, 0, 0, 0, 0, 0, 0, 4, 8, 12, 16, 20, 20 , 20. -, - (wo - sind die leeren Werte an den Enden des Arrays, die Punkte, die du nicht genügend Nachbarn hast). P. S. - es würde mich nicht überraschen, wenn es eine LabVIEW-Funktion gibt, die das für dich tut. Aber wenn du LabVIEW lernst und ein besseres Verständnis dafür haben möchtest, wie die Algorithmen du in die Arbeit steckst, schmerzt es niemals, es zu spielen und es selbst auszuprobieren. Sie können sogar eine Verbesserung (einige von uns haben so getan haben). Danke für die Sensibilisierung in Bezug auf die feineren Punkte der Moving Average Methode. Dies ist ein statistisches Werkzeug, das hilft zu sehen, was Sie sehen wollen, um die Distraktoren zu abstrahieren. Also die Methode ist verpflichtet, einige Defizite in einigen Situationen oder Kontext haben. Aber ich denke, es eignet sich perfekt für meine Art dof Datenprotokollierung - es ist ein Druck oder Temperatur oder Flow-Signal - und ich erwerbe bei so etwas wie 400 Samples sek und benutze dann eine gemittelte Einzelprobe. Und der Prozess ist ziemlich langsam, da mein Hauptcode bei nicht mehr als 20 Hz läuft. Also, wenn ich eine 5 Probe maving Durchschnitt, meine erste Probe kommt 5 x 50ms später, dann für alle 50ms bekomme ich eine gültige Probe. Grundsätzlich bin ich mehr auf Trends und nicht Punkt Werte. Darin gibt es wenig Sorgen um verpasste Samples oder Schurkenwerte. Natürlich würde ich es nicht wagen, das für eine Step-Funktion zu benutzen. Das wäre grausam Raghunathan LV2012 zur Automatisierung von Hydraulikprüfständen. Nachricht 4 von 15 (1.047 Aufrufe) Re: Simple Moving Average VI 03-30-2016 11:58 PM Es gibt mittlere ptbypt was das selbe tut. Sie können den Code überprüfen, wenn Sie wollen. Ein großer Fehler in Ihrem Code ist die Tatsache, dass Sie ständig wachsen und schrumpfen eine bestehende Array. Sie sollten versuchen, eine Lösung zu finden, die an Ort und Stelle auf einem festen Größenarray arbeitet. Mai-Beispiele wurden auf dem Forum im Laufe der Jahre veröffentlicht (siehe hee zum Beispiel). Der Mittel kümmert sich nicht, wenn die Elemente außer Betrieb sind, also kannst du einfach das älteste Element ersetzen, egal wo es sich befindet. Sie setzen auch das neue Element an den Anfang eines bestehenden Arrays vor, das ist immer viel teurer als das Ende zu beenden. Ihre Stichprobengröße kann sich nicht ändern, sobald das VI läuft. Ihr Schieberegister sollte mit einem leeren Array initialisiert werden, kein Array enthält bereits ein einzelnes Element, das Null ist. (Diese extra Null gibt falsche Mittelwerte) Ihr Code sollte in einem SubVI gemacht werden, damit es wiederverwendet werden kann (ähnlich der ptbypt Version). Dein VI kann niemals gestoppt werden, nur abgebrochen. Gute Optimierungstipps Der Punkt bei der Initialisierung mit Zero hat mich vermisst. Und ja der Benutzer sollte die Stichprobengröße nicht ändern, sobald er läuft. Schließlich werde ich ein SubVI und behandeln Dinge wie Stoppen etc .. Was zum Zeitpunkt der Vorbereitung als Anhängen der neuen Wert zu Array, vielleicht gibt es eine Performance-Strafe aber angesichts der Größe von meinem Array Ich bin mir sicher, dass die CPU kümmert sich nicht anwyay . Aber für mich muss es so sein, wie ich die endgültigen Daten zum Plotten eines Trends eines physikalischen Parameters verwende. Dank für Ihre Zeit. Raghunathan LV2012 zur Automatisierung von Hydraulikprüfständen. Danke für die Sensibilisierung in Bezug auf die feineren Punkte der Moving Average Methode. Dies ist ein statistisches Werkzeug, das hilft zu sehen, was Sie sehen wollen, um die Distraktoren zu abstrahieren. Also die Methode ist verpflichtet, einige Defizite in einigen Situationen oder Kontext haben. Aber ich denke, es eignet sich perfekt für meine Art dof Datenprotokollierung - es ist ein Druck oder Temperatur oder Flow-Signal - und ich erwerbe bei so etwas wie 400 Samples sek und benutze dann eine gemittelte Einzelprobe. Und der Prozess ist ziemlich langsam, da mein Hauptcode bei nicht mehr als 20 Hz läuft. Also, wenn ich eine 5 Probe maving Durchschnitt, meine erste Probe kommt 5 x 50ms später, dann für alle 50ms bekomme ich eine gültige Probe. Aha Also willst du keinen gleitenden Durchschnitt, sondern nur einen einfachen Durchschnitt. Das ist viel einfacher. Heres die Idee (die mit einem ProducerConsumer Design viel besser funktioniert) - Sagen Sie, dass Sie bei 400Hz abtasten, die Daten bei 400 Hz speichern (dh alle Daten auf Festplatte speichern), aber bei 20 Hz anzeigen wollen (weil Sie Trends sehen wollen, eine längere Zeitbasis usw.). Richten Sie Ihr AD-System ein, um 20 Samples mit 400 Hz zu sammeln (Sie können N Kanäle gleichzeitig sammeln, so dass Sie ein 2D-Array von Samples erhalten können. Wie Sie die Daten (bei 20 Hz) von der AD (so dass der Produzent) , Dezitiere es an den Consumer, der Verbraucher beginnt mit dem Schreiben der Daten auf die Festplatte (sollte nicht viel Zeit). Jetzt hast du ein 2D-Array - in einem For Loop, auf einer Kanal-für-Kanal-Basis, durchschnittlich die 20 Punkte. Jetzt haben Sie ein 1D-Array mit einem Averaged Point für jeden Channel, gehen Sie vor und zeichnen Sie es auf. Beachten Sie, dass dieses Schema (a) alle Daten verwendet, (b) Handles Mehrkanal-Daten mit aplomb (und wenn Sie sind Aus dem Mittleren Osten, wo sie wachsen, können Sie auch Ihre Daten mit einer saftigen Pflaume behandeln), und (c) können Sie sammeln Sie Ihre Daten aus dem AD-Gerät, speichern Sie Ihre Daten auf Festplatte halten alle Punkte und zeigen Sie Ihre Daten auf Der Bildschirm mit all Ihren Punkten, aber auch Mittelwert, um die visuelle Signal-to-Noise-Verhältnis zu verbessern, alle ohne Datenverlust (Ive genau das mit 24 Kanälen bei 1KHz getan, wobei die Daten auf einem fernen System aufgenommen und an den PC gesendet wurden Über TCPIP, also haben wir auch TCP-Verarbeitung in der Schleife). Willkommen in der aufregenden Welt der Datenerfassung und - verarbeitung mit LabVIEW. Vertrauen Sie mir, das ist ein wunderbares System für diese Art von Arbeit Basierend auf dem Feedback, das ich auf meine ursprüngliche VI Ich habe den Moving Average Code in ein SubVI verfeinert. Ich habe es dann benutzt, um eine simulierte 10Channel Daten zu bezahlen - nur um die Dinge einfach zu halten, stellte ich sicher, dass alle10 Kanäle identische Daten hatten. Man würde dann erwarten, dasselbe gleitende Durchschnitt für alle 10 Kanäle zu bekommen. Ich bin überrascht über die kleine Varianz, die ich zwischen den Kanälen bemerke - im Allgemeinen sind sie nahe, aber nicht genau. Und nur um den Prozess zu erklären, den ich versuche, habe ich auch ein XLS beigelegt. Woher kommt die Variation. Das unitialisierte Schieberegister im Sub VI. Raghunathan LV2012 zur Automatisierung von Hydraulikprüfständen. Nachricht 9 von 15 (950 Ansichten) Re: Simple Moving Average VI altenbach 04-01-2016 10:25 AM Dein Code macht noch keinen Sinn. Setzen Sie den SubVI ein Skalar zu einer Zeit an, Sie bekommen nicht, was Sie wollen, weil das Schieberegister nur die letzten N Skalare erinnert, egal welcher Kanal es ist. Dein Code ist immer noch sehr ineffizient und gewunden. (ZB warum bist du noch mit Insert in Array zu append (beide in der Mani nad in der Sub). (Sie könnten ein reenetrant subVI und eine parallele innerste FOR-Schleife verwenden, aber das scheint auch übermäßig kompliziert) Wenn Sie wollen, um zu tun Nachricht 10 von 15 (934 Ansichten) Verschieben von durchschnittlichen und exponentiellen Glättungsmodellen Als erster Schritt, um über mittlere Modelle hinauszugehen, zufällig, ist das SubVI ein 2D-Array im SubVI zu halten Walk-Modelle und lineare Trendmodelle, Nicht-Sektionsmuster und Trends können mit einem Moving-Average - oder Glättungsmodell extrapoliert werden. Die Grundannahme hinter Mittelwertbildung und Glättung von Modellen ist, dass die Zeitreihe lokal stationär mit einem langsam variierenden Mittel ist Ein bewegter (lokaler) Durchschnitt, um den aktuellen Wert des Mittelwertes abzuschätzen und dann als Prognose für die nahe Zukunft zu verwenden, was als Kompromiss zwischen dem mittleren Modell und dem zufälligen Spaziergang ohne Drift-Modell angesehen werden kann Die gleiche Strategie kann verwendet werden, um einen lokalen Trend abzuschätzen und zu extrapolieren. Ein gleitender Durchschnitt wird oft als quotsmoothedquot Version der ursprünglichen Serie, weil kurzfristige Mittelung hat die Wirkung der Glättung der Beulen in der ursprünglichen Serie. Durch die Anpassung des Grades der Glättung (die Breite des gleitenden Durchschnitts), können wir hoffen, eine Art von optimalem Gleichgewicht zwischen der Leistung der mittleren und zufälligen Wandermodelle zu schlagen. Die einfachste Art von Mittelungsmodell ist die. Einfache (gleichgewichtete) Moving Average: Die Prognose für den Wert von Y zum Zeitpunkt t1, der zum Zeitpunkt t gemacht wird, entspricht dem einfachen Durchschnitt der letzten m Beobachtungen: (Hier und anderswo verwende ich das Symbol 8220Y-hat8221 zu stehen Für eine Prognose der Zeitreihe Y, die zum frühestmöglichen früheren Datum durch ein gegebenes Modell gemacht wurde.) Dieser Durchschnitt ist in der Periode t (m1) 2 zentriert, was impliziert, dass die Schätzung des lokalen Mittels dazu neigen wird, hinter dem wahren zu liegen Wert des lokalen Mittels um etwa (m1) 2 Perioden. So sagen wir, dass das Durchschnittsalter der Daten im einfachen gleitenden Durchschnitt (m1) 2 relativ zu dem Zeitraum ist, für den die Prognose berechnet wird: Dies ist die Zeitspanne, mit der die Prognosen dazu neigen, hinter den Wendepunkten in den Daten zu liegen . Zum Beispiel, wenn Sie durchschnittlich die letzten 5 Werte sind, werden die Prognosen etwa 3 Perioden spät in Reaktion auf Wendepunkte. Beachten Sie, dass, wenn m1, das einfache gleitende Durchschnitt (SMA) - Modell entspricht dem zufälligen Walk-Modell (ohne Wachstum). Wenn m sehr groß ist (vergleichbar mit der Länge der Schätzperiode), entspricht das SMA-Modell dem mittleren Modell. Wie bei jedem Parameter eines Prognosemodells ist es üblich, den Wert von k anzupassen, um die besten Quoten für die Daten zu erhalten, d. h. die kleinsten Prognosefehler im Durchschnitt. Hier ist ein Beispiel für eine Reihe, die zufällige Schwankungen um ein langsam variierendes Mittel zeigt. Zuerst können wir versuchen, es mit einem zufälligen Spaziergang Modell, das entspricht einem einfachen gleitenden Durchschnitt von 1 Begriff: Das zufällige Spaziergang Modell reagiert sehr schnell auf Änderungen in der Serie, aber in diesem Fall nimmt es viel von der Quotierung in der Daten (die zufälligen Schwankungen) sowie das quotsignalquot (das lokale Mittel). Wenn wir stattdessen einen einfachen gleitenden Durchschnitt von 5 Begriffen ausprobieren, erhalten wir einen glatteren Prognosen: Der 5-fach einfache gleitende Durchschnitt liefert in diesem Fall deutlich kleinere Fehler als das zufällige Spaziergangmodell. Das Durchschnittsalter der Daten in dieser Prognose beträgt 3 ((51) 2), so dass es dazu neigt, hinter den Wendepunkten um etwa drei Perioden zurückzukehren. (Zum Beispiel scheint ein Abschwung in der Periode 21 aufgetreten zu sein, aber die Prognosen drehen sich nicht um einige Perioden später.) Beachten Sie, dass die Langzeitprognosen des SMA-Modells eine horizontale Gerade sind, genau wie im zufälligen Spaziergang Modell. So geht das SMA-Modell davon aus, dass es keinen Trend in den Daten gibt. Während die Prognosen aus dem zufälligen Wandermodell einfach dem letzten beobachteten Wert entsprechen, sind die Prognosen des SMA-Modells gleich einem gewichteten Durchschnitt der letzten Werte. Die von Statgraphics für die Langzeitprognosen des einfachen gleitenden Durchschnittes berechneten Vertrauensgrenzen werden nicht weiter erhöht, wenn der Prognosehorizont zunimmt. Das ist offensichtlich nicht richtig Leider gibt es keine zugrundeliegende statistische Theorie, die uns sagt, wie sich die Konfidenzintervalle für dieses Modell erweitern sollten. Allerdings ist es nicht zu schwer, empirische Schätzungen der Vertrauensgrenzen für die längerfristigen Prognosen zu berechnen. Zum Beispiel könnten Sie eine Kalkulationstabelle einrichten, in der das SMA-Modell zur Vorhersage von 2 Schritten voraus, 3 Schritten voraus, etc. im historischen Datenmuster verwendet werden würde. Sie können dann die Stichproben-Standardabweichungen der Fehler bei jedem Prognosehorizont berechnen und dann Konfidenzintervalle für längerfristige Prognosen durch Addition und Subtraktion von Vielfachen der entsprechenden Standardabweichung aufbauen. Wenn wir einen 9-fach einfachen gleitenden Durchschnitt versuchen, bekommen wir noch glattere Prognosen und mehr von einem nacheilenden Effekt: Das Durchschnittsalter beträgt nun 5 Perioden ((91) 2). Wenn wir einen 19-fachen gleitenden Durchschnitt nehmen, steigt das Durchschnittsalter auf 10: Beachten Sie, dass die Prognosen in der Tat hinter den Wendepunkten um etwa 10 Perioden zurückbleiben. Welche Menge an Glättung ist am besten für diese Serie Hier ist eine Tabelle, die ihre Fehlerstatistik vergleicht, auch einen 3-Term-Durchschnitt: Modell C, der 5-fache gleitende Durchschnitt, ergibt den niedrigsten Wert von RMSE um einen kleinen Marge über die 3 - term und 9-term Mittelwerte, und ihre anderen Statistiken sind fast identisch. So können wir bei Modellen mit sehr ähnlichen Fehlerstatistiken wählen, ob wir ein wenig mehr Reaktionsfähigkeit oder ein wenig mehr Glätte in den Prognosen bevorzugen würden. (Zurück zum Anfang der Seite) Browns Einfache Exponential-Glättung (exponentiell gewichteter gleitender Durchschnitt) Das oben beschriebene einfache gleitende Durchschnittsmodell hat die unerwünschte Eigenschaft, dass es die letzten k-Beobachtungen gleichermaßen behandelt und alle vorherigen Beobachtungen völlig ignoriert. Intuitiv sollten vergangene Daten in einer allmählicheren Weise abgezinst werden - zum Beispiel sollte die jüngste Beobachtung ein wenig mehr Gewicht als die 2. jüngste, und die 2. jüngsten sollte ein wenig mehr Gewicht als die 3. jüngsten bekommen, und bald. Das einfache exponentielle Glättungsmodell (SES) erreicht dies. Sei 945 eine quotsmoothing constantquot (eine Zahl zwischen 0 und 1). Eine Möglichkeit, das Modell zu schreiben, besteht darin, eine Reihe L zu definieren, die den gegenwärtigen Pegel (d. h. den lokalen Mittelwert) der Reihe repräsentiert, wie er von den Daten bis zur Gegenwart geschätzt wird. Der Wert von L zum Zeitpunkt t wird rekursiv aus seinem eigenen vorherigen Wert wie folgt berechnet: Somit ist der aktuelle geglättete Wert eine Interpolation zwischen dem vorherigen geglätteten Wert und der aktuellen Beobachtung, wobei 945 die Nähe des interpolierten Wertes auf den letzten Wert steuert Überwachung. Die Prognose für die nächste Periode ist einfach der aktuell geglättete Wert: Gleichermaßen können wir die nächste Prognose direkt in Bezug auf vorherige Prognosen und frühere Beobachtungen in einer der folgenden gleichwertigen Versionen ausdrücken. In der ersten Version ist die Prognose eine Interpolation zwischen vorheriger Prognose und vorheriger Beobachtung: In der zweiten Version wird die nächste Prognose erhalten, indem man die vorherige Prognose in Richtung des vorherigen Fehlers um einen Bruchteil 945 anpasst Zeit t. In der dritten Version ist die Prognose ein exponentiell gewichteter (dh diskontierter) gleitender Durchschnitt mit Rabattfaktor 1-945: Die Interpolationsversion der Prognoseformel ist am einfachsten zu bedienen, wenn man das Modell auf einer Tabellenkalkulation implementiert: Es passt in eine Einzelzelle und enthält Zellreferenzen, die auf die vorherige Prognose, die vorherige Beobachtung und die Zelle hinweisen, in der der Wert von 945 gespeichert ist. Beachten Sie, dass bei 945 1 das SES-Modell einem zufälligen Walk-Modell entspricht (ohne Wachstum). Wenn 945 0 ist, entspricht das SES-Modell dem mittleren Modell, vorausgesetzt, dass der erste geglättete Wert gleich dem Mittelwert ist. (Zurück zum Anfang der Seite) Das Durchschnittsalter der Daten in der einfach-exponentiellen Glättungsprognose beträgt 1 945 gegenüber dem Zeitraum, für den die Prognose berechnet wird. (Das soll nicht offensichtlich sein, aber es kann leicht durch die Auswertung einer unendlichen Reihe gezeigt werden.) Die einfache gleitende Durchschnittsprognose neigt daher dazu, hinter den Wendepunkten um etwa 1 945 Perioden zurückzukehren. Zum Beispiel, wenn 945 0,5 die Verzögerung 2 Perioden beträgt, wenn 945 0,2 die Verzögerung 5 Perioden beträgt, wenn 945 0,1 die Verzögerung 10 Perioden und so weiter ist. Für ein gegebenes Durchschnittsalter (d. H. Verzögerung) ist die Prognose der einfachen exponentiellen Glättung (SES) der einfachen gleitenden Durchschnitts - (SMA) - Prognose etwas überlegen, da sie die jüngste Beobachtung - Es ist etwas mehr auffallend auf Veränderungen, die in der jüngsten Vergangenheit auftreten. Zum Beispiel hat ein SMA-Modell mit 9 Begriffen und einem SES-Modell mit 945 0,2 beide ein Durchschnittsalter von 5 für die Daten in ihren Prognosen, aber das SES-Modell setzt mehr Gewicht auf die letzten 3 Werte als das SMA-Modell und am Gleichzeitig ist es genau 8220forget8221 über Werte mehr als 9 Perioden alt, wie in dieser Tabelle gezeigt: Ein weiterer wichtiger Vorteil des SES-Modells gegenüber dem SMA-Modell ist, dass das SES-Modell einen Glättungsparameter verwendet, der stufenlos variabel ist, so dass er leicht optimiert werden kann Indem ein Quotsolverquot-Algorithmus verwendet wird, um den mittleren quadratischen Fehler zu minimieren. Der optimale Wert von 945 im SES-Modell für diese Baureihe ergibt sich auf 0,2961, wie hier gezeigt: Das Durchschnittsalter der Daten in dieser Prognose beträgt 10.2961 3.4 Perioden, was ähnlich ist wie bei einem 6-fach einfach gleitenden Durchschnitt. Die Langzeitprognosen des SES-Modells sind eine horizontale Gerade. Wie im SMA-Modell und dem zufälligen Walk-Modell ohne Wachstum. Allerdings ist zu beachten, dass die von Statgraphics berechneten Konfidenzintervalle nun in einer vernünftig aussehenden Weise abweichen und dass sie wesentlich schmaler sind als die Konfidenzintervalle für das zufällige Spaziergangmodell. Das SES-Modell geht davon aus, dass die Serie etwas vorhersehbar ist als das zufällige Spaziergangmodell. Ein SES-Modell ist eigentlich ein Spezialfall eines ARIMA-Modells. So bietet die statistische Theorie der ARIMA-Modelle eine fundierte Grundlage für die Berechnung von Konfidenzintervallen für das SES-Modell. Insbesondere ist ein SES-Modell ein ARIMA-Modell mit einer nicht-seasonalen Differenz, einem MA (1) Term und keinem konstanten Term. Ansonsten bekannt als ein quotARIMA (0,1,1) Modell ohne constantquot. Der MA (1) - Koeffizient im ARIMA-Modell entspricht der Menge 1-945 im SES-Modell. Zum Beispiel, wenn man ein ARIMA (0,1,1) Modell ohne Konstante an die hier analysierte Serie passt, ergibt sich der geschätzte MA (1) Koeffizient 0,7029, was fast genau ein minus 0.2961 ist. Es ist möglich, die Annahme eines nicht-null konstanten linearen Trends zu einem SES-Modell hinzuzufügen. Um dies zu tun, geben Sie einfach ein ARIMA-Modell mit einer nicht-seasonalen Differenz und einem MA (1) Begriff mit einer Konstante, d. h. ein ARIMA (0,1,1) Modell mit konstant. Die langfristigen Prognosen werden dann einen Trend haben, der dem durchschnittlichen Trend entspricht, der über den gesamten Schätzungszeitraum beobachtet wird. Sie können dies nicht in Verbindung mit saisonaler Anpassung tun, da die saisonalen Anpassungsoptionen deaktiviert sind, wenn der Modelltyp auf ARIMA eingestellt ist. Allerdings können Sie einen konstanten langfristigen exponentiellen Trend zu einem einfachen exponentiellen Glättungsmodell (mit oder ohne saisonale Anpassung) hinzufügen, indem Sie die Inflationsanpassungsoption im Vorhersageverfahren verwenden. Die jeweilige Quotenquote (prozentuale Wachstumsrate) pro Periode kann als Steigungskoeffizient in einem linearen Trendmodell geschätzt werden, das an die Daten in Verbindung mit einer natürlichen Logarithmus-Transformation angepasst ist, oder sie kann auf anderen, unabhängigen Informationen über langfristige Wachstumsaussichten basieren . (Zurück zum Seitenanfang) Browns Linear (dh Double) Exponentielle Glättung Die SMA Modelle und SES Modelle gehen davon aus, dass es in den Daten keinen Trend gibt (was in der Regel ok oder zumindest nicht so schlecht ist für 1- Schritt-voraus Prognosen, wenn die Daten relativ laut sind), und sie können modifiziert werden, um einen konstanten linearen Trend wie oben gezeigt zu integrieren. Was ist mit kurzfristigen Trends Wenn eine Serie eine unterschiedliche Wachstumsrate oder ein zyklisches Muster zeigt, das sich deutlich gegen den Lärm auszeichnet, und wenn es notwendig ist, mehr als einen Zeitraum voraus zu prognostizieren, dann könnte auch eine Einschätzung eines lokalen Trends erfolgen Ein Problem. Das einfache exponentielle Glättungsmodell kann verallgemeinert werden, um ein lineares exponentielles Glättungsmodell (LES) zu erhalten, das lokale Schätzungen sowohl von Ebene als auch von Trend berechnet. Das einfachste zeitveränderliche Trendmodell ist das lineare, exponentielle Glättungsmodell von Browns, das zwei verschiedene geglättete Serien verwendet, die zu unterschiedlichen Zeitpunkten zentriert sind. Die Prognoseformel basiert auf einer Extrapolation einer Linie durch die beiden Zentren. (Eine ausgefeiltere Version dieses Modells, Holt8217s, wird unten diskutiert.) Die algebraische Form des linearen exponentiellen Glättungsmodells von Brown8217s, wie das des einfachen exponentiellen Glättungsmodells, kann in einer Anzahl von verschiedenen, aber äquivalenten Formen ausgedrückt werden. Die quadratische Form dieses Modells wird gewöhnlich wie folgt ausgedrückt: Sei S die einfach geglättete Reihe, die durch Anwendung einer einfachen exponentiellen Glättung auf die Reihe Y erhalten wird. Das heißt, der Wert von S in der Periode t ist gegeben durch: (Erinnern Sie sich, dass unter einfachem Exponentielle Glättung, das wäre die Prognose für Y in der Periode t1.) Dann sei Squot die doppelt geglättete Reihe, die durch Anwendung einer einfachen exponentiellen Glättung (mit demselben 945) auf die Reihe S erhalten wird: Schließlich ist die Prognose für Y tk. Für irgendwelche kgt1 ist gegeben durch: Dies ergibt e 1 0 (d. h. Cheat ein Bit, und lassen Sie die erste Prognose gleich der tatsächlichen ersten Beobachtung) und e 2 Y 2 8211 Y 1. Nach denen Prognosen mit der obigen Gleichung erzeugt werden. Dies ergibt die gleichen angepassten Werte wie die Formel auf Basis von S und S, wenn diese mit S 1 S 1 Y 1 gestartet wurden. Diese Version des Modells wird auf der nächsten Seite verwendet, die eine Kombination aus exponentieller Glättung mit saisonaler Anpassung darstellt. Holt8217s Lineare Exponential-Glättung Brown8217s LES-Modell berechnet lokale Schätzungen von Level und Trend durch Glättung der aktuellen Daten, aber die Tatsache, dass es dies mit einem einzigen Glättungsparameter macht, legt eine Einschränkung auf die Datenmuster, die es passen kann: das Niveau und den Trend Dürfen nicht zu unabhängigen Preisen variieren. Holt8217s LES-Modell adressiert dieses Problem, indem es zwei Glättungskonstanten einschließt, eine für die Ebene und eine für den Trend. Zu jeder Zeit t, wie in Brown8217s Modell, gibt es eine Schätzung L t der lokalen Ebene und eine Schätzung T t der lokalen Trend. Hier werden sie rekursiv aus dem Wert von Y, der zum Zeitpunkt t beobachtet wurde, und den vorherigen Schätzungen des Niveaus und des Tendenzes durch zwei Gleichungen berechnet, die eine exponentielle Glättung für sie separat anwenden. Wenn der geschätzte Pegel und der Trend zum Zeitpunkt t-1 L t82091 und T t-1 sind. Dann ist die Prognose für Y tshy, die zum Zeitpunkt t-1 gemacht worden wäre, gleich L t-1 T t-1. Wenn der Istwert beobachtet wird, wird die aktualisierte Schätzung des Pegels rekursiv durch Interpolation zwischen Y tshy und dessen Prognose L t-1 T t-1 unter Verwendung von Gewichten von 945 und 1 945 berechnet. Die Änderung des geschätzten Pegels, Nämlich L t 8209 L t82091. Kann als eine laute Messung des Trends zum Zeitpunkt t interpretiert werden. Die aktualisierte Schätzung des Trends wird dann rekursiv durch Interpolation zwischen L t 8209 L t82091 und der vorherigen Schätzung des Trends T t-1 berechnet. Mit Gewichten von 946 und 1-946: Die Interpretation der Trend-Glättungs-Konstante 946 ist analog zu der Niveau-Glättungs-Konstante 945. Modelle mit kleinen Werten von 946 gehen davon aus, dass sich der Trend nur sehr langsam über die Zeit ändert, während Modelle mit Größer 946 nehmen an, dass es sich schneller ändert. Ein Modell mit einer großen 946 glaubt, dass die ferne Zukunft sehr unsicher ist, denn Fehler in der Trendschätzung werden bei der Prognose von mehr als einer Periode sehr wichtig. (Zurück zum Seitenanfang) Die Glättungskonstanten 945 und 946 können in der üblichen Weise durch Minimierung des mittleren quadratischen Fehlers der 1-Schritt-voraus-Prognosen geschätzt werden. Wenn dies in Statgraphics geschieht, ergeben sich die Schätzungen auf 945 0.3048 und 946 0,008. Der sehr kleine Wert von 946 bedeutet, dass das Modell eine sehr geringe Veränderung des Trends von einer Periode zur nächsten einnimmt, so dass dieses Modell grundsätzlich versucht, einen langfristigen Trend abzuschätzen. In Analogie zum Begriff des Durchschnittsalters der Daten, die bei der Schätzung der lokalen Ebene der Serie verwendet wird, ist das Durchschnittsalter der Daten, die bei der Schätzung des lokalen Trends verwendet wird, proportional zu 1 946, wenn auch nicht genau gleich . In diesem Fall stellt sich heraus, dass es sich um 10.006 125 handelt. Dies ist eine sehr genaue Zahl, da die Genauigkeit der Schätzung von 946 wirklich 3 Dezimalstellen ist, aber sie ist von der gleichen allgemeinen Größenordnung wie die Stichprobengröße von 100 Dieses Modell ist durchschnittlich über eine ganze Menge Geschichte bei der Schätzung der Trend. Die prognostizierte Handlung unten zeigt, dass das LES-Modell einen geringfügig größeren lokalen Trend am Ende der Serie schätzt als der im SEStrend-Modell geschätzte konstante Trend. Auch der Schätzwert von 945 ist fast identisch mit dem, der durch die Anpassung des SES-Modells mit oder ohne Trend erhalten wird. Das ist also fast das gleiche Modell. Nun, sehen diese aus wie vernünftige Prognosen für ein Modell, das soll ein lokaler Trend schätzen Wenn Sie diese Handlung, es sieht so aus, als ob der lokale Trend hat sich nach unten am Ende der Serie Was ist passiert Die Parameter dieses Modells Wurden durch die Minimierung der quadratischen Fehler von 1-Schritt-voraus Prognosen, nicht längerfristige Prognosen geschätzt, in welchem ​​Fall der Trend doesn8217t machen einen großen Unterschied. Wenn alles, was Sie suchen, sind 1-Schritt-vor-Fehler, sehen Sie nicht das größere Bild der Trends über (sagen) 10 oder 20 Perioden. Um dieses Modell mehr im Einklang mit unserer Augapfel-Extrapolation der Daten zu erhalten, können wir die Trend-Glättung konstant manuell anpassen, so dass es eine kürzere Grundlinie für Trendschätzung verwendet. Zum Beispiel, wenn wir uns dafür entscheiden, 946 0,1 zu setzen, dann ist das Durchschnittsalter der Daten, die bei der Schätzung des lokalen Trends verwendet werden, 10 Perioden, was bedeutet, dass wir den Trend über die letzten 20 Perioden oder so vermitteln. Hier8217s, was die Prognose Handlung aussieht, wenn wir 946 0,1 gesetzt, während halten 945 0,3. Das sieht für diese Serie intuitiv vernünftig aus, obwohl es wahrscheinlich gefährlich ist, diesen Trend in Zukunft mehr als 10 Perioden zu extrapolieren. Was ist mit den Fehlerstatistiken Hier ist ein Modellvergleich für die beiden oben gezeigten Modelle sowie drei SES-Modelle. Der optimale Wert von 945 für das SES-Modell beträgt etwa 0,3, aber es werden ähnliche Ergebnisse (mit etwas mehr oder weniger Ansprechverhalten) mit 0,5 und 0,2 erhalten. (A) Holts linear exp. Glättung mit alpha 0.3048 und beta 0.008 (B) Holts linear exp. Glättung mit alpha 0,3 und beta 0,1 (C) Einfache exponentielle Glättung mit alpha 0,5 (D) Einfache exponentielle Glättung mit alpha 0,3 (E) Einfache exponentielle Glättung mit alpha 0.2 Ihre Stats sind nahezu identisch, so dass wir wirklich die Wahl treffen können Von 1-Schritt-voraus Prognosefehler innerhalb der Datenprobe Wir müssen auf andere Überlegungen zurückgreifen. Wenn wir stark davon überzeugt sind, dass es sinnvoll ist, die aktuelle Trendschätzung auf das, was in den letzten 20 Perioden passiert ist, zu stützen, so können wir einen Fall für das LES-Modell mit 945 0,3 und 946 0,1 machen. Wenn wir agnostisch darüber sein wollen, ob es einen lokalen Trend gibt, dann könnte eines der SES-Modelle leichter zu erklären sein und würde auch mehr Mittelwert der Prognosen für die nächsten 5 oder 10 Perioden geben. (Rückkehr nach oben) Welche Art von Trend-Extrapolation ist am besten: horizontal oder linear Empirische Evidenz deutet darauf hin, dass, wenn die Daten bereits für die Inflation angepasst wurden (falls erforderlich), dann kann es unklug sein, kurzfristig linear zu extrapolieren Trends sehr weit in die Zukunft. Trends, die heute deutlich werden, können in Zukunft aufgrund unterschiedlicher Ursachen wie Produktveralterung, erhöhter Konkurrenz und zyklischer Abschwünge oder Aufschwünge in einer Branche nachlassen. Aus diesem Grund führt eine einfache, exponentielle Glättung oftmals zu einem besseren Out-of-Sample, als es sonst zu erwarten wäre, trotz der quadratischen horizontalen Trend-Extrapolation. Gedämpfte Trendmodifikationen des linearen exponentiellen Glättungsmodells werden auch in der Praxis häufig verwendet, um eine Note des Konservatismus in seine Trendprojektionen einzuführen. Das LES-Modell mit gedämpftem Trend kann als Spezialfall eines ARIMA-Modells, insbesondere eines ARIMA (1,1,2) - Modells, implementiert werden. Es ist möglich, Konfidenzintervalle um Langzeitprognosen zu berechnen, die durch exponentielle Glättungsmodelle erzeugt werden, indem sie sie als Sonderfälle von ARIMA-Modellen betrachten. (Vorsicht: Nicht alle Software berechnet die Konfidenzintervalle für diese Modelle korrekt.) Die Breite der Konfidenzintervalle hängt von (i) dem RMS-Fehler des Modells ab, (ii) der Art der Glättung (einfach oder linear) (iii) der Wert (S) der Glättungskonstante (n) und (iv) die Anzahl der voraussichtlichen Perioden, die Sie prognostizieren. Im Allgemeinen werden die Intervalle schneller ausgebreitet als 945 im SES-Modell größer und sie breiten sich viel schneller aus, wenn lineare statt einfache Glättung verwendet wird. Dieses Thema wird im ARIMA-Modellteil der Notizen weiter erörtert. (Zurück zum Seitenanfang) LabVIEW Programmierung Spezielle Leitfäden FIRST LabVIEW FehlersucheLandVIEW Fehlersuche Besondere Hinweise zur Bibliothek vis: Ab 2013 wurde der cRIO Simulator hinzugefügt. Dies führte zwei verschiedene Versionen von vielen der WPILib vis ein, eine für die Ausführung von Stand-alone auf einem PC und eine andere für Standard-Betrieb auf dem Roboter cRIO. Die richtige Version des Bibliothekscodes wird abhängig vom aktuellen Target (PC vs. cRIO) geladen. Eine seltsame Nebenwirkung davon ist, dass, wenn Sie eine Bibliothek vi auf eine leere vi nur zu bohren, um die Interna zu studieren, dann werden Sie wahrscheinlich die PC-Version zu bekommen und youll studieren, wie die cRIO-Simulator funktioniert, nicht wie die Roboter-Version Der Code funktioniert. Gemeinsame Roboteroperationen Hier sind Beispiele für Möglichkeiten, einige der häufigsten Roboterfunktionen zu erledigen. Weil das Framework die benötigten Elemente über mehrere Dateien verteilt, sind diese Beispiele in Bildform, um alle Teile zusammenzubringen, wo man alles auf einen Blick sehen kann. Jedes Beispiel enthält die Menüpfade, an denen alle Symbole, die in diesem Bild verwendet werden, gefunden werden. LabVIEW bietet auch eigenständige, fertige Beispiele aus dem Getting Started Window, die Schaltpläne für den Anschluss von Geräten enthalten. Diese Beispielprojekte eignen sich hervorragend zum Testen, wenn ein Gerät richtig funktioniert und verdrahtet ist. Da es sich um eigenständige Programme handelt, braucht es ein verständliches Verständnis des Standard-Frameworks, um herauszufinden, wie man die Konzepte in Ihr LabVIEW-Projekt integrieren kann. JoystickExample (2015) WPI Robotik Bibliothek-DriverStation-Joystick Programmierung-Array-Index Array Digitaleingabe Beispiel. z. B. (2015) WPI Robotik Bibliothek-IO-AnalogChannel Relais Beispiel (2015) WPI Robotik Bibliothek-Aktoren-Relais WPI Robotik Bibliothek-TreiberStation-Joystick Programmierung-Vergleich Programmierung-Array - Index Array Servo Beispiel (2015) WPI Robotik Bibliothek-Aktoren-Servo WPI Robotik Bibliothek-DriverStation-Joystick Programmierung-Vergleich Programmierung-Array-Index Array Single Motor Beispiel (2015) WPI Robotik Bibliothek-Aktoren-MotorControl WPI Robotik Bibliothek-DriverStation - Joystick Programming-Array-Index Array Button Toggle Action (2015) WPI Robotics Library-DriverStation-Joystick Programming-Structures Programming-Comparison Programming-Cluster, Class, Variant Programming-Array-Index Array Button Control of Motor Example (2015) WPI Robotics Library - Actuators-MotorControl WPI Robotics Library-DriverStation-Joystick Programming-Comparison Programming-Array-Index Array Want more buttons Add a Select for each like so: Dont want to have to keep holding the button down Then add a Feedback Node to remember: Using an xBox where the triggers are actually read as an Axis: Single Solenoid Example (2015) WPI Robotics Library-Actuators-Solenoid WPI Robotics Library-DriverStation-Joystick Programming-Array-Index Array Double Solenoid Example (2015) WPI Robotics Library-Actuators - Solenoid Programming-Boolean WPI Robotics Library-DriverStation-Joystick Programming-Array-Index Array Arcade Drive Example (2015) WPI Robotics Library-RobotDrive WPI Robotics Library-DriverStation-Joystick Programming-Array-Index Array Tank Drive Example (2015) WPI Robotics Library - RobotDrive WPI Robotics Library-DriverStation-Joystick Programming-Array-Index Array Holonomic or Mecanum Drive Example (2015) WPI Robotics Library-RobotDrive WPI Robotics Library-DriverStation-Joystick Programming-Array-Index Array CAN Arcade Drive Example (2017) WPI Robotics Library-Actuators-Motor Control-CAN Motor-Talon SRX WPI Robotics Library-DriverStation-Joystick Programming-Array-Index Array Button Start of Timed Action (2015) - the timed-delays used here as an example can be replaced with sensors that tell positively when the mechanism is cocked or has finished shooting. WPI Robotics Library-DriverStation-Joystick Programming-Structures Programming-Comparison Programming-Array-Index Array Which Button Was Pushed (2015) - Useful for deciding which of several joystick or custom Driver Station buttons was pushed. This acts based on which of an array of buttons was pushed. Lowest number button wins if several are pushed at once. WPI Robotics Library-DriverStation-Enhanced IO Programming-Structures Programming-Arrays Programming-Numeric Programming-Boolean Programming-Array-Search 1D Array Button Increment Power (2015) - This raises or lowers the power to a motor whenever one of the buttons is pushed, so it increments the power one step with each push. Programming-Structures Programming-Comparison Programming-Array-Index Array POV (Point of View or Hat control) (2017) - The POV or Hat switch is a common control switch on game controllers. Its handled in an unusual way, because it is a 360 degree button that sends the directional angle it is pressed (in 45 degree increments). Servos solenoids are only used here by way of example. Programming-Structures Programming-Array-Index Array WPI Library-Actuators-Servo WPI Library-Actuators-Solenoid Switch (2015) - has a toggle for selecting Normally-Closed or Normally-Open wiring. Has a counter mode that counts the number of times the switch is activated. WPI Robotics Library-Sensors-Switch Programming-Array-Index Array Limit Switch (2015) WPI Robotics Library-DriverStation-Joystick WPI Robotics Library-IO-DigitalInput Programming-Structures Programming-Comparison Programming-Boolean Limit Throttle (2015) - this example works ONLY in Teleop. vi because it depends on the regular 50Hz rate at which Teleop. vi gets called. To use it in Periodic Tasks, for instance, it would be called inside a loop and a loop delay would be added. WPI Robotics Library-DriverStation-Joystick WPI Robotics Library-Actuators-MotorControl Programming-Numeric Programming-Array-Index Array Joystick Response Curve (2015) - example is a simple cubed response curve WPI Robotics Library-DriverStation-Joystick WPI Robotics Library-Actuators-MotorControl Programming-Comparison Programming-Numeric Programming-Array-Index Array Joystick Deadband (2015) - How to deal with a sloppy joystick that doesnt quite return to zero when released. The first example has the same deadband, but truncates the motor output delivering between .1 and 1 (or -.1 and -1), so no .05 power ever shows up. This is good for devices, such as drivetrains, that wont move with less than .3 power anyway. It gives the joystick a little more range. In the second example the joystick is ignored within the deadband (.1 to -.1 in this example) and outside that band delivers motor power from 0 to 1. WPI Robotics Library-DriverStation-Joystick WPI Robotics Library-Actuators-MotorControl Programming-Comparison Programming-Numeric Programming-Array-Index Array Joystick Max Throttle Limit (2015) - How to deal with a drive train thats too fast (well if you cant gear it down). The first example uses the throttle on an Extreme 3D joystick as a variable control to limit max driving power to between 50-100. A possible variation might be to allow more power to the Arcade rotate input. In the second example the max power is limited to a hardcoded 80. WPI Robotics Library-DriverStation-Joystick WPI Robotics Library-Actuators-MotorControl Programming-Comparison Programming-Numeric Programming-Array-Index Array Voltage Corrected Tank Drive Example (2015) - this is a simple way to make your drive controls response a little more consistent WPI Robotics Library-RobotDrive WPI Robotics Library-DriverStation-Joystick 3-position Switch (2015) WPI Robotics Library-IO-DigitalInput Programming-Comparison Programming-Numeric Digital 0-9 BCD Switch (2015) WPI Robotics Library-IO-DigitalInput Programming-Boolean Programming-Array Write Data to Disk (2015) Programming-File IO Programming-File IO-File Constants Write Image to Disk (2015) Programming-File IO Programming-File IO-File Constants FIRST Vision-Image Management Tachometer (2015) - assumes a digital sensor, such as a retro-reflective light sensor, is used to detect a spinning object. One caution about Counter - it can produce scrambled or bogus values on startup, so be careful and examine the results when you first put it to use. WPI Robotics Library-Sensors-Counter Encoder (2015) Only allows for four encoders to be sampled at 4x, but many at 2X. WPI Robotics Library-Sensors-Encoder WPI Robotics Library-IO-DigitalInput Gyroscope (2015) WPI Robotics Library-Sensors-Gyro Accelerometer (2015) WPI Robotics Library-Sensors-Accelerometer Potentiometer (2015) WPI Robotics Library-Sensors - Potentiometer Ultrasonic Sensor - Only for paired emittersensor Vex-style (2015) WPI Robotics Library-Sensors-Ultrasonic I2C Sensor (2015) WPI Robotics Library-Communications-I2C Programming-Array Programming-Numeric-Data Manipulation Programming-Array-Index Array Reverse or Swap Which is the Front of Robot (2017) Programming-Structures Programming-Boolean Programming-Numeric Programming-Array-Index Array Counting Things (2015) WPI Robotics Library-IO-DigitalInput Programming-Structures Programming-Comparison Programming-Boolean Moving Average (2015) - You call this subvi to add a new value with each call and it produces the average over a window of the last n samples. You tell it the number of values ( n ) to average only with the first call, thereafter, that input is ignored. It also lets you know when you have reached a full set of values. This example illustrates initialization, sequencing to avoid clobbering values as you use them, safeguarding from changing inputs that cannot be changed, array manipulation, and creating a cycling index. LabVIEW has quite a few built-in filters that do the work for you located in the Functions pallete under Signal Processing-Filters. Programming-Array Programming-Structures Programming-Comparison Programming-Numeric Programming-Numeric-Conversion Programming-Boolean Programming-Synchronization State Machine (2015) - the idea here is that you want to do different things based on a particular state your program is tracking. In this example youd add some kind of activities for each state, such as activating solenoids or motors. States might change based on sensor feedback, such as a ball sensor. WPI Robotics Library-DriverStation-Joystick Programming-Structures Programming-Comparison Programming-Numeric Programming-Array-Index Array Delayed Event (2015) - this is for use within iterative vis, such as Teleop, and simply might start an action, then stop it n seconds later. This type of action can also be performed for you by the Elapsed Time vi. WPI Robotics Library-DriverStation-Joystick Programming-Structures Programming-Comparison Programming-Timing Programming-Numeric Programming-Numeric-Conversion Programming-Array-Index Array P(ID) Example (2015)- This code slaves a pot on the robot to the x-axis of a joystick via Proportional feedback. No I or D terms are used. Most of the work here is just the part that maps the full range of joystick movement to the steering motor potentiometer (pot) sensor. The PID part is pretty simple. The harder part is tuning the P coefficient by experimenting with the real robot. WPI Robotics Library-DriverStation-Joystick WPI Robotics Library-IO-AnalogChannel WPI Robotics Library-Actuators-MotorControl PID Programming-Numeric Programming-Array-Index Array Camera Example (2015) WPI Robotics Library-Camera FIRST Vision-Image Management Programming-Structures Interrupt (2015) Use of this will be rare, but this can be used with either a Digital Input or an Analog Trigger. WPI Robotics Library-Utilities-Interrupts WPI Robotics Library-IO-DigitalInput Equations (2015) Programming-Numeric Mathematics-Elementary Special Functions-Trigonometric Functions Programming-Structures The formula node allows for the insertion of a pretty good subset of C. It not only lets you write equations, but loops and conditional code as well. Calling C code (2015) To call C functions from LabVIEW you can create a C source library, then call into that library using a Call Library Function. For simple code use the formula node mentioned just above. The formula node allows for the insertion of a pretty good subset of C. It not only lets you write equations, but loops and conditional code as well. Autonomous Programming Autonomous Independent. vi can be multiple parallel tasks. For example, the following two samples can co-exist quite comfortably in the same vi. Two independent sequences operating at the same time, one driving the robot while the other blinks a solenoid status light. This case is quite simple, however, it illustrates that much more complicated parallel independent tasking such as this is possible. Maybe a robot juggling while navigating a maze. Flat Sequence - Probably the simplest method of programming a fixed sequence of autonomous moves. Everything within a frame must complete before the next frame will start. It has the look of movie film. This example assumes any Enabled Motor Safetys have been Disabled: Get Microsoft Excel Viewer Get Microsoft PowerPoint Viewer Get WinZip Copyright copy 2005 - 2017 Hauppauge Robotics. Alle Rechte vorbehalten. About this site.

No comments:

Post a Comment