Wednesday, 5 July 2017

Echtzeit Gleitenden Durchschnitt Matlab

Ich bin neu bei Simulink. Ich möchte den Durchschnitt der eingehenden Daten (die nach einigen Intervallen kommt) von einem Block zu tun. Zum Beispiel sind ununterbrochene gerahmte Daten von 42 Proben von einem Block entfernt. Zusammen mit den gerahmten Daten gibt es einen weiteren Ausgang (Tag), der besagt, dass diese Framesamples zu welcher Kategorie gehören. Tags sind Zahlen von 1-6. Die Ausgabe ist zufällig. Ich möchte die gleiche Kategorie Daten Durchschnitt. Wie der erste Frame ist von cat1, dann nach 4 Frames Kat1 Frame wieder kommt. Nun, wie sollte ich diesen neuen Rahmen mit dem vorherigen Ich möchte dies für alle Kategorien zu tun Durchschnitt. Bitte helfen Sie mir heraus in diesem. Eine schnelle und schmutzige Lösung wäre, eine Arraylist für jede Kategorie implementieren. Initialisieren Sie die Liste mit NaNs und halten Sie einen Zähler für die letzte Probe aus jeder Kategorie. Mit der Mittelfunktion können Sie den Mittelwert aller Messungen erhalten. Wenn Sie nur den Durchschnitt des aktuellen Rahmens und des vorherigen Rahmens wollen, können Sie einfach (cat1 (n1) cat1 (n11)) bedeuten, wobei cat1 der Arraylist für Frames aus der Kategorie 1 ist und n1 der Index des vorherigen Frames in cat1 ist . Wenn Sie einen gewichteten gleitenden Durchschnitt für eine Echtzeitimplementierung wünschen, erstellen Sie für jede Kategorie eine durchschnittliche Variable (nennen Sie sie av1, av2 usw.) und berechnen Sie av1 alphaav1 (1-alpha) cat1 (n11) (wobei alpha das Gewicht ist Bis zum vorherigen Durchschnitt (alphalt1) und cat1 (n11) ist die neue Messung), wenn ein cat1-Rahmen kommt. (SMA) in Simulink S-Funktion im Versuch, die SMA der verschiedenen Ausgänge, die ich aus einem Simulink Real-Time-Block zu berechnen. Theres ein WMA (gewichteter gleitender Durchschnitt) Block in der Bibliothek von Simulink, der mir erlauben kann, die, wenn sie mit dem Ausgang gekoppelt wird, den ich zu Durchschnitt brauche, das Resultat im suchend gibt. Das Problem ist, ist dies ein gewichtet nicht ein einfacher gleitender Durchschnitt. Ich habe versucht, alle Gewichte gleich 1 (die gibt die SMA), aber dafür zu tun, muss ich wissen, die Anzahl der Punkte in jedem Zyklus. Das Problem ist, dass die Anzahl der Punkte in jedem Zyklus variiert in Abhängigkeit von einem bestimmten Parameter im Code, so dass die WMA nutzlos ist, weil ich nicht die Anzahl der Punkte in jedem Zyklus ich versuchte, es manuell zu codieren, zuerst in Matlab C, ive folgend Code: Count0 laufend0 head0 j1 klength (Drehmoment) SolverFTS50e-6 Solver Fester Zeitschritt in den Konfigurationsparametern ModelFTS1 (6N), abhängig von N (Motordrehzahl), wenn (Count lt nbmax) läuft (laufender (Count-1) Schwanz (I) - Kopf (j)) nbmax jj1 Dieser Code läuft ziemlich gut auf Matlab, aber ich brauchte, um in einem S-Code - Funktion Simulink-Baustein. Ich versuchte alles, nur um einen Vektor oder einen Zeiger zu definieren, die mir erlauben, die Werte der Ausgabe zu merken, die gemittelt werden müssen, aber sein gerechtes nicht arbeitet. Jede Hilfe in Bezug auf die Umwandlung von diesem Code in eine S-Funktion Simulink-Code würde geschätzt werden Sie können Ihre Watch-Liste als Threads, die Sie haben Lesezeichen denken. Sie können Tags, Autoren, Threads und sogar Suchergebnisse zu Ihrer Beobachtungsliste hinzufügen. Auf diese Weise können Sie leicht verfolgen Themen, die Sie interessiert sind in. Um Ihre Watch-Liste, klicken Sie auf die quotMy Newsreaderquot Link. Um Artikel zu Ihrer Watchlist hinzuzufügen, klicken Sie auf den Link "quotadd to watch listquot" am unteren Rand einer Seite. Wie füge ich ein Element zu meiner Watchlist hinzu Um Suchkriterien zu Ihrer Watchlist hinzuzufügen, suchen Sie den gewünschten Begriff im Suchfeld. Klicken Sie auf den quotAddd diese Suche zu meinem watch listquot Link auf der Suchergebnisseite. Sie können auch einen Tag zu Ihrer Überwachungsliste hinzufügen, indem Sie nach dem Tag mit der Anweisung quottag suchen: tagnamequot wobei tagname der Name des Tags ist, das Sie ansehen möchten. Um einen Autor zu Ihrer Beobachtungsliste hinzuzufügen, gehen Sie zur Autorenprofilseite und klicken Sie auf den quotAdd this author zu meinem watch listquot Link am oberen Rand der Seite. Sie können auch einen Autor zu Ihrer Watch-Liste hinzufügen, indem Sie zu einem Thread, dass der Autor gebucht hat und klicken Sie auf den quotAdd diesen Autor zu meinem watch listquot Link. Sie werden benachrichtigt, wenn der Autor eine Post macht. Um einen Thread zu Ihrer Watch-Liste hinzuzufügen, gehen Sie auf die Thread-Seite und klicken Sie auf den Link diesen Thread zu meinem watch listquot Link am oberen Rand der Seite. Über Newsgroups, Newsreader und MATLAB Central Was sind Newsgroups Die Newsgroups sind ein weltweites Forum, das allen offen steht. Newsgroups werden verwendet, um eine breite Palette von Themen zu diskutieren, Ankündigungen machen und Handelsdateien. Diskussionen sind Threaded, oder gruppiert in einer Weise, die Sie eine gebuchte Nachricht und alle ihre Antworten in chronologischer Reihenfolge lesen können. Dies macht es einfach, den Faden des Gesprächs zu folgen, und zu sehen, whatrsquos bereits gesagt, bevor Sie Ihre eigene Antwort posten oder eine neue Buchung. Newsgroup-Inhalte werden von Servern verteilt, die von verschiedenen Organisationen im Internet gehostet werden. Nachrichten werden unter Verwendung von offenen Standardprotokollen ausgetauscht und verwaltet. Keine einzelne Entität ldquoownsrdquo die Newsgroups. Es gibt Tausende von Newsgroups, die jeweils ein einziges Thema oder ein bestimmtes Thema behandeln. Der MATLAB Central Newsreader platziert und zeigt Nachrichten in der comp. soft-sys. matlab-Newsgroup an. Wie lese oder poste ich in den Newsgroups Sie können den integrierten Newsreader auf der MATLAB Central-Website verwenden, um Nachrichten in dieser Newsgroup zu lesen und zu posten. MATLAB Central wird von MathWorks gehostet. Nachrichten, die über den MATLAB Central Newsreader veröffentlicht werden, werden von allen Benutzern der Newsgroups gesehen, unabhängig davon, wie sie auf die Newsgroups zugreifen. Es gibt mehrere Vorteile der Verwendung von MATLAB Central. Ein Konto Ihr MATLAB Central-Konto ist mit Ihrem MathWorks-Konto verknüpft. Verwenden Sie die E-Mail-Adresse Ihrer Wahl Mit dem MATLAB Central Newsreader können Sie eine alternative E-Mail-Adresse als Ihre Buchungsadresse definieren, um Unfälle in Ihrer primären Mailbox zu vermeiden und Spam zu reduzieren. Spam-Kontrolle Die meisten Newsgroup-Spam wird vom MATLAB Central Newsreader gefiltert. Tagging-Nachrichten können von jedem angemeldeten Benutzer mit einem entsprechenden Label versehen werden. Tags können als Schlüsselwörter verwendet werden, um bestimmte Dateien von Interesse zu finden, oder als eine Möglichkeit, Ihre Bookmarking-Einträge zu kategorisieren. Sie können wählen, anderen zu erlauben, Ihre Umbauten anzusehen, und Sie können otherrsquo Umbauten als auch die der Gemeinschaft an sehen oder suchen. Tagging bietet eine Möglichkeit, sowohl die großen Trends und die kleineren, mehr obskuren Ideen und Anwendungen zu sehen. Beobachtungslisten Durch das Einrichten von Überwachungslisten können Sie über Updates informiert werden, die für Beiträge erstellt wurden, die von Autor, Thread oder Suchvariablen ausgewählt wurden. Ihre Benachrichtigungswünsche können per E-Mail (täglich digest oder sofort), im My Newsreader oder per RSS-Feed gesendet werden. Andere Möglichkeiten, um auf die Newsgroups zugreifen Verwenden Sie einen Newsreader über Ihre Schule, Arbeitgeber oder Internet Service Provider Pay for newsgroup Zugang von einem kommerziellen Anbieter Verwenden Sie Google Groups Mathforum. org bietet einen Newsreader mit Zugriff auf die comp. soft sys. matlab newsgroup Führen Sie Ihre eigenen Server. Für typische Anweisungen siehe: slyckng. phppage2 Wählen Sie Ihr CountryDocumentation-Objekt Speichern und Laden saveObjectImpl definiert, welche Eigenschaft - und Statuswerte in einer MAT-Datei gespeichert werden, wenn Sie auf diesem Objekt aufrufen. Wenn Sie für Ihre Systemobjektklasse keine saveObjectImpl-Methode definieren, werden nur öffentliche Eigenschaften und Eigenschaften mit dem DiscreteState-Attribut gespeichert. Speichern Sie den Zustand eines Objekts nur, wenn das Objekt gesperrt ist. Wenn Sie das gespeicherte Objekt laden, lädt das Objekt in diesem gesperrten Zustand. In diesem Systemobjekt werden die Filterkoeffizienten gesichert, wenn das Objekt gesperrt ist. LoadObjectImpl definiert, welche Systemobjekt-Eigenschaft und Zustandswerte beim Laden einer MAT-Datei geladen werden. LoadObjectImpl sollte Ihrem saveObjectImpl entsprechen, um sicherzustellen, dass alle gespeicherten Eigenschaften und Daten geladen werden. Hinweis: Sie müssen Access protected für diese Methode festlegen. Systemobjekt Verwendung in MATLAB Dieses Beispiel verwendet das Systemobjekt, um Rauschen aus einer verrauschten Impulsfolge zu entfernen. Die Länge des gleitenden Durchschnittsfilters beträgt 30 Proben. Wenn Sie den vordefinierten dspdemo. MovingAverageFilter verwenden. Ersetzen Sie diesen Namen für MovingAverageFilter im Klasse-Konstruktor, zum Beispiel movingAverageFilter dspdemo. MovingAverageFilter (WindowLength, 30). Simulink-Anpassungsmethoden Sie müssen ein paar Methoden definieren, um das Systemobjekt in einem Simulink MATLAB-Systemblock verwenden zu können. Diese Methoden sind nicht erforderlich, wenn Sie das Systemobjekt nur in MATLAB verwenden. GetOutputSizeImpl gibt die Größe der einzelnen Ausgabeports zurück. Bei Systemobjekten mit einem Eingang und einem Ausgang und wo die Ein - und Ausgabegrößen gleich sein sollen, müssen Sie diese Methode nicht implementieren. Im Fall von MovingAverageFilter. Gibt es einen Eingang und Ausgang und die Größe von jedem ist das gleiche. Entfernen Sie daher diese Methode aus der Klassendefinition von MovingAverageFilter. GetDiscreteStateSpecificationImpl gibt die Größe, den Datentyp und die Komplexität einer Eigenschaft zurück. Diese Eigenschaft muss eine Eigenschaft von Discrete-State sein. Sie müssen diese Methode definieren, wenn Ihr Systemobjekt Eigenschaften von Discrete-State hat und im MATLAB-Systemblock verwendet wird. In diesem Beispiel wird das Verfahren verwendet, um die State-Eigenschaft zu definieren. Wähle dein Land


No comments:

Post a Comment