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

Wert aus einem Vektor in Simulink auslesen

 

christian_2
Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 16.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2014, 11:03     Titel: Wert aus einem Vektor in Simulink auslesen
  Antworten mit Zitat      
Hallo,

ich möchte in Simulink aus einem Vektor, der im Workspace gespeichert ist, einen Wert auslesen, dessen Index ich in Simulink als Signal habe.

Beispiel:
Im Matlab-Workspace gibt es die Variable

Code:
Vektor = [10 5 8 3];


In Simulink berechne ich nun den Index (dieser sei z. B. 2).

Nun denke ich mir, dass es in Simulink einen Block geben muss, der als Eingang den Index benötigt und mir als Ausgang den entsprechenden Wert eines in diesem Block definierten Vektors ausgibt (in diesem Beispiel also den Wert 5).


Das kann doch nicht sein, dass es so etwas nicht gibt, oder doch?

Ich benötige also so etwas wie eine Look-Up-Table, nur dass ich weiß, dass ich keine Zwischenwerte brauche.
Klar wäre mein Problem mit einer Look-Up-Table gelöst (bisher mache ich das ja so), aber ich denke mir, dass das sicher nicht die schnellste und einfachste Lösung ist.


Der 'Selector' wäre eine Alternative, allerdings finde ich ihn sehr umständlich, weil man einerseits den auszuwertenden Vektor an den Block übergeben muss (zwei Blöcke, statt einem, wie bei einer Look-Up-Table) und zweitens muss ich im Selector die Dimension des Vektors definieren, die bei mir erst zu Simulationsbeginn fest steht.
Wobei dieses Problem natürlich mit einem length (Vektor) gelöst werden könnte (ist aber umständlich).

Hat jemand eine Idee?

Vielen Dank schon mal im Voraus und viele Grüße

Christian
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 06.03.2014, 16:28     Titel:
  Antworten mit Zitat      
Ich vermute, dass es das in Standard-Simulink nicht gibt, weil dieser Anwendungsfall in der normalen, zeitbasierten Simulation dynamischer Systeme nicht vorkommt.

Ich habe auch den "Selector" Block als Möglichkeit der Umsetzung identifiziert. Ist die Gesamtanwendung denn aus der Signalverarbeitung? Vielleicht gibt es eine ganz andere Umsetzung?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
christian_2
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 29
Anmeldedatum: 16.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2014, 16:44     Titel:
  Antworten mit Zitat      
Hallo Andreas,

erst einmal Danke für Deine Antwort. Um gleich Deine Frage zu beantworten: Nein, das Modell ist ein Fahrzeugsimulationsmodell.
In meinem Beispielfall habe ich z.B. einen Gang berechnet und benötige im weiteren Verlauf die Getriebeübersetzung des neuen Ganges. Die Getriebeübersetzungen aller Gänge sind in einem Vektor gespeichert, der Gang entspricht dem Index. Dies wäre ein Anwendungsbeispiel, es gibt da noch eine ganze Reihe anderer.

Bisher habe ich bzw. wurde das immer mittels einer Look-Up-Table gelöst. Nachdem ich einen Teil des Modells verbessern/ändern möchte, will ich diese Modellteile optimal und 'sauber' aufbauen. Und nachdem die Simulationsgeschwindigkeit bei mir ein sehr wichtiges Thema ist, suche ich die schnellst/beste Lösung.

Ich bin mittlerweile auch der Meinung, dass es einen solchen Block, wie ich ihn mir wünsche, in Simulink gar nicht gibt, weil der 'Selektor' dem schon relativ nahe kommt.
Ehrlich gesagt, finde ich den Block wenig gelungen, ich hätte da einiges anders programmiert. Aber eventuell habe ich auch einfach nur andere/spezielle Anwendungen Wink

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 06.03.2014, 17:04     Titel:
  Antworten mit Zitat      
OK, das hilft. Ich denke die meisten Anwendungen dieser Art nutzen Zustandsautomaten. Bitte mal prüfen ob Stateflow da geeignet ist. Z.B. mal die Demo "sf_car" aufrufen.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.