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

Simulink Modell aus Matlab heraus simulieren

 

Obernoob

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.12.2014, 14:26     Titel: Simulink Modell aus Matlab heraus simulieren
  Antworten mit Zitat      
Moin moin,

ich versuche aus Matlab heraus ein Simulink Modell zu testen. Dafür verwende ich den Matlabbefehl sim(...). Dazu gefunden habe ich die folgenden beiden Links:

http://de.mathworks.com/help/simuli.....sing-the-sim-command.html

und

http://de.mathworks.com/help/simulink/slref/sim.html

sowie verschiedene Einträge bei Stackoverflow zu der einen oder anderen Verwendung des Befehls. Allerdings scheint niemand den Befehl so verwenden zu wollen, wie ich das mache.

Hier mein Versuch ein Minimalbeispiel zur erstellen:

Das Simulinkmodell ist ein Inputparameter der direkt auf einen Outputparameter geschickt wird. Der Input Parameter heißt input, der Output heißt output.

Mein Matlabskript sieht folgender Maßen aus:

Code:
%% Setze MATLAB-spezifische Variablen

slCharacterEncoding('Windows-1252');

%% Setze Parameter
input = 1;

%% Setze Simulationsparameter
%steps = [step_first step_last];

%% Führe Simulationschritt aus

mdl = 'minimal';

simMode = get_param(mdl, 'SimulationMode');

cs = getActiveConfigSet(mdl);
mdl_cs = cs.copy;

set_param(mdl_cs,'AbsTol','1e-5',...
         'SaveState','on','StateSaveName','xoutNew',...
         'SaveOutput','on','OutputSaveName','youtNew')

evalin('base','input=1');

options=simset('SrcWorkspace','base','DstWorkspace','base');
sim(mdl,[0 1],options)

disp(yout);

%% Abschluss
disp('Simulation beendet.');


Als Wert in jedem Simulationsschritt bekomme ich lediglich 0 zurück. Der input Parameter wird also offensichtlich nicht gesetzt.

Was ich gerne hätte, ist, dass ich den Input Parameter setze und er mir dann entsprechend den Output Parameter zurück.
Noch optimaler wäre es, wenn ich ein Array mit Input Parametern angeben kann und in jedem Simulationsschritt die entsprechenden Werte zu gewiesen werden.


Ingwertee

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2014, 18:59     Titel: Re: Simulink Modell aus Matlab heraus simulieren
  Antworten mit Zitat      
Obernoob hat Folgendes geschrieben:

Code:

sim(mdl,[0 1],options)
disp(yout);
 

Als Wert in jedem Simulationsschritt bekomme ich lediglich 0 zurück. Der input Parameter wird also offensichtlich nicht gesetzt.


bin überrascht, dass bei dir matlab wegen yout keine Fehlermeldung ausgibt, da diese Variable nicht definiert ist.
Normalerweise solltest du auf die Simulationsergebnisse so zugreifen können:
Code:

myData = sim(mdl,[0 1],options)
myData.get('yout')
 


warum initialisiert du 2 mal den input?
Obernoob hat Folgendes geschrieben:

Code:

%% Setze Parameter
input = 1;

...

evalin('base','input=1');
 



Schönes Wochenende
 
Ingwertee

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.12.2014, 06:56     Titel:
  Antworten mit Zitat      
Welchen Block hast du im Simulink-Model als Input?
Versuche den Input als "From Workspace"-Block zu definieren. Dann muss der Input eine zeitabhängige Eingangsgröße sein.

Beispiel in deinem Fall:
Input = [0, 1];

Beispiel allgemein:
Input = [Zeitvektor(n,1) Wert(n,1)] = ([0:0.1:1]',[1;zeros(10,1)]);
 
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.