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

Simulationsreihenflolge

 

ChristophSchuette
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 14.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 10:23     Titel: Simulationsreihenflolge
  Antworten mit Zitat      
Hallo, ich habe ein kleines Problem mit einer Funktion die ich in meinem Programm benutzten möchte.

Kurze Beschreibung meines Vorhabens und meines Problems:

Ich simuliere im ersten Teil meines Modells einen Brennverlauf. Als Ergebniss erhalte ich einen 1600x1 Vektor, da dieser zu groß für mein weiteres vorhaben ist, hatte ich vor bestimmte Werte aus dem Vektor auszulesen und weiter zu benutzen. Um das zu realisieren habe ich einen Fcn Block eingefügt mit dem Code:

Code:

function y = heat(u1,u2)
y = u1(u2);
 


u2 ist in meinem Falle ein 10x1 Vektor und u1 mein Brennverlauf (1600x1)
Die Funtkion soll bezwecken, dass ich jeweils den Wert von u1 an der Stelle u2 auslese. und mir dann u2 als 10x1 Vektor ausspuckt.

Mein Problem ist nun, dass wenn ich das Programm starte ich sowohl meinen Brennverlauf simuliere, als auch schon Werte mit der Funktion aus der "Zukunft" aus dem Brennverlauf abgreife --> Funktioniert nicht!

Meine Idee wäre nun, ob man nicht mit Hilfe eines Trigger/Enable Blocks eine Art Reihenfolge festlegen kann, dass ich erst mein Brennverlauf simuliere und dann meine Werte aus dem Vektor via Fcn lese. Leider bekomme ich es irgendwie nicht hin...

Eine Splittung meines Modells in zwei Teilmodelle ist nicht erwünscht.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen


twols
Forum-Anfänger

Forum-Anfänger



Beiträge: 44
Anmeldedatum: 05.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 10:28     Titel:
  Antworten mit Zitat      
Kannst du nicht nach Zeit t mit einem Step ein Subsystem mit dem Trigger anstossen? Was klappt bei dir genau nicht bzw. wie hast du das umgesetzt?
Private Nachricht senden Benutzer-Profile anzeigen
 
ChristophSchuette
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 14.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 10:55     Titel:
  Antworten mit Zitat      
Hab es genauso gemacht wie du es mir vorgeschlagen hast. 1 Simulationstep bevor Ende hab ich die Fcn laufen lassen. Scheint auch so als ob das Funktionieren würde, nur spinnt meine Fcn jetzt rum...

Dazu ich aber hinzuzufügen, dass wenn ich den Funktionscode ins matlab Commandwindow eingebe, er mir den Vektor ausgibt, den ich gerne haben möchte. Demnach denke ich, dass das mit der Reihenfolge doch nicht klappt...

fehler.JPG
 Beschreibung:

Download
 Dateiname:  fehler.JPG
 Dateigröße:  89.06 KB
 Heruntergeladen:  516 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
twols
Forum-Anfänger

Forum-Anfänger



Beiträge: 44
Anmeldedatum: 05.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 11:32     Titel:
  Antworten mit Zitat      
Folgendes Modell funktioniert bei mir. Hat dein 1600er Verktor tatsächlich die richtige Größe zu dem Zeitpunkt?

a.PNG
 Beschreibung:

Download
 Dateiname:  a.PNG
 Dateigröße:  23.88 KB
 Heruntergeladen:  523 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
ChristophSchuette
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 14.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 12:22     Titel:
  Antworten mit Zitat      
Also, der Aufbau von meiner Funktion sieht genauso aus wie bei dir! Wenn ich meinen Brennverlauf als Konstante in ein sepperates Modell lade und dann simuliere funktioniert auch alles einwandfrei, aber in meinem Hauptmodell klappt es leider immer noch nicht, was bedeutet, dass die Funktion klappt, aber das "Zeitverzögern" des Funktionsstart nicht.
Mein Modell startet bei -180 und endet bei 150. In dieser Zeit wird halt der Brennverlauf simuliert. Sobald dieser fertig ist, soll die Funktion starten.

Der Vektor sollte zu der Zeit halt groß genug sein..


Ich denke ich weiß wo mein Problem liegt. Mein Brennverlauf wird nicht als Array übegeben, sondern jeder Simulationpoint einzeln, müsste also erste alle Punkte "sammeln" als Array "zusammenbinden" und dann sollte es funktionieren, hättest du eine Idee wie sowas klappen könnte?
Private Nachricht senden Benutzer-Profile anzeigen
 
ChristophSchuette
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 14.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2013, 13:11     Titel:
  Antworten mit Zitat      
Hab es hinbekommen!

Die Antwort ist der Tapped delay block, der mir meine Skalara aus der Brennverlaufsanalyse über meinen Simulationszeitraum als vektor ausgibt, danach lief der Rest wie geschmiert Wink

Vielen Dank für die Hilfe, hast mir extrem weiter geholfen!!!
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.