|
|
Switch-Block arbeitet nicht wie gedacht |
|
Der_Simulant |
Forum-Anfänger
|
|
Beiträge: 18
|
|
|
|
Anmeldedatum: 05.05.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2022a
|
|
|
|
|
|
Verfasst am: 17.09.2022, 11:21
Titel: Switch-Block arbeitet nicht wie gedacht
|
|
|
|
|
Hallo zusammen,
ich hoffe, dass ihr mir hier weiterhelfen könnt. Die Suche war leider nicht erfolgreich.
Zur Aufgabenstellung:
Ich modelliere mit Simulink und dem CARNOT-Blockset ein BHKW. Nun ist es so, dass ich über eine Excel eine geforderte elektrische und thermische Leistung einlese. Das BHKW ist Wärmegeführt, heißt die thermische Leistung ist die Regelgröße und demnach wird der Motor moduliert. Im Subsystem Motor geht eine mechanische Leistung ein, womit die ganzen Werte wie Drehmoment, Kraftstoffverbrauch, mechanischer Wirkungsgrad, etc und eben die Nutzwärme des Motors berechnet werden. Diese vorhandene Nutzwärme wird mit der geforderten verglichen und mit einem PI-Regler soll die mechanische Leistung so geregelt werden, dass Soll=Ist ist.
Zum Start würde ich dem Motor erstmal irgendeine mechanische Leistung vorgeben, damit die Nutzwärme bei dem Punkt berechnet werden kann. Dann soll der Regler übernehmen und die mechanische Leistung so anpassen, dass Soll=Nutz/Ist.
Hierfür habe ich vor dem input in den Motor einen Switch geschaltet, der die erste Sekunde einen Wert eingibt, um eben eine Nutzwärme zu haben. Nach einer Sekunde soll der Switch auf den Regler schalten und dann die mechanische Leistung regeln.
Problem: Sobald ich den Switch anschließe und starte, kommt die Fehlermeldung: "Algebraic state in algebraic loop containing 'xxxxxxxxxxx' computed at time 0.0 is Inf or NaN. There may be a singularity in the solutions....". Heißt für mich, er hat am Anfang keinen Wert zur Berechnung im Motor, also im weiteren Verlauf keine Nutzwärme und damit auch keine Soll-Wert für den Regler.
Lege ich jedoch einen konstanten Wert für die mechanische Leistung an, läuft die Simulation ohne Probleme durch. Heißt für mich, dass der Switch in diesem Fall nicht richtig arbeitet.
Habt ihr eine Idee woran das liegen kann? Freue mich über Ratschläge.
VG
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.09.2022, 12:25
Titel:
|
|
|
|
|
Hallo,
es ist bei solchen Fragestellungen immer besser, das Modell zu betrachten.
Generell würde ich für ein "Umschalten nach einer Sekunde" eher ein enabled Subsystem verwenden und für die Anfangswerte die Initial Condition eines Integrators oder Unit Delays.
Die Meldung bzgl. einer algebraischen Schleife rührt daher, dass es einen geschlossenen Kreis ohne verzögerndes Element wie Integrator oder Unit Delay gibt. Mit dem Switch-Block an sich hat das, soweit man das ohne das Modell sagen kann, nichts zu tun. Ich kann mir höchstens vorstellen, dass Simulink ohne den Switch-Block die algebraische Schleife noch lösen konnte und mit dem Switch-Block nicht mehr. Das ist aber Spekulation.
Eine ausführliche Diskussion des Themas findet sich z.B. hier:
https://www.mathworks.com/matlabcen.....k-and-how-do-i-solve-them
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 ;)
|
|
|
Der_Simulant |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 18
|
|
|
|
Anmeldedatum: 05.05.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2022a
|
|
|
|
|
|
Verfasst am: 22.09.2022, 09:16
Titel:
|
|
Hallo Harald,
danke für deine Antwort. Ich konnte das Problem mit einem Delay-Block lösen.
Noch arbeitet es nicht ganz so wie es soll, daher komme ich demnächst nochmal mit dem Modell, sollte ich das nicht hinbekommen.
VG
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 22.09.2022, 09:24
Titel:
|
|
Hallo,
wie im Link beschrieben ist zu bedenken, dass ein Delay-Block die Systemdynamik verändert. Das kann sinnvoll sein (sogar sinnvoller als das vorherige Modell) oder auch nicht.
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 ;)
|
|
|
Der_Simulant |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 18
|
|
|
|
Anmeldedatum: 05.05.22
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2022a
|
|
|
|
|
|
Verfasst am: 22.09.2022, 10:14
Titel:
|
|
|
|
|
|
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.
|
|