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

Simulinkaufruf bringt nur in 'function' fehler

 

Daniel1412

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2012, 23:33     Titel: Simulinkaufruf bringt nur in 'function' fehler
  Antworten mit Zitat      
Hallo zusammen,

ich verzweifel langsam an meinem Programm.
Ich habe eine kleine Simulation mit Simulink erstellt, diese Funktioniert auch wunderbar.
Jetzt bin ich auf die Idee gekommen das ganze Programm so umzustellen, das es nötig wird die Simulation in einer 'function' aufzurufen.

Jedoch bekomme ich dann immer einen Fehler. Wenn ich allerdings den gleichen Quellcode ohne deklaration als Funktion aufrufe geht alles wunderbar!?

Hat einer von euch eine Idee was ich ändern muss, damit ich die Simulation auch als Funktion aufrufen kann. Habe schon versucht die Variablen als Global zu deklarieren, das hat aber auch nichts gebracht.

Hat mich inzwischen schon einige Stunden zeit gekostet (freund google liefert hierzu nichts) und ein paar mehr graue Haare habe ich jetzt wohl auch Wink.

Wäre euch also sehr dankbar wenn ihr mir helfen könntet.

Code:

function einschwingverhalten()  % Wenn diese Zeile auskommentiert wird läuft alles super  

    c=3e8;                      %Ausbreitungsgeschwindigkeit des Photons im Resonator in m/s
    WpN=1e27;                      
    t21=230e-6;
    sigma=3e-23;
    tau=6.67e-8;
    StopTime=5e-5;
    MaxStep=1e-9;
   
    %starten der simulation
    [simzeit sim_PHI sim_N2]=sim('modell_test1.mdl');   % Aufruf der Simulation
    set_param('modell_test1','StopTime','StopTime','MaxStep','MaxStep'); % Parameter der Simulation setzen; relative Toleranz: RelTol

    length(simzeit)     %Ausgabe zur Kontrolle
   
    % Umrechnung
    h=6.626e-34;                        %Plancksches Wirkungsquantum in Js
    f12=c/(1064e-9);                    %Laserfrequenz in 1/s
    sim_I=sim_PHI*c*h*f12*10^-4;        %Intensität in W/cm^2
 


Daniel1412

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2012, 09:00     Titel: Fehlermeldung
  Antworten mit Zitat      
Achsoo, hier natürlich noch ein ganz wichtiger Teil, die Fehlermeldung:

Error using einschwingverhalten (line 13)
Error evaluating expression 'StopTime' for 'Stop time' specified in the Configuration
Parameters dialog for block diagram 'modell_test1': Undefined function or variable
'StopTime'.


Vielleicht kennt ja jemand diesen Fehler

Danke
Gruß
Daniel
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.06.2012, 09:53     Titel:
  Antworten mit Zitat      
Hallo,

du musst als Source Workspace (SrcWorkspace) 'Current' verwenden; siehe Doku zu SIM und SIMSET.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Daniel1412

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2012, 10:35     Titel:
  Antworten mit Zitat      
Hey Harald,

vielen Dank du hast mir den Samstag gerettet.
Die Doku hierzu ist ja leider etwas dürftig, daher hier nochmal mein Quellcode für diejenigen die das gleiche Problem haben.


Gruß
Daniel
Code:

function einschwingverhalten()  % Wenn diese Zeile auskommentiert wird läuft alles super  

    c=3e8;                      %Ausbreitungsgeschwindigkeit des Photons im Resonator in m/s
    WpN=1e27;                      
    t21=230e-6;
    sigma=3e-23;
    tau=6.67e-8;
    StopTime=3e-5;
    MaxStep=1e-9;
   
    %starten der simulation
    options = simset('SrcWorkspace','current');
    [simzeit sim_PHI sim_N2]=sim('modell_test1.mdl',[],options);   % Aufruf der Simulation
    set_param('modell_test1','StopTime','StopTime','MaxStep','MaxStep'); % Parameter der Simulation setzen; relative Toleranz: RelTol

    length(simzeit)     %Ausgabe zur Kontrolle
   
    % Umrechnung
    h=6.626e-34;                        %Plancksches Wirkungsquantum in Js
    f12=c/(1064e-9);                    %Laserfrequenz in 1/s
    sim_I=sim_PHI*c*h*f12*10^-4;        %Intensität in W/cm^2
 
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.06.2012, 16:53     Titel:
  Antworten mit Zitat      
Hallo,

es mag auf den ersten Blick schwierig zu erkennen sein, dass das Problem ist, dass MATLAB in einem anderen Workspace als dem beabsichtigten nach den Daten sucht. Wenn man aber einmal darauf gekommen ist und auf den Parameter SrcWorkspace, hilft die Hilfe doch weiter? Du hast es ja damit geschafft Smile
Anders gefragt: Was hättest du dir denn an Informationen gewünscht?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Daniel1412

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.06.2012, 19:46     Titel:
  Antworten mit Zitat      
Naja, also so ein kleiner Hinweis in der Doku zum Sim-Befehl wäre schon nett.

Naja, aber eigentlich ist die Doku von Matlab ja schon sehr gut, evtl. darf man halt wirklich auch nicht zu viel erwarten.

Gruß
Daniel
Verschoben: 04.06.2012, 18:33 Uhr von denny
Von Programmierung nach Simulink
 
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.