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

Elektrolysesimulation (Algebraische Schleife)

 

Miral
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 06.03.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2015, 17:43     Titel: Elektrolysesimulation (Algebraische Schleife)
  Antworten mit Zitat      
Hallo Leute!

ich bin gerade dabei ein Elektrolysemodell zu erstellen und habe dabei das Problem, dass ich Ausgangswerte als Eingangswerte benötige.

Ich habe die Simulation erstmal so weit vereinfacht, um mein Problem zu verdeutlichen. (Bild1)

Mit einem Wert P (Leistung) vom Workspace und einem Wert I (Strom) soll U (Spannung) berechnet werden. Dabei hängen I und U voneinander ab.

Die Berechnung erfolgt mit zwei MATLAB Fuction Blöcken
1. Block: I=P/U
2. Block: U=30*I+15 (sehr vereinfachte Darstellung, die originale Abhängigkeit könnte nicht so einfach nach I aufgelöst werden)

Zwischen diesen zwei Blöcken wird ein IC Block für den Startwert von I verwendet.

Jetzt möchte ich für unterschiedliche Werte P die dazugehörigen Werte U berechnen lassen.

Solange P nur einen Wert enthält, z.B. [0 100], funktioniert alles bestens.
Wenn ich aber einen zweiten hinzufüge, z.B. [0 100;1 200] (Bild2), bekomme ich für U einen Wert, der mit der Simulationszeit steigt (Scope1).
Wenn der zweite Wert niedriger als der erste ist, z.B. [0 100; 1 50], bekomme ich eine Fehlermeldung:

"An error occurred while running the simulation and the simulation was terminated
Simulink cannot solve the algebraic loop containing 'Problem/MATLAB Function' at time 2.04 using the TrustRegion-based algorithm due to one of the following reasons: the model is ill-defined i.e., the system equations do not have a solution; or the nonlinear equation solver failed to converge due to numerical issues.
To rule out solver convergence as the cause of this error, either
a) switch to LineSearch-based algorithm using
set_param('Problem','AlgebraicLoopSolver','LineSearch')
b) reducing the fixed step size.
If the error persists in spite of the above changes, then the model is likely ill-defined and requires modification."

Die Lösungsvorschläge habe ich alle versucht, hat aber nichts gebracht.

Ist meine Vorgehensweise P mehrere Werte zuzuweisen überhaupt richtig?
Oder habe ich generell mit dem aufgebauten Modell ein Problem?

Ich würde mich riesig über eure Hilfe freuen!
Danke schonmal und viele Grüße
Miral

Problem.slx
 Beschreibung:

Download
 Dateiname:  Problem.slx
 Dateigröße:  16.87 KB
 Heruntergeladen:  476 mal
Scope1.jpg
 Beschreibung:

Download
 Dateiname:  Scope1.jpg
 Dateigröße:  45.04 KB
 Heruntergeladen:  515 mal
Bild2.jpg
 Beschreibung:

Download
 Dateiname:  Bild2.jpg
 Dateigröße:  14.6 KB
 Heruntergeladen:  536 mal
Bild1.jpg
 Beschreibung:

Download
 Dateiname:  Bild1.jpg
 Dateigröße:  43.29 KB
 Heruntergeladen:  501 mal
Private Nachricht senden Benutzer-Profile anzeigen


rien

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.03.2015, 11:32     Titel:
  Antworten mit Zitat      
Erstmals: ich kann dein Modell nicht ausführen weil ich wohl nicht alle notwendigen Files habe (?).

Wenn du P = [0 100;1 200] eingibst hast du keinen Sprung von P sondern eine Rampe. Deshalb der linear steigende Wert (linear steigendes Eingangssignal, keine Integration oder Ableitung), bei [0 100; 1 50], erreicht dein Modell bei 2 Sekunden P=0, 0.04s dürfte deine Step-Size sein, und da aus P=0 U=0 folgt und durch 0 Teilen nicht geht --> error

Also --> Inputsignal muss für deine Zwecke ein Rechtecksignal sein Wink
 
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.