|
|
Variablenübergabe von Matlab an Simulink |
|
Deniz |
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.08.2010, 17:09
Titel: Variablenübergabe von Matlab an Simulink
|
|
Hallo!
Ich habe ein kleines Problem, bei dem ich auf dem Schlauch stehe:
Ic habe ein Simulink-Modell und im Editor Variablen für das Modell hinterlegt, die ich übergeben möchte.
Im Simulink sind diese Werte jeweils als Konstanten-Blöcke eingefügt und sind mit der gleichen Bezeichnung beschriftet. Die Sache ist, dass bis einschließlich cp_fl_1 alles funtktioniert, sprich die Werte werden übergeben und es kann mit ihnen gerechnet werden.
h-stern z.b. erkennt das programm nicht an, obwohl ich meiner meinung nach ja nichts anders gemacht habe als zuvor.
zudem habe ich noch eine Frage: beim Integral von cp_fl_2 integriere ich bis zum Wert T2, dieser Wert wird jedoch in Simulink berechnet. Was muss ich denn machen, damit ich den ausgerechneten Wert T2 an das M-File übergebe?
vielen Dank für die Hilfe!
|
|
|
|
|
Deniz |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.09.2010, 09:03
Titel:
|
|
ok, nachdem ich cp_fl_2 auskommentiert habe, werden die restlichen Parameter erkannt und übernommen. Anscheinend liegt es daran, dass meine eine Integrationsgrenze (T2) im Simulink-Modell berechnet wird und diese anscheinend nicht an das M-File übergeben wird. Was muss ich denn machen, damit in meinem M-File mit einem berechnet Wert aus dem Simulink-Modell gerechnet wird?
|
|
|
Phate |
Forum-Guru
|
|
Beiträge: 283
|
|
|
|
Anmeldedatum: 09.11.09
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: R2008b
|
|
|
|
|
|
Verfasst am: 01.09.2010, 09:38
Titel:
|
|
Hi,
Kannst du nicht einfach den Wert mit einem "toWorkspace" Block
an den Matlab Worspace zurückgeben und ihn danach weiterverwenden?
Grüße
|
|
|
Deniz |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.09.2010, 10:14
Titel:
|
|
Hi!
Also ich kenn mich in Matlab nicht so gut aus, aber ich habe jetzt mal den berechneten Wert T2 zu dem Block toWorkspace geführt, den ich ebenfalls mit T2 benannt habe, funktioniert aber trotzdem nicht. da ich mich nicht so gut auskenne, denke ich mal, dass ich wohl was falsch mache.(hab mal ein Bild gemacht)
Beschreibung: |
Hier habe ich mal einen screenshot von meinem Modell gemacht |
|
Download |
Dateiname: |
Modell.jpg |
Dateigröße: |
99.28 KB |
Heruntergeladen: |
717 mal |
|
|
|
Phate |
Forum-Guru
|
|
Beiträge: 283
|
|
|
|
Anmeldedatum: 09.11.09
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: R2008b
|
|
|
|
|
|
Verfasst am: 01.09.2010, 13:06
Titel:
|
|
Hi,
Hast schon richtig gemacht so wie ich das sehe. Als was speicherst du denn den Wert T2 als Array?
Bei der weiteren verwendung musst du dann drauf achten, dass T2 nicht nur eine Zahl ist sondern dir zu jedem berechneten Zeitschritt den dazu passenden Wert von T2 bekommst also einen Vektor.
Wenn du nur an dem Endwert interessiert bist musst du nich den letzten Wert aus dem Array auslesen.
Grüße
|
|
|
engineer |
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 02.09.10
|
|
|
|
Wohnort: Hessen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.09.2010, 19:55
Titel:
|
|
Für diese Fälle habe ich mir ein Standard-Array gemacht, in das ich per Excel nur neue Werte reinkopiere. Die Zeiten sind schon drin.
|
|
|
Phate |
Forum-Guru
|
|
Beiträge: 283
|
|
|
|
Anmeldedatum: 09.11.09
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: R2008b
|
|
|
|
|
|
Verfasst am: 02.09.2010, 21:01
Titel:
|
|
Hi,
Ich versteh nicht ganz was das vorgefertigte Array in Excel bringen soll. Das Array aus Excel musst ja auch wieder mithilfe von Matlab einlesen. Kannst du du das vl. näher erläutern?
Wie machst du dass wenn du z.B. keine konstante Schrittweite hast?
Grüße
|
|
|
Deniz |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 90
|
|
|
|
Anmeldedatum: 31.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.09.2010, 23:51
Titel:
|
|
Hi!
Entschuldigung für die späte Antwort!
Also ich hoffe, dass ich dich richtig verstanden habe und von daher auch richtig antworte!
Mein aufgebautes Modell ist zeitunabhängig, von daher speichere ich auch nichts als Array ab.(so wie ich dich jetzt verstanden habe)
meinen berechneten Wert habe ich im Editor auch nicht speziell abgespeichert, wüsste auch nicht wie das geht. Hab den Wert nur als Integrationsgrenze in meinem M-File. Daran liegt es dann wohl auch, dass es nicht funktioniert.
Ich habe es jetzt aber mit einem Embedded MATLAB Function-Block gelöst und es sieht so aus, als ob es funktionieren würde.
der code im Block lautet
müsste richtig sein oder? bin mir nur unsicher wegen dem fcn(T), ob ich für das fcn evtl etwas anderes schreiben müsste.
mfg
Deniz
|
|
|
Phate |
Forum-Guru
|
|
Beiträge: 283
|
|
|
|
Anmeldedatum: 09.11.09
|
|
|
|
Wohnort: Stuttgart
|
|
|
|
Version: R2008b
|
|
|
|
|
|
Verfasst am: 06.09.2010, 08:15
Titel:
|
|
Guten Morgen,
Sieht in meinen Augen richtig aus. Bin mir aber auch nicht 100% sicher.
Grüße
|
|
|
|
|
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.
|
|