Sunday 28 May 2017

Labview Fpga Gleitender Durchschnitt


Berechnen von Moving Average. This VI berechnet und zeigt den gleitenden Durchschnitt mit einer vorgewählten Zahl 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 Add-Funktion mit dem vorgewählten Wert berechnet das VI den gleitenden Mittelwert. Das untere Schieberegister enthält ein Array mit der Dimension Durchschnitt Dieses Schieberegister hält alle Messwerte der Ersatzfunktion Ersetzt den neuen Wert nach jeder Schleife. Dieses VI ist sehr effizient und schnell, weil es die Funktion ersetzen Element innerhalb der while-Schleife verwendet, und es initialisiert das Array, bevor es in die Schleife. This VI wurde in LabVIEW 6 erstellt 1.Bookmark Share. Exponentia l gleitende durchschnittliche Schrittantwort fpga. Ich habe ein Problem mit meinem Filter, der exponentiell gewichtete gleitende durchschnittliche Filter IIR Auftrag aus dem Buch Verständnis der digitalen Signalverarbeitung Lyons Richard Ich habe die folgende Formel Berechnung der 3dB Frequenz fc aus alpha Alpha ist der Parameter, um den Filter zu kontrollieren. Differential Gleichung des Filters ynxn alpha 1 - alpha y n-1.Relation zwischen fc und alpha alpha cos 2fc fs - 1 sqrt cos 2fc fs - 4 cos 2fc fs 3.If ich jetzt eine 3dB Frequenz von 0,0794Hz Zeitkonstante TC 2s alpha 0,00169621 fs 94Hz. For ein IIR Filter 1. Ordnung, die Anstiegszeit ta der stepresponse aus 10 bis 90 ist ta 2,2 TC, was zu ta 4,4s führt. Aber wenn ich die Sprungantwort simuliere, ist meine Aufstiegszeit etwa 14 mal dieses Wertes bei 14s. Ich kann nicht erklären, warum sich die Sprungantwort meines Filters dadurch unterscheidet Viel Für meine Moving Average Filter die berechnete und simulierte Anstieg Zeit sind gleich. Ich habe die vi, die auf der FPGA durchgeführt wird vielleicht jemand kann einen Fehler zu finden. Siehe auch Alpha-Filter oder RC-Filter. Ist Ihre Sampling-Frequenz fs korrekt Wenn die Loop-Timing doesn t Match, das würde es erklären. Ihre Datentypen sehen gut aus, um Alpha innerhalb 1 Aber ich würde vorschlagen, eine kleine Änderung in der Umsetzung Wie es steht , Ist es ein bisschen anfällig für das Abrunden, weil 1-alpha wiederholt mit dem y n-1 multipliziert wird. Eine etwas zuverlässigere Methode ist zu sagen, yny n-1 alpha xn-y n-1 Der Unterschied ist subtil, Aber gibt mir bessere Ergebnisse viele Male Und es eliminiert ein Multiplikation. By der Weg, neu interpretieren Zahl tut die gleiche Sache wie Ihre konvertieren von FXP zu bool dann zurück Es ist ein wenig weniger verwirrend, though. I ma wenig verwirrt durch die zeitgesteuerte Schleife, die nie Loops Tut es das Timing auf die Art und Weise, wie ich es vermutete, es würde nicht, so dass ich es nie benutzt habe, ich benutze den Loop Timer stattdessen. CLD User seit rev 8 6.Message 2 von 13 1.087 Views. Re exponentia l gleitende durchschnittliche Schrittantwort fpga. 10-01-2015 02 05 AM - bearbeitet 10-01-2015 02 17 AM. thanks für deine Antwort.1, ich versichere meine Sampling-Frequenz mit dem Loop-Timer Meine Eingabe ist 425 532 Ticks, was gleich.94 Hz ist Diese Tickrate Wird durch Zecken bestätigt EWMA .-- Vielleicht kann jemand den Code testen und mir sagen.2, fand ich deinen Ansatz in den Tricks und Tipps Abschnitt von Lyons Buch Ich werde einen Versuch haben, aber könnten Sie erklären, die Runde ab treiben ein wenig Ich bin ganz neu in diesem Bereich. Es gibt einen weiteren Vorteil von der Beseitigung eines Multiplikators mit Ausnahme von Ressourcen sind die Frequenzantwort, Impulsantwort und Schritt Antwort das gleiche.3 Wenn ich nur bitshift, bin ich freundlich ein verwendet, um diese Methode Nicht sicher, wenn Die reinterprate Funktion nutzt weniger ressources Aber danke für das Erkennen it.4, Die zeitgesteuerte Schleife iteriert alle 425 532 ticks einmal So mit einer Frequenz von 94Hz wird ein Wert durch den Code berechnet, da der Code innerhalb der zeitgesteuerten Schleife nur eine Iteration benötigt Ich vermisse deine Frage. Ich bin mir nicht sicher, welche weiteren Informationen du brauchst Um die Sprungantwort eines gleitenden Durchschnitts mit einem exponentiellen gleitenden Durchschnitt zu vergleichen EWMA Eigentlich möchte ich nur die Theorie bestätigen Wie ich bereits erwähnt habe, um eine Zeitkonstante von 2s bei einer Abtastrate von 94Hz zu erhalten, muss alpha 0.00169 sein. Der Aufstieg Zeit der Sprungantwort von 10 bis 90 des Endwertes unterscheidet sich von der Theorie Anstieg Zeit sollte 4,4s mit Zeitkonstante 2s sein, aber ich bekomme fast 14s, wenn ich meinen Code auf der FPGA. I bestätigte, dass mit Alpha 0,00169 , Mein Code dauert 1297Samples, um von 0,1 bis 0,9 Endwert zu erhalten ist 1, Startwert 0.Sie können in meinem Code sehen Ich überprüfe die Schleife Zeit mit dem Indikator tickt ewma, um die Abtastrate der SCTL zu bestätigen. Kann jemand anderes die 1297Samples bestätigen, die bei alpha gekauft werden 0,00169 Ursache Ich denke, dass ich zu viele Samples benötige, um den 0,9 Wert zu erreichen. Ich habe bereits die vorgeschlagene EWMA Version von der ersten Antwort implementiert. Das gleiche Problem hier. Message 5 Von 13 1.037 Views. Re exponentia l gleitende durchschnittliche Schritt Antwort fpga. 10-01-2015 08 13 AM - bearbeitet 10-01-2015 08 15 AM.1, ich belebe meine Sampling-Frequenz mit dem Loop-Timer Meine Eingabe ist 425 532 Ticks, was gleich ist.94 Hz Diese Tickrate wird durch Zecken EWMA bestätigt .-- Vielleicht kann jemand den Code testen und mir sagen.2, fand ich deinen Ansatz in den Tricks und Tipps Abschnitt von Lyons Buch Ich werde einen Versuch haben, aber könnten Sie erklären, die Runde ab treiben ein bisschen Ich bin ganz neu in Dieser Bereich. Ist dort ein weiterer Vorteil von der Beseitigung eines Multiplikators außer ressources Sind die Frequenzantwort, Impulsantwort und Schrittantwort das gleiche.3, Wenn ich nur Bitshift, bin ich freundlich zu dieser Methode nicht sicher, wenn die reinterprate Funktion weniger verwendet Ressources Aber danke für die Anmerkung.4, Die zeitgesteuerte Schleife iteriert alle 425 532 Zecken einmal So mit einer Frequenz von 94Hz wird ein Wert durch den Code berechnet, da der Code innerhalb der zeitgesteuerten Schleife nur eine Iteration benötigt oder bin ich vermisse deine Frage. Ich habe eine Kalkulationstabelle zu simulieren, und bekomme fast genau die gleiche Antwort 12 99 Zyklen gehen von 0 1 bis 0 9 Spreadsheets machen ein praktisches Werkzeug zum Testen von Berechnungen.1 Okay, ich habe noch nie die Single-Cycle-Timed-Loop SCTL mit dem T geschrieben an den Stopp Es würde zwingen, die Mathematik-Funktionen einzeln zu sein - cycle, aber ich bin mir nicht sicher, ob das ein Vorteil ist, wollte ich nur sicherstellen, dass die Zeit bestätigt wurde, und es ist.2 Das Round-off Drifting vermutlich t t auftauchen, wenn deine Eingabe kleiner ist kleiner als 0 1 Ich sehe Jetzt da hast du 40 bits 39 rechts von der dezimal für die rückmeldung Das dauert einiges an FPGA zu multiplizieren, aber gewinnt t haben abrundungsprobleme Andere Teile hatten nur 18 Bits 17 rechts von der Dezimalzahl, also alpha 0 00169 - 000007 Mal ein Eingang von 0 1 wäre 0 000169 - 0 000007 oder 7 Fehler gewesen Aber das multipliziert ist auch 40 Bit, also solltest du keine Probleme sehen. Typisch hat der Ausgang yn weniger Bits und wird abends abrunden Bit Aber weil es in einer Loop-Multiplikation mit 1-Alpha jedes Mal ist, wird die Abrundung manchmal jede Schleife akkumuliert, bis es groß ist enou Gh, um die add s Ergebnisse zu beeinflussen Es ist schwer zu erklären, aber meine allgemeine Faustregel ist, dass ich einen Fehler gleich dem kleinsten Bit, das durch Alpha geteilt wird, mit der ursprünglichen Methode oder etwa die Hälfte, die uns die Ein-Multiplikations-Methode, Die Antworten werden fast identisch sein, außer für einen kleinen Unterschied Der größte Vorteil ist das Speichern von FPGA-Platz und kompilieren Zeit Und Sie können Ihre Anzahl von Bits etwas zu reduzieren, um noch mehr zu sparen.3 Sie sind grundsätzlich identisch und beide Methoden sind frei in FPGA Die Bits sind nicht verändert, also ist keine Logik nötig, sie sind einfach neu beschriftet.4 Ich glaube, du hast es gut geantwortet. Generisch, an diesem Punkt würde ich Alpha anpassen, bis meine Ergebnisse mit dem übereinstimmen, was ich wollte, und ziehe weiter Ich hasse es nicht zu verstehen Missverständnis, aber don t haben normalerweise Zeit, in sie hinein zu tauchen. Aber um der Wissenschaft willen, lassen Sie s betrachten, dass Ihre Formel kann fehlerhaft sein Ich denke, Sie können eine Formel für einen kontinuierlichen exponentiellen Zerfall e-t tau verwenden, nicht für Ein diskreter exponentieller Zerfall 1-alpha i Es ist einfacher zu sehen Bei dieser als Schrittfunktion von 1 bis 0 In diesem Fall ist yn für n 0 yn 1-alpha n Wir können n für yn 0 9 als n log 1-alpha 0 9 62 und n für yn 0 1, Als 1361, für einen Unterschied von 1299. CLD User seit rev 8 6.thank Sie für Ihre ausführliche answer. Concerning das Problem mit der Aufstiegszeit, ich glaube, ich fand den Fehler Sie könnten Recht haben, dass die Formel nicht korrekt ist oder was Wird vermutlich von mir falsch verstanden und in den falschen Kontext gestellt. Als ich von der Arbeit nach Hause fuhr, erinnerte ich mich an eine praktische Funktion des Labview-Glättungsfilters Hier musst du nur Tau TC und fs setzen und es bestimmt Nominator und Nenner für exponentiell gleitenden Durchschnitt und Gleitender Durchschnitt Da der Nominator alpha ist, könnte ich das Ergebnis mit der Formel vergleichen, die ich verwendet habe, und es war ein ganz normaler Unterschied Labview verwendet die folgende Formel alpha 1-exp -1 fs TC Mit dieser Formel ist TC 2s gleich alpha 0,0053.And Mit diesem Alpha meine Simulation funktioniert Risetime 4,4sQuoting Sie Im Allgemeinen würde ich an dieser Stelle alpha bis mein r anpassen Eskants passte, was ich wollte, und ziehe weiter Ich würde gerne das gleiche tun, aber da dies meine Masterarbeit ist, muss ich solche Dinge lösen. Jetzt zurück zu den Rundungsproblemen, die ich verstehe, dass kleine Werte ein größeres Problem sind Wird in einem Lock In verwendet, die Werte werden WIRKLICH klein sein Aber ich habe es schon auf unserem Messgerät getestet und es funktioniert, deshalb werde ich auch deine Version testen, aber wenn ich keine Probleme bekomme, dann schätze ich Es bei 40bits Simulation der folgenden Setup verursacht einen Fehler von 2 3 Mit 57 Bits reduziert den Fehler auf unter 1 Ich denke, 40bits sollte genug sein. Und in Bezug auf die Ressourcen habe ich keine Sorgen Obwohl mit einem Myrio am Ende habe ich noch eine Menge von DSP Slices für die Multiplikation und 10 kostenlose FlipFlops. So Ich denke, dieses Thema ist gelöst Danke für Ihre tolle Hilfe und interessante Gedanken. Cool Ich bin froh, dass es funktioniert, jetzt. Ich wuchs in der Ära ohne DSP-Scheiben in FPGAs, und Kleinere Zelle zählt, so immer noch dazu neigen, in diesen Ausdrücken zu denken, die ich immer noch gerne spenne D 25 Minuten Programmierung, um meine Compile-Zeiten zu bekommen, obwohl ich habe Fälle, wo ich schneiden Kompilieren Zeit von 90 Minuten auf 45 Minuten durch die Optimierung ziemlich viel Mit einem leistungsfähigen Server für die Kompilierung, das ist weniger wichtig. Eines dieser Optimierungen ist zu Reduzieren Sie Bitzählungen, wo ich kann, besonders für Multiplikatoren. Zum Beispiel ist Alpha 16 0 und für 0 0053 können Sie auch 12 -4 negative Integerzählung verwenden. Sie können auch in der Lage sein, viele obere Bits von Ihrem Eingang zu entfernen 5 Minuten Um die kleinste Bit-Count zu wählen, kann einfach 2-10 Minuten für jede kompilieren. Meine zweite Optimierung ist, um Multiplikationen zu reduzieren, aber mit einem DSP-Slice, das ist nicht so wichtig ich kann nicht finden, gute Dokumentation über die DSP-Scheiben, wenn Sie haben Einige, bitte Post Links, aber wie ich es verstehe, wenn Sie größere Zahlen Bit zählt, es braucht mehrere Scheiben, und vielleicht Zeit, um die Ergebnisse zu kombinieren. Und ein weiterer Trick wählen Sie ein Alpha mit einem einfachen binären Wert, wie 1 256 Sie Wählte um 1 189 und wechsle fs bis du ge T die Glättung Sie wollen Dann verwenden Sie eine Konstante für Alpha Multiply durch eine Konstante 1 256 ist frei in der FPGA es nur verschiebt die Bits. Für diese Angelegenheit, die Alpha-Konstante kann die Multiplikatoren ein bisschen optimieren Je nach den smarts des Optimierers, Es kann es zu einem Satz von Addierern ändern statt Frontpanel Eingänge sind ideal für immer Dinge zu arbeiten, aber Konstanten optimieren viel besser. CLD User seit dem 8. Januar 6.Wenn du durchschnittlich 16 mal so viele Samples fs 16x was du warst, solltest du 4 weitere Bits in deinem Feedback einbeziehen. Du hast doch schon pleanty, also das ist vielleicht nicht wichtig, wenn du nicht viel schneller gehst. Ansonsten steigert man fs Ist wahrscheinlich gut. Wenn der Eingang hat Niederfrequenz-Rauschen, über Sampling doesn t helfen, beseitigen, dass überhaupt Hochfrequenz-Rauschen, aber, reduziert mit Über-Sampling Wenn zum Beispiel das Rauschen über 10Hz ist -5dB, dass 10 ist - 5 mal die Amplitude des Signals, das du magst, und du probierst bei 20S s ab, du wirst wahrscheinlich -5dB in deiner anfänglichen Lesung abholen Wenn dein -3dB fc auch 10Hz ist, dann wirst du mit rund -8dB Lärm am Ende Ihr Signal Wenn Sie stattdessen 200S s nehmen, durchschnittliche Gruppen von 10, dann übergeben diese Mittelwerte an den Filter, Sie gewann t helfen Rauschen bei 10Hz Sie wurden 10Hz Rauschen ohne Sampling-Effekte, aber wird Rauschen über 100Hz um etwa einen Faktor zu reduzieren In der Nähe, aber nicht wirklich 10. Es gibt ganze Semester-lange Klassen, die diskutieren, warum, wie , Etc Die kurze Version ist diese jede Probe ist die Summe aus dem Signal, das Sie wollen und Rauschen Wenn Sie 10 Samples hinzufügen, erhalten Sie 10x das Signal, das Sie wollen, und die Summe von 10 Rauschen Die Art des Lärms bestimmt, was Sie bekommen, wenn Sie Füge die 10 Samples von Rauschen hinzu Gaussian Rauschen fügt eine Art und Weise etwas wie wenn 83 von Samples unter X sind, die Summe hat 83 Summen unter 1 1X, oder so etwas wie das Lineare Rauschen fügt einen anderen Weg hinzu Und wiederholende Muster fügen einen anderen Weg hinzu So, ohne genau zu wissen Was der Lärm ist, niemand kann dir mit Sicherheit antworten, außer dass die durchschnittliche Mehrzahl von Proben wahrscheinlich hilft und fast niemals weh tut. Es gibt auch die Frage des Aliasing Wenn du eine Sinus-Interferenz von 60Hz bei -3dB hast und du probierst 10 001S s immer annehmen, dass die Uhren nicht genau anpassen, bekommt man so etwas wie 0 006Hz bei -3dB zu deinem Signal hinzugefügt, und dein Filter gewinnt t es zu entfernen Aber die Samplerate auf 100 001S s zu stoßen, wird die Interferenz auf etwa 40Hz setzen , Also sollte dein Filter es beseitigen. Averagi Ng 10 Samples zu einem Zeitpunkt ist eine Art von Filter-Box Wenn Sie es in einem Frequenzbereich betrachten, können Sie sehen, dass einige höhere Frequenzen verschoben werden, um die Frequenzen in einer seltsamen Weise zu senken, und nicht alle sind reduziert Wenn Sie durchschnittlich 4000 S s , 100 zu einer Zeit, bekommst du durchschnittlich 40 mal pro Sekunde Mit 60Hz Interferenz, bekommst du etwa 1 3 so viel Lärm, verschoben auf 20Hz, die t Filter sowie 60Hz haben würde. So wäre es besser Um den EWMA-Filter mit der höheren Abtastrate zu verwenden, als zu durchschnittlichen Blöcken von Eingängen, dann filtern, dass und Mittelwert ist wahrscheinlich besser als nur mit einer langsameren Samplerate. Wenn Sie einen Eingangsadapter mit eingebauten elektronischen Filtern haben, ist das noch besser , Und es besteht keine Notwendigkeit, mehr als 2X die Filterfrequenz zu probieren. CLD User seit 10 Uhr 6.An Einleitung zur Verwendung von LabView - Verwendung einer zeitgesteuerten Schleife In der ersten LabVIEW-Note untersuchten wir einige einfache arithmetische Operationen in LabVIEW In dieser Anmerkung werden wir untersuchen, wie man ein einfaches Programm mit einer zeitgesteuerten Schleife schreibt. Es ist nicht genug, um Arithmetik zu machen In den meisten Anwendungen müssen Sie immer wieder Berechnungen durchführen. Wiederholte Berechnungen werden am besten mit einer zeitgesteuerten Schleife durchgeführt. Timed-Schleifen sind wichtig, weil man oft Situationen findet, in denen Sie Messungen wiederholt zu einer konstanten Zeit durchführen möchten Intervall Timed Loops lassen Sie Daten nehmen, wo Sie das Timing zwischen den Messungen einstellen können Bevor Sie zu zeitgesteuerten Loops kommen, gehen wir Sie durch einige einfache Loops, und wir werden mit einigen zeitgesteuerten Loops enden, die sinusförmige Signale erzeugen und anzeigen In der anderen LabVIEW Notizen, können Sie nur durch die Notiz lesen, aber Sie werden es besser machen, wenn Sie arbeiten, während wir diskutieren, was passiert ist. Das erste, was Sie tun werden, ist zu konstruieren Eine einfache zeitgesteuerte Schleife Sie müssen folgendes machen. Start LabView Wählen Sie neu vi. Wir verwenden einige der Routinen, die wir zuvor geschrieben haben. Sie müssen das Diagrammfenster aktiv haben Wählen Sie Fenster-Diagramm, wenn das Diagramm nicht aktiv ist und zeigt. Wählen Sie die Fenster-Show-Funktionen. Palette Die Palette "Funktionen" wird unten angezeigt. In der Palette "Funktionen" finden Sie das Menü "Strukturen" oben links und klicken Sie auf Optionen Wenn Sie den Mauszeiger über die verschiedenen Menüs setzen, können Sie mit einem kleinen Pop-up-Fenster wissen, was das ist Menü enthält. Stellen Sie eine while-Schleife auf dem Blockdiagramm. This ist, was Sie erhalten Machen Sie es mindestens diese Größe. Sie sollten einen Iterationszähler i und ein Loop Stop Bedingte Terminal Die while-Schleife ausgeführt wird, solange die Bedingte Terminal ist wahr - Obwohl du das selbst ändern kannst. Um das bedingte Terminal zu ändern, um wie das oben in der unteren rechten Ecke auszusehen - wenn es passiert, wie ein kleines Stoppschild auszusehen - mit der rechten Maustaste auf das Symbol klicken und auf Weiter setzen, wenn True. We wirdSchreiben Sie eine Schleife, die für eine Anzahl von Zeiten, die Sie angeben - schließlich Aber für jetzt, wir werden ein paar Dinge hinzufügen, um diesen Lauf zu machen Erste versuchen, die vi laufen Sie sollten eine Fehlermeldung, dass die bedingte Terminal ist nicht verdrahtet Das ist nicht das einzige Problem - aber es ist das Problem, dass du es zuerst beheben wirst. Um zu starten, geh zum Frontpanel und füge eine Numerische Anzeige aus dem Numerischen Menü hinzu. Wenn du die numerische Anzeige auf der Vorderseite hast, klicken Sie mit der rechten Maustaste auf die Schaltfläche Indikator und wählen Sie Terminal finden Sie werden in das Diagramm aufgenommen und das Terminal wird offensichtlich sein Hinweis, dass das Hinzufügen der Anzeige auf der Vorderseite automatisch ein Terminal für das Indikator zum Diagramm hinzufügt Es gibt einige Komponenten, die nur hinzugefügt oder gelöscht werden können - Von der Frontplatte oder dem Diagramm - auch wenn sie auf beiden erscheinen müssen. Bewegen Sie das Terminal innerhalb der while-Schleife. Ändern Sie die Darstellung in ein Integer-Format Das Steuerelement sollte blau sein, wenn Sie es richtig haben Blau zeigt eine Ganzzahl an Auf das Bedingte Terminal durch Rechtsklick auf das Terminal, um eine Konstante hinzuzufügen Machen Sie diese Konstante gleich True mit dem Handwerkzeug. An diesem Punkt sollte Ihr Blockdiagramm wie folgt aussehen. Jetzt können Sie das Programm laufen Alle, die passiert ist Dass die Anzeige zeigt die Schleife Zähler - und es wird zeigen, dass jede Schleife sehr wenig Zeit nimmt. Wie die Zahlen auf dem Indikator schnell zip durch, schlagen die Stop-Taste sieht aus wie ein Stop-Schild nur unter dem Menü. That s Ihre erste Ausrede in Die Welt der Schleifen Die Schleife, die Sie geschrieben haben sollte sehr schnell ausgeführt haben und sollte eine schnell wachsende Zahl in der Indikator auf der Vorderseite angezeigt haben. Wir können nun einen Timer der Schleife hinzufügen, um zu steuern, wie schnell es ausgeführt wird. Next werden wir die Timing der Loop-Ausführung. On der Zeit-Menü wählen Sie den Timer mit einem Metronom-Symbol und legen Sie es in die Schleife. Right klicken Sie auf den Timer, um eine Konstante hinzuzufügen, dass Konstante gleich 1000 Das sind 1000 Millisekunden mit dem Text-Tool. Ihr Diagramm sollte Schau l Ike dieses Ausgenommen das bei der Erstellung des Bildes unten, können wir den Draht verloren haben, der von der TRUE-Konstante zum bedingten Terminal geht. Der Draht sollte da sein Es ist einfach nicht im Bild zu sehen. Auf diesen Punkt hast du eine Schleife, die zeitlich abgestimmt ist, Und da die Eingabe in den Timer 1000 ist, dass s Millisekunden es immer läuft in 1 Sekunde Intervalle Es gibt zwei Dinge, die wir tun wollen, um dieses Programm zu verbessern. Wir wollen in der Lage sein, das Zeitintervall in Sekunden einstellen. Wir wollen die Anzeige Verstrich die Zeit in Sekunden. Wir werden uns um diese beiden Sorgen kümmern. Um das Zeitintervall einzustellen, musst du eine numerische Steuerung auf dem Frontpanel hinzufügen. Machen Sie das jetzt HINWEIS Sie müssen ein Steuerelement verwenden, das Gleitkomma-Eingänge erlaubt, wenn Sie möchten Um die Schleife in Intervallen wie 1 5 Sekunden zu fügen. Füge dieses Steuerelement hinzu. Nach dem Hinzufügen der Steuerung, klicken Sie mit der rechten Maustaste auf das Steuerelement und suchen Sie das Terminal für die numerische Steuerung, die Sie gerade hinzugefügt haben. Dann müssen Sie das Steuerelement so verdrahten, dass es das steuert Eingabe in den Timer-Block oben oben Wir haben nur eine Konstante von 1000 benutzt, um eine Sekunde zu bekommen Wenn du das Zeitintervall in Sekunden eingegeben hast, musst du das Zeitintervall multiplizieren, das der Benutzer um einen Faktor 1000 eingibt, um das Timerintervall in Millisekunden zu erhalten, also brauchst du einen Multiplikator und eine konstante Eingabe auf eine Seite des Multiplikators gleich 1000.Jetzt, Ihr Blockdiagramm sollte so etwas aussehen. Jetzt, führen Sie Ihr Programm Natürlich ist das einzige, was dieses Programm ist, Ihnen zu sagen, wie lange es läuft Es ist ziemlich nutzlos, es sei denn, du benutzt es als Ei-Timer. P1 Ändern Sie das Programm oben, so dass Sie das Programm mit einem ON-OFF-Control stoppen können Hier a Hinweis Versuchen Sie, die Konstante zu ersetzen, die an das bedingte Terminal mit einer Steuerung verdrahtet ist. Klicken Sie auf die Konstante auf TRUE in der Block-Diagramm oben und ändern Sie es auf ein Steuerelement Dann finden Sie die Steuerung auf der Vorderseite Ein endgültiges Programm - nur um dies zu beenden, indem Sie etwas, das s nah an nützlich ist Die nächste Lektion in dieser Serie wird nehmen Du in die welt Von IEEE-488 GPIB-Messungen, und wenn du sie in eine Schleife steckst, dann hast du einige interessante Dinge, die du tun kannst. Jedenfalls wird dieses letzte Programm eine Sinuswelle berechnen und es auf dem Zifferblatt anzeigen. Hier ist das Blockdiagramm Beachten Sie das folgende in diesem Blockdiagramm. Im vorherigen vi haben wir die verstrichene Zeit berechnet und es auf der Vorderseite angezeigt. Hier nehmen wir diese Zeit und multiplizieren Sie es mit einem Faktor, der 2 p f ist. Der 2 p Faktor ist eine Konstante eingebaut LabVIEW Sie finden es auf dem Panel der numerischen Operationen, und Sie sollten alle anderen Konstanten zur Verfügung stellen. Das Ergebnis der Multiplikationen ist die Eingabe einer Sinusfunktion Sie können diese Funktion auf der numerischen Palette von Funktionen in einem Sub finden - palette von trigonometrischen Funktionen Überprüfen Sie, was sonst noch da ist. Schließlich wird die Ausgabe der Sinus-Funktion auf einer Meter-Anzeige angezeigt. Diese Anzeige hat einen Frontpanel-Teil, und Sie sollten ihn von der Frontplatte hinzufügen Panel sieht so aus Wenn du fertig bist. P2 Ändern Sie das Programm oben, damit Sie die Amplitude der Sinuswelle eingeben können. Und das ist für diese Lektion. In der nächsten Lektion werden wir Sie mit einigen einfachen IEEE-488 GPIB Messungen kennenlernen und danach Wir werden diese Messungen innerhalb einer Schleife durchführen.

No comments:

Post a Comment