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

Simulinkfunktionen in Matlab verwenden

 

Rolf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2020, 09:57     Titel: Simulinkfunktionen in Matlab verwenden
  Antworten mit Zitat      
Hallo,
gibt es eine Möglichkeit, Subsysteme aus Simulink in Matlab wiederzuverwenden?

Folgender Hintergrund: Angenommen, ich baue mir ein Modell in Simulink auf und möchte dieses später inheralb eines Matlabskriptes evaluieren. Ggf. möchte ich auch dieses in einer Optimierung aufrufen, oder ich möchte das Modell innerhalb von Simulink mit Hilfe eines Matlabfunktionblockes für eine Optimierung verwenden. Wenn ich dies in Matlab aufbaue, ist es kein Problem. Wenn ich dieses als Simulinkblock realisiert ist, ist das manchmal eher weniger hilfreich.

Mein Ansatz ist es, das subsystem als s function zu kompilieren, zu mexen und dann per command line aufzurufen. Das hat aber noch nicht geklappt.

Hat jemand dazu eine Lösung?


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.04.2020, 10:29     Titel:
  Antworten mit Zitat      
Hallo,

eine direkte Antwort kenne ich nicht.

Eine Alternative wäre, Modellreferenzen statt Subsystemen zu verwenden. Dann kannst du die einzelnen Modelle bequem auch separat aufrufen und z.B. mit sim simulieren.

Ich habe Zweifel, dass es eine gute Idee ist, innerhalb eines MATLAB Function-Blocks komplexe Optimierungen (und dazu zähle ich das Optimieren eines Simulink-Modells) durchzuführen. Das muss ja in jeder Iteration gemacht werden und die gesamte Simulation wird entsprechend lange dauern.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2020, 11:15     Titel:
  Antworten mit Zitat      
Hi,
danke für deine schnelle Antwort.

Je, nach Fachbereich kann es schon Sinn machen, modellbasierte Regelungen mit einer online Optimierung zu implmentieren.

Die Frage ist nur, wie sich dies bei einem vorhandenen Simulinkmodell am besten realisieren lässt.

Ich bin aber gerne für weitere Vorschläge und Ideen offen.
 
fabianT
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 84
Anmeldedatum: 31.10.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.04.2020, 09:51     Titel:
  Antworten mit Zitat      
Hi,

eine Simulink S-Function hat die typischen für den Simulink Solver relevanten Funktionen, Output, Update, Start, Derivative,... MATLAB kann damit erstmal nicht so viel anfangen. Wenn du eine MATLAB mex Datei schreibst benötigst du die Entry Funktion MexFunction(). Theoretisch könntest du beides verknüpfen und in eine aus Simulink generierte S-Function den MexFunction() Aufruf hinzufügen. Selbst habe ich das noch nicht gemacht und es ist mit Sicherheit eher komplex und mit einigen Problemen zu rechnen.

Ein Simulink Modell kannst du grundsätzlich schon für Optimierungen verwenden:

https://www.mathworks.com/help/rele.....ifferential-equation.html

Grundsätzlich stellt sich die Frage wie sinnvoll es ist ein Simulink Modell wie eine Funktion nur einmal aufzurufen, wenn dieses Zustände beinhaltet. Du müsstest dann für jeden State einen Initialwert angeben. Um dies zu erreichen könntest du den sim() Befehl anwenden und initial States übergeben. Das wäre der Parameter "LoadInitialState". Wenn du Tstop auf 0 setzt wird nur ein Schritt berechnet.

VG
Fabian

VG
Fabian
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.