|
|
Iteration (Änderung einer Variable bis Zielwert erreicht) |
|
Fritz_ |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.06.2015, 13:48
Titel: Iteration (Änderung einer Variable bis Zielwert erreicht)
|
|
|
|
|
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
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.06.2015, 16:06
Titel:
|
|
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
|
|
|
Fritz_ |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 30.06.2015, 09:48
Titel:
|
|
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: ---
|
|
|
|
|
|
Verfasst am: 30.06.2015, 09:50
Titel:
|
|
Sorry, hier das vergessene Schaltbild
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.
Beschreibung: |
|
Download |
Dateiname: |
Beispiel.jpg |
Dateigröße: |
35.81 KB |
Heruntergeladen: |
450 mal |
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|