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

Iteration (Änderung einer Variable bis Zielwert erreicht)

 

Fritz_

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.06.2015, 13:48     Titel: Iteration (Änderung einer Variable bis Zielwert erreicht)
  Antworten mit Zitat      
Hallo!

Ich hoffe ihr könnt mir weiterhelfen.

Es geht um eine spezielle Funktionsgrupee innerhalb von Simulink (namens "RefEqns").

Diese Funktionen beinhaltet Stoffdaten von bestimmten Gasen und Flüssigkeiten.
Hier ein kurzes Beispiel um eine Vorstellung zu erhalten:
Beispielfuktion: Rho_p_T
Erläuterung: Mann gibt zwei Größen ein und erhält eine Ausgangsgröße
(hier: p (Druck) und T (Temperatur) eingeben und als Ausgang Rho (Dichte) erhalten)
Mein Problem: Es gibt die Funktion "T_p_Rho" nicht !
(Eingabe: p (Druck) und Rho(Dichte) und T(Temperatur) erhalten)

Nun habe ich mir überlegt, man könnte ja einfach die Funktion "Rho_p_T" nutzen und T solange verändern bis sich die bekannte Dichte(Rho) sich ergibt.

Dies habe ich bereits versucht mittels While-Iterator umzusetzen.

Hierbei erscheint jedoch die Fehlermeldung, dass die "Spezialfunktion" eine "continous sample time" besitzt und nur constant(inf) oder inherited(-1) zugelassen sind.

Im MS Excel kann man dieses Problem sofort mit dem Excel-Solver lösen, warum geht es in Simulink nicht auch so einfach?

Gibt es eine Funktion in Simulink, die eine Variable solange ändert bis ein Zielwert zu "0" wird oder wie würdet ihr vorgehen?

Ich hoffe ihr könnt mir helfen ...

Beste Grüße


Harald
Forum-Meister

Forum-Meister


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

aus einem MATLAB Function - Block heraus können fzero oder fminsearch aufgerufen werden.
Wenn sie als extrinsic definiert sind, können auch andere Solver aus der Optimization Toolbox aufgerufen werden.

Wenn du ein Modell mit deinen Versuchen anhängst, dann ist es oft leichter das nachzuvollziehen als wenn jemand beschreibt, was er macht.

Ich habe von dieser Funktionsgruppe noch nichts gehört. Es kann sich aber lohnen nachzusehen, ob man anhand der Implementierung in die eine Richtung nicht auch die Implementierung in die andere Richtung hinbekommt.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2015, 09:48     Titel:
  Antworten mit Zitat      
Hallo Harald,

vielen Dank für deine Antwort.

Ich kenne mich leider nicht gut in Matlab und Simulink aus, dennoch versuche ich mein Bestes.

Ich habe das Schaltbild angefügt.

Hier geht es um die Funktion HPX.
-> Eingangsgröße ist: P und X (Druck und Gasanteil)
-> Ausgangsgröße ist: H (Enthalpie)

Ich habe ein konstantes X (=0,2) und ein vorgegebenes H (289600). Dazu soll mir Simulink nun genau das P suchen, bei der das vorgegebene H entsteht.

Als Eingangsgröße habe ich ein "Unit Delay" eingebaut, welches dem Startwert entspricht. Die eingebene Funktion der Embedded Matlab Funktion habe ich unter das Bild geschrieben.

Leider funktioniert das Ganze nicht. Es kommt die Fehlermeldung: "Function Output" cannot be of MATLAB type.

Ist das Vorgehen überhaupt einigermaßen richtig?
 
Fritz_

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.06.2015, 09:50     Titel:
  Antworten mit Zitat      
Sorry, hier das vergessene Schaltbild Smile

Eine Matlab-File wird euch nix bringen, da man für die Funktion bestimmte Daten benötigt.

Vielen Dank schonmal im Voraus für eure Mühe.

Beispiel.jpg
 Beschreibung:

Download
 Dateiname:  Beispiel.jpg
 Dateigröße:  35.81 KB
 Heruntergeladen:  450 mal
 
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.