WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Vektor Delay

 

Blackeagle
Forum-Anfänger

Forum-Anfänger



Beiträge: 20
Anmeldedatum: 21.01.10
Wohnort: Hamburg
Version: R2011b
     Beitrag Verfasst am: 06.08.2013, 14:50     Titel: Vektor Delay
  Antworten mit Zitat      
Hallo!

Ich bin recht unerfahren mit Simulink und brauche daher eure geschätze Hilfe.
Ich habe einen Vektor, welcher aus einem Matlab-Function-Block kommt und möchte diesen gerne in einen Delay z^-1 geben.
Dies scheint aber nicht zu funktionieren. Da der Vektor nur fünf Elemente besitzt habe ich ihn nun in die einzelnen Komponenten gesplittet und auf fünf einzelne z^-1 gegeben. Ist natürlich recht aufwändig.
Gibt es eine Möglichkeit, den Vektor in einem Rutsch zu verzögern?

Vielen Dank schon mal für Tipps,
Grüße
Private Nachricht senden Benutzer-Profile anzeigen


knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2013, 06:39     Titel:
  Antworten mit Zitat      
Wieso sollte der Delay Block nicht funktionieren? Der Block verzögert um ein Zeitschritt. Hast du den Eingang mit dem Ausgang vom Delay Block verglichen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Blackeagle
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 20
Anmeldedatum: 21.01.10
Wohnort: Hamburg
Version: R2011b
     Beitrag Verfasst am: 07.08.2013, 09:14     Titel:
  Antworten mit Zitat      
Hi!

Was meinst du mit Vergleichen? Die Anordnung sieht folgerndermaßen aus: Aus einem Embedded-Matlab-Block kommt ein Vektor, geht auf einen Delay und danach sofort wieder in den selben Matlab-Block. Ich probiere die Konstellation noch einmal aus, dann kann ich genau sagen, welche Fehler ich bekomme.

Grüße!

EDIT: So, habe es jetzt noch mal ausprobiert und bekomme im Matlab-Block ein size mismatch:
Zitat:
Size mismatch (size [5 x 1] ~= size [1 x 5]).

Jetzt frage ich mich, wieso? Ich habe immer einen Zeilenvektor benutzt und transponiere nirgendwo. Oder macht das Delay aus dem Zeilenvektor einen Spaltenvektor?
Private Nachricht senden Benutzer-Profile anzeigen
 
Blackeagle
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 20
Anmeldedatum: 21.01.10
Wohnort: Hamburg
Version: R2011b
     Beitrag Verfasst am: 07.08.2013, 12:23     Titel:
  Antworten mit Zitat      
EDIT2: Ich glaube, das Problem liegt darin, dass Simulink glaubt, der Vektor, welcher ins Delay gegeben wird, sei eine Art Eingangssignalfolge und nicht ein Vektor, in dem jede einzelne Komponente verzögert werden soll.
Private Nachricht senden Benutzer-Profile anzeigen
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2013, 12:30     Titel:
  Antworten mit Zitat      
Zeig dein (Teil-)Modell wo man etwas sieht. Der Delay Block macht nichts außer einer Verzögerung. Wenn du den Delay Block aus der DSP Toolbox meinst, dann willst du vielleicht bei Input processing die option sample based
Private Nachricht senden Benutzer-Profile anzeigen
 
Blackeagle
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 20
Anmeldedatum: 21.01.10
Wohnort: Hamburg
Version: R2011b
     Beitrag Verfasst am: 07.08.2013, 12:46     Titel:
  Antworten mit Zitat      
Hi!

Habe beide Delays genutzt, also aus normaler und aus der DSP-Bibliothek. Bin jetzt soweit, dass beide wohl nur Spaltenvektoren können, also die, wessen Komponnten durch ; getrennt sind. Habe gerade mal alles transponiert und schon ging es. Da ich zuvor immer mit Zeilenvektoren gearbeitet habe, ist das nun zwar etwas umständlich, aber ok.

Im Anhang noch mal ein Ausschnitt. Es geht um das Delay unterhalb des großen Matlab-Blocks, an welchem auch die fünffach-Displays hängen.

