Friday 21 July 2017

Simulink Gleitenden Durchschnitt Beispiel

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 gleichen 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. Beantwortet Mar 26 14 um 17: 39Weight Moving Average (Obsolete) Hinweis: Der Weighted Moving Average Block ist veraltet. Dieser Block wurde aus der Diskrete Bibliothek in R2008a entfernt und durch den diskreten FIR-Filterblock ersetzt. Bestehende Modelle, die den Weighted Moving Average Block enthalten, funktionieren jedoch weiterhin für die Abwärtskompatibilität. Verwenden Sie den Block für diskrete FIR-Filter in neuen Modellen. Verwenden Sie die Slupdate-Funktion, um Weighted Moving Average mit Discrete FIR Filter in vorhandenen Modellen zu ersetzen. Die gewichteten Moving Average-Blockproben und hält die N neuesten Eingaben, multipliziert jeden Eingang mit einem angegebenen Wert (angegeben durch den Parameter "Weight") und stapelt sie in einem Vektor. Dieser Baustein unterstützt sowohl Single-Input-Single-Output - (SISO) als auch Single-Inputmulti-Output (SIMO) - Modi. Für den SISO-Modus wird der Weights-Parameter als Zeilenvektor angegeben. Für den SIMO-Modus werden die Gewichte als Matrix angegeben, wobei jede Zeile einem separaten Ausgang entspricht. Sie können wählen, ob der Datentyp und die Skalierung der Gewichte im Dialog mit dem Parameter Gain-Datentyp spezifiziert werden sollen oder nicht. Der Parameter Initial condition liefert die Anfangswerte für alle Zeiten vor der Startzeit. Sie legen das Zeitintervall zwischen den Samples mit dem Parameter Sample time fest. Der gewichtete Moving Average-Block multipliziert zuerst seine Eingaben mit dem Parameter "Gewichte", wandelt diese Ergebnisse mit den angegebenen Rundungs - und Überlaufmodi in den Ausgabedatentyp um und führt dann die Summierung aus. Unterstützung des Datentyps Der Block "Gewichteter Verschiebungsdurchschnitt" unterstützt alle numerischen Datentypen, die Simulink x00AE unterstützt, einschließlich Festkomma-Datentypen. Parameter Legen Sie die Gewichte des gleitenden Durchschnitts einer Zeile pro Ausgabe fest. Der Parameter "Gewichte" wird von Doubles in den angegebenen Datentyp offline umgewandelt, indem Round-to-Nearest und Sättigung verwendet werden. Geben Sie die Anfangswerte für alle Zeiten vor der Startzeit an. Der Parameter Initial condition wird vom Doubles in den Inputdatentyp Offline über Round-to-Nearest und Sättigung konvertiert. Geben Sie das Zeitintervall zwischen den Samples an. Um die Abtastzeit zu erben, setzen Sie diesen Parameter auf -1. Weitere Informationen finden Sie unter Angeben der Beispielzeit in der Online-Dokumentation. Ausgabedatentyp Geben Sie den Ausgabedatentyp an. Sie können Folgendes festlegen: Eine Regel, die einen Datentyp erbt, z. B. Inherit: Inherit über Backpropagation Der Name eines Datentypobjekts, z. B. ein Simulink. NumericType-Objekt Ein Ausdruck, der beispielsweise einen Datentyp auswertet , Fixdt (1,16,0) Klicken Sie auf die Schaltfläche Datentyp-Assistent anzeigen, um den Datentyp-Assistenten anzuzeigen. Mit dem Sie den Parameter Ausgabedatentyp einstellen können. Sperren der Ausgabeskalierung gegen Änderungen mit dem Autokalibrierungswerkzeug Wählen Sie diese Option, um die Skalierung der Ausgänge gegen Änderungen mit dem Fixpunkt-Werkzeug zu sperren. Integer-Rundungsmodus Rundungsmodus für die Fixpunktausgabe. Weitere Informationen finden Sie unter Rundung. Sättigung auf max oder min, wenn Überläufe auftreten Wenn ausgewählt, fixpunktüberläufe sättigen. Andernfalls wickeln sie. Geben Sie den Datentyp des Parameters "Gewichte" an. Sie können Folgendes festlegen: Eine Regel, die einen Datentyp erbt, z. B. Inherit: Inherit über interne Regel Der Name eines Datentypobjekts, z. B. ein Simulink. NumericType-Objekt Ein Ausdruck, der beispielsweise einen Datentyp auswertet , Fixdt (1,16,0) Klicken Sie auf die Schaltfläche Datentyp-Assistent anzeigen, um den Datentyp-Assistenten anzuzeigen. Mit dem Sie den Parameter Gain-Datentyp einstellen können. (Weitere Informationen finden Sie unter Datentypen mit Hilfe des Datentypassistenten.) Angenommen, Sie möchten diesen Block für zwei Ausgänge (SIMO-Modus) konfigurieren, wobei der erste Ausgang durch y 1 (k) a 1 x22C5 u (k) b 1 x22C5 gegeben ist (K x2212 1) c 1 x22C5 u (k x2212 2) Der zweite Ausgang ist gegeben durch y 2 (k) a 2 x22C5 u (k) b 2 x22C5 u (k x2212 1) und die Anfangswerte von u (k - 1) und u (k - 2) sind durch ic1 und ic2 gegeben. beziehungsweise. Um den Block für den gewichteten Moving Average für diesen Fall zu konfigurieren, müssen Sie den Parameter Weight als a1 b1 c1 a2 b2 c2 mit c2 0 und den Parameter Initial condition als ic1 ic2 angeben. CharacteristicsDocumentation Moving Average Methode 8212 Mittelungsmethode Schiebefenster (default) Exponentialgewichtung Schiebefenster 8212 Ein Fenster der Länge Die Fensterlänge bewegt sich über die Eingabedaten in jedem Kanal. Für jeden Sample, den das Fenster verschiebt, berechnet der Block den Mittelwert über die Daten im Fenster. Exponentialgewichtung 8212 Der Block multipliziert die Proben mit einem Satz von Gewichtungsfaktoren. Die Größe der Gewichtungsfaktoren nimmt exponentiell ab, wenn das Alter der Daten ansteigt und niemals Null erreicht. Um den Durchschnitt zu berechnen, summiert der Algorithmus die gewichteten Daten. Fensterlänge angeben 8212 Flag zur Angabe der Fensterlänge auf (Standard) aus Wenn Sie dieses Kontrollkästchen aktivieren, entspricht die Länge des Schiebefensters dem Wert, den Sie in Fensterlänge angeben. Wenn Sie dieses Kontrollkästchen deaktivieren, ist die Länge des Schiebefensters unendlich. In diesem Modus berechnet der Block den Durchschnitt des aktuellen Samples und alle vorherigen Samples im Kanal. Fensterlänge 8212 Länge des Schiebefensters 4 (default) positive skalare Ganzzahl Die Fensterlänge gibt die Länge des Schiebefensters an. Dieser Parameter wird angezeigt, wenn Sie das Kontrollkästchen Fensterlänge angeben auswählen. Vergessender Faktor 8212 Exponentieller Gewichtungsfaktor 0,9 (Voreinstellung) positiver realer Skalar im Bereich (0,1 Dieser Parameter gilt, wenn Sie Methode auf Exponentielle Gewichtung setzen. Ein Vergessensfaktor von 0,9 gibt mehr Gewicht zu den älteren Daten als ein Vergessensfaktor von 0,1 Ein vergessener Faktor von 1.0 zeigt unendlichen Speicher an Alle vorherigen Samples erhalten ein gleiches Gewicht Dieser Parameter ist einstellbar und kann auch während der Simulation verändert werden Simulieren mit 8212 Simulationsart Codegenerierung Interpreted Simulation Modell mit dem erzeugten C-Code Simulink x00AE erzeugt beim erstmaligen Ausführen einer Simulation C-Code für den Baustein Der C-Code wird für nachfolgende Simulationen wiederverwendet, solange sich das Modell nicht ändert Simulationsgeschwindigkeit als interpretierte Ausführung Simulieren Sie Modell mit dem Interpreter MATLAB x00AE Diese Option verkürzt die Startzeit, hat aber eine langsamere Simulationsgeschwindigkeit als die Codegenerierung. Mehr über Algorithmen Schiebefenstermethode Bei der Schiebefenstermethode ist die Ausgabe für jede Eingangsabtastung der Durchschnitt der aktuellen Abtastung und der Len - 1 vorherigen Abtastwerte. Len ist die Länge des Fensters. Um die ersten Len - 1 - Ausgänge zu berechnen, füllt der Algorithmus das Fenster mit Nullen aus, wenn das Fenster noch nicht genügend Daten enthält. Als Beispiel, um den Durchschnitt zu berechnen, wenn die zweite Eingangsabtastung kommt, füllt der Algorithmus das Fenster mit Len-2 Nullen. Der Datenvektor, x. Sind dann die beiden Datenabtastungen, gefolgt von Len-2 Nullen. Wenn Sie die SpecifyWindowLength - Eigenschaft auf false festlegen. Wählt der Algorithmus eine unendliche Fensterlänge. In diesem Modus ist die Ausgabe der gleitende Durchschnitt des aktuellen Samples und alle vorhergehenden Samples im Kanal. Exponentielles Gewichtungsverfahren Bei dem exponentiellen Gewichtungsverfahren wird der gleitende Durchschnitt rekursiv unter Verwendung dieser Formeln berechnet: w N. x03BB x03BB w N x2212 1. x03BB 1. x x00AF N. x03BB (1 x2212 1W N. x03BB) x x00AF N x2212 1. x03BB (1 w N. x03BB) x N x x00AF N. x03BB 8212 Bewegender Mittelwert beim aktuellen Abtastwert x N 8212 aktueller Dateneingabemuster x x00AF N x2212 1. x03BB 8212 Bewegender Mittelwert beim vorhergehenden Abtastwert 955 8212 Vergößerungsfaktor w N. x03BB 8212 Gewichtungsfaktor für den aktuellen Datenabtastwert (1 x2212 1 w N. x03BB) x x00AF N x2212 1. x03BB 8212 Auswirkung der vorherigen Daten auf den Mittelwert Für den ersten Abtastwert mit N 1 wählt der Algorithmus w N. x03BB 1. Für die nächste Probe wird der Gewichtungsfaktor aktualisiert und zur Berechnung des Mittelwertes gemäß der rekursiven Gleichung verwendet. Wenn das Alter der Daten zunimmt, nimmt die Größe des Gewichtungsfaktors exponentiell ab und erreicht niemals Null. Mit anderen Worten, die jüngsten Daten haben mehr Einfluss auf den aktuellen Durchschnitt als die älteren Daten. Der Wert des Vergessensfaktors bestimmt die Änderungsgeschwindigkeit der Gewichtungsfaktoren. Ein Vergessensfaktor von 0,9 verleiht den älteren Daten mehr Gewicht als ein Vergessensfaktor von 0,1. Ein Vergessensfaktor von 1,0 zeigt unendlichen Speicher an. Alle vorhergehenden Proben erhalten ein gleiches Gewicht. Systemobjekte Wählen Sie Ihr Land aus


No comments:

Post a Comment