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

Variable aus Simulink in m. file laden

 

sergej1987
Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 27.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2011, 17:42     Titel: Variable aus Simulink in m. file laden
  Antworten mit Zitat      
Hallo ich habe ein kleines Problem.
ICh habe ein Subsystem indem ich etwas ausrechne und das Ergebnis würde ich gerne mittels einer Variable in mein m.file laden. Wie mache ich das?
Problem ist das diese Variable die ich in mein m.file laden will ich auch in Formeln benutzen will die in meinem m.file vorkommen.

Nochmals ein Beispiel
Im m.file steht z.b.
a= 5*c
y=a+PI*0.5
c soll in simulink ausgerechnet werden weil es kompliziert und variabel ist und dann zurückgegeben werden damit a im m.file ausgerechnet werden kann und im m.file für weitere Funktionen verwenden werden kann.

Danke im Voraus
Beste grüße
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 27.07.2011, 17:49     Titel:
  Antworten mit Zitat      
d.h. die Variable c wird erst nach dem Ende der Simulation in dem m-file benötigt?

Dann nutze doch den Block "simout to workspace" unter "sinks" und nenne den Variablen Name des Blocks c. Somit ist c auch in dem m-file bekannt.
Private Nachricht senden Benutzer-Profile anzeigen
 
sergej1987
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 27.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2011, 17:55     Titel:
  Antworten mit Zitat      
Ne leider nicht erst am Ende sondern auch zwischendurch... weil die Simulation die Werte immer iterativ berechnet.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 27.07.2011, 18:01     Titel:
  Antworten mit Zitat      
Das verstehe ich nicht Question

Du schreibst, dass c in Simulink berechnet wird und anschließend zurückgegeben werden soll. Wie soll sich denn c während der Simulation ändern, wenn es grad berechnet wird?

Edit: hab das Wörtchen iterativ überlesen...du willst also alle Werte von c während der Iteration.

Schau mal nach...

Code:


Du wirst die Simulation dann wohl immer anhalten müssen, den Parameter holen und die Simulation dann weiterlaufen lassen. Also ein Schrittbetrieb. Es kann aber auch sein, dass der Parameter immer erst am Ende der Simulation neu gesetzt wird. Dann wird es wohl nur über eine

Code:


Zuletzt bearbeitet von DSP am 27.07.2011, 18:16, insgesamt 2-mal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
sergej1987
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 27.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2011, 18:10     Titel:
  Antworten mit Zitat      
Also nochmals diesmal mit genauen Angaben:
Im m file steht:
epsilon_max=0,045*epsi
A_v=PI*(1*epsilon)

epsi wird in einem Subsystem berechnet und soll dann im m. file gespeichert oder geladen werden damit epsilon berechnet werden kann. Habe es mit simout to wokspace versucht und in den Block dann epsilon_prozent geschrieben. Wenn ich das m.file in matlab lade kommt ein Fehler :

??? Undefined function or method 'mtimes' for input arguments of type 'struct'.

Error in ==> Eingabedaten_FGLSim_Generation3_optimal_sergej at 21
epsilon_max=0.045*epsi;

Error in ==> run at 57
evalin('caller', [s ';']);

Hoffe du kannst mir helfen =)
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
sergej1987
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 27.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2011, 18:12     Titel:
  Antworten mit Zitat      
ich mein natürlich epsi und nicht epsilon_max in den Blcok geschrieben
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 27.07.2011, 18:20     Titel:
  Antworten mit Zitat      
Wenn epsi die Variable aus Simulink ist und im m-file auch epsi heißt, da sie dort verwendet wird, muss der Block Name auch epsi heißen (doppelklick auf den Block und dann unter Var.- name). Außerdem musst du unter Save format dann statt "structure", "array" auswählen.
Private Nachricht senden Benutzer-Profile anzeigen
 
sergej1987
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 27.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2011, 18:27     Titel:
  Antworten mit Zitat      
gemacht, trotzdem nun folgender Fehler:

??? Undefined function or variable 'epsi'.

Error in ==> Eingabedaten_FGLSim_Generation3_optimal_sergej at 21
epsilon_max=0.045*epsi;

Error in ==> run at 57
evalin('caller', [s ';']);


hmmm ???
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
sergej1987
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 27.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2011, 18:29     Titel:
  Antworten mit Zitat      
gemacht, trotzdem nun folgender Fehler:

??? Undefined function or variable 'epsi'.

Error in ==> Eingabedaten_FGLSim_Generation3_optimal_sergej at 21
epsilon_max=0.045*epsi;

Error in ==> run at 57
evalin('caller', [s ';']);


hmmm ???
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 27.07.2011, 18:35     Titel:
  Antworten mit Zitat      
Was ist denn epsi nach der Berechnung in Simulink im Workspace...ein einzelner Wert oder ein Vektor?
Private Nachricht senden Benutzer-Profile anzeigen
 
sergej1987
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 27.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2011, 18:39     Titel:
  Antworten mit Zitat      
ein wert der aber auch immer gleich bleibt. er ist zwischen 0 und 1 und steht für eine Prozentzahl.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 27.07.2011, 18:46     Titel:
  Antworten mit Zitat      
Du hast ja aber 2 Fehler...beim 1. kennt er die Variable epsi nicht. Existiert sie denn im Worspace nach dem Ende der Simulation in Simulink?

Mit dem 2. Fehler kann ich nichts anfangen.

Edit: Damit die Fehlersuche einfacher wird, häng doch mal bitte dein mdl- und dein m-file hier an.
Private Nachricht senden Benutzer-Profile anzeigen
 
sergej1987
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 27.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2011, 19:21     Titel:
  Antworten mit Zitat      
Also anbei die 2 Dateien. Habe das vereinfacht, damit man genau sieht wo das Problem liegt und weil es einer geheimhaltungserklärung unterliegt.
Vielen Dank für deine/eure Hilfe.

Beste Grüße

Untitled2.m
 Beschreibung:

Download
 Dateiname:  Untitled2.m
 Dateigröße:  366 Bytes
 Heruntergeladen:  455 mal
untitled.mdl
 Beschreibung:

Download
 Dateiname:  untitled.mdl
 Dateigröße:  46.4 KB
 Heruntergeladen:  441 mal
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 27.07.2011, 20:15     Titel:
  Antworten mit Zitat      
Das mdl-file leider nicht ausführen...erhalte folgende Fehlermeldung im Lookup Table:

Zitat:

??? Error using ==> sim
Invalid setting in block 'sergej2/Subsystem Lebensdauer/Enabled Subsystem/Lookup Table' for parameter 'OutputValues'.


Es kann evtl auch mit meiner Matlab Version zusammenhängen. Ich habe auch ethliche Warnings beim Öffnen der mdl, da ich eine alter Version habe.

Edit: Simout - epsi war aber immer noch auf structure with time gestellt Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
sergej1987
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 27.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.07.2011, 20:22     Titel:
  Antworten mit Zitat      
komisch ich kanns ganz normal öffnen liegt es vlt an der matlab version?
habe 2010ra aber hier anbei 2 screenshots vlt helfen die über die übersicht weiter!

Danke nochmal

Unbenannt2.png
 Beschreibung:

Download
 Dateiname:  Unbenannt2.png
 Dateigröße:  114.37 KB
 Heruntergeladen:  703 mal
Unbenannt.png
 Beschreibung:

Download
 Dateiname:  Unbenannt.png
 Dateigröße:  161.28 KB
 Heruntergeladen:  738 mal
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.