|
|
Echtzeitauswertung im gleitenden Fenster in Simulink |
|
Thesa |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.02.2019, 19:40
Titel: Echtzeitauswertung im gleitenden Fenster in Simulink
|
|
|
|
|
Hallo zusammen,
Ich hoffe der Themenname verwirrt nicht zu sehr...
Ich bin dabei ein Regelung in Echtzeit mit Simulink zu verwirklichen. Bevor ich sehr viel Arbeit in die Sache stecke wollte ich hier kurz nachfragen, ob mein Ansatz so richtig ist, ich bin mir nämlich sehr unsicher.
Ein Signal kommt in Echtzeit als Input in meinem Simulink Model an. Ich möchte das Signal jetzt gerne in einem gleitenden Zeitfenster weiterverarbeiten, um genau zu sein filtern. Den Filter habe ich in matlab selbst geschrieben und muss ihn jetzt auf das Echtzeitprogramm ummünzen. Er arbeitet bis dato mit Zeitfenstern von Werten.
Mein Ansatz wäre gewesen, das Signal mit dem Delay Block in bestimmte Wertfenster (zB 300 Werte) zu teilen und in den Workspace zu verfrachten. Dort hätte ich das jeweils aktuelle Wertfenster durch meinen Filter laufen lassen und ausgewertet. Um das zu tun, müsste ich eine if-Schleife schreiben, die die Werte des Vektors ausliest und das jeweils aktuelle Zeitfenster extrahiert. Ich bin mir nicht sicher, ob ich damit nicht gegen das Programm Simulink arbeite. Simulink benutzt ja immer nur einen Wert aus dem Eingangssignal, den es dann weiter verarbeitet. Ich muss für meinen Filter aber immer x Werte zusammennehmen und damit weiterarbeiten.
Außerdem würde ich gerne statt des Wertfensters ein Zeitfenster benutzen, in dem die Werte der jeweils letzten zB. 3s weiterverarbeitet werden. Das lässt sich allerdings nicht mit dem Delay Block realisieren. Gibt es dahingehend noch elegantere Lösungen?
Liebe Grüße, Theresa
|
|
|
|
|
Raumfahrtkapitän |
Forum-Newbie
|
|
Beiträge: 1
|
|
|
|
Anmeldedatum: 12.02.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.02.2019, 10:13
Titel: Echtzeitauswertung im gleitenden Fenster
|
|
Ich bin mir nicht sicher ob du das Programm richtig verstanden hast.
Warum benutzt du nicht einfach einen FIR Filter?
Der Delay Block gibt dir jeweils am Ende deiner Simulation Werte in den Workspace weiter. Das könnte ein Problem sein.
|
|
|
fabianT |
Forum-Fortgeschrittener
|
|
Beiträge: 84
|
|
|
|
Anmeldedatum: 31.10.18
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.02.2019, 21:20
Titel:
|
|
Hallo,
während der Simulation Werte in den MATLAB Workspace zu schreiben wäre möglich, ist aber nicht zu empfehlen. Um deinen Cide zu verwenden, könntest du einen MATLAB Function Bkock verwenden. Wenn du alles auf einem Echtzeitsystem verwenden möchtest, sollte der MATLAB Code C-Code fähig ist...
Un die letzten dreihundert Signale als Array im Filter zu verwenden, müsstest du das Signal buffern. Entweder mit dem Buffer Block (DST TB) oder du schreibst dir selbst einen, zB mit einem MATLAB Function Block
Viele Grüße
Fabian
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|