Grüße!

Clipboard01.png
 Beschreibung:

Download
 Dateiname:  Clipboard01.png
 Dateigröße:  21.98 KB
 Heruntergeladen:  657 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2013, 13:17     Titel:
  Antworten mit Zitat      
Vielleicht ist es nicht mehr so wichtig aber ich glaub dem Delay ist wirklich egal ob es Zeilen oder Spalten Vektor ist. Es muss bei dir an etwas anderem gelegen haben.

Hab da mal Zeilen und Spalten Vektor verzögert und es macht kein unterschied.

delay_test.png
 Beschreibung:

Download
 Dateiname:  delay_test.png
 Dateigröße:  12.37 KB
 Heruntergeladen:  622 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Blackeagle
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 20
Anmeldedatum: 21.01.10
Wohnort: Hamburg
Version: R2011b
     Beitrag Verfasst am: 07.08.2013, 13:21     Titel:
  Antworten mit Zitat      
Ok, sieht interessant aus. Bei mir war auch mehr das Problem, dass wenn ich den Spaltenvekor nach dem Delay wieder auf den ursprünglichen Matlabblock geführt habe, hat er mir innerhalb des Blocks den mismatch-Fehler ausgegeben.
Muss ich für ein runderes Verhalten tatsächlich noch mal debuggen.
Hast du an den Optionen im Delay irgendwas verändert? Also Frame-based oder ähnliches ausgewählt?

EDIT: Dieses [1x5] stand bei meinen Signalen nie dran. Vllt hat meine Matlab-Funktion irgendetwas transponiert, ohne dass ich es gemerkt habe.
Private Nachricht senden Benutzer-Profile anzeigen
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2013, 13:23     Titel:
  Antworten mit Zitat      
Nein (delay length auf 1, sample based und sample time auf 0.01 gesetzt)

Edit: Bei Format - > Port/Signal Display -> Signal Dimensions
Private Nachricht senden Benutzer-Profile anzeigen
 
Blackeagle
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 20
Anmeldedatum: 21.01.10
Wohnort: Hamburg
Version: R2011b
     Beitrag Verfasst am: 07.08.2013, 13:42     Titel:
  Antworten mit Zitat      
Ich habe im Ports and Data Manager meine Vektorein- und Ausgänge jetzt auf "5" gesetzt. Hätte ich da "[1x5]" eintragen müssen, um auf Zeilenvektoren umzustellen? Ich frage nach, weil ich es zwar ausprobieren könnte, aber dann wieder alles abändern müsste.
Private Nachricht senden Benutzer-Profile anzeigen
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2013, 14:20     Titel:
  Antworten mit Zitat      
Ja da kannst du 1,5 oder 5,1 schreiben. Die Größe würde ich aber in der Matlab function festlegen. Zu beginn einfach z.B.
Code:

schreiben und danach den Komponenten Werte zuweisen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Blackeagle
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 20
Anmeldedatum: 21.01.10
Wohnort: Hamburg
Version: R2011b
     Beitrag Verfasst am: 07.08.2013, 14:46     Titel:
  Antworten mit Zitat      
Tja, ich kann leider nicht innerhalb des Matlabblocks einen Default zuweisen, da dieser dann die richtigen Werte bei jedem Durchlauf überschreibt und das ist unerwünscht. Das mit dem 5,1 bzw. 1,5 ist schon sehr hilfreich.
Vielen Dank dafür! Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
knilumis_baltaM
Forum-Century

Forum-Century


Beiträge: 241
Anmeldedatum: 20.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2013, 15:10     Titel:
  Antworten mit Zitat      
Ja bei dir müsstest du zeros(5,1) im Delay Block bei initial condition setzen, dann steht die Größe fest.
Private Nachricht senden Benutzer-Profile anzeigen
 
Blackeagle
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 20
Anmeldedatum: 21.01.10
Wohnort: Hamburg
Version: R2011b
     Beitrag Verfasst am: 07.08.2013, 15:25     Titel:
  Antworten mit Zitat      
Ah, sehr gut. Alles klar, dann danke für deine Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.