|
Schnibel |
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 22.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.07.2009, 14:01
Titel: Hilfe, Fixed-step size?
|
|
Hallo Forum,
ich kämpfe mit einer Fehlermeldung.
Fehler:
Trouble solving algebraic loop containing 'Modelname' at time 2.1. Stopping simulation. There may be a singularity in the solution. If the model is correct, try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances).
Das Model ist korrekt.
Jetzt ist die einfache Frage, wie reduziere ich den fixed-step size?
Bei mir steht da "cnst.tCyc2".
Das ist für mich absolutes neuland, da bis jetzt alles ohne diesen Fehler Funktioniert hatte.
Was muss ich da reinschreiben bzw wie setzt sich diese Eingabe überhaupt zusammen, damit ich verstehe was ich da machen muss!?
Ich habe auch die verschiedenen solver alle ausprobiert und
die Error-toleranz für Algebraic-loop ausgeschaltet.
Hat leider nichts gebracht.
Wäre für Tipps und Hilfe sehr Dankbar.
mfg Schnibel
|
|
|
|
|
Idefix_1024 |
Forum-Century
|
|
Beiträge: 230
|
|
|
|
Anmeldedatum: 16.10.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.07.2009, 14:19
Titel:
|
|
Das Problem liegt nicht unbedingt am Solver...
Du verwendest eine Variable, dessen Wert von sich selbst abhängt... also ist der Eingang irgendeines Modellbereiches und der Ausgang bei Dir Identisch.
Sowas mag Simulink gar nicht, denn es findet dann keine Lösung für den Wert der Variable... es fängt dann normalerweise an die Step-Size zu reduzieren... geht aber bei Fixed Step Size nicht... also Fehlermeldung und Abbruch
ich würde viel eher mal versuchen diese algebraische Schleife zu finden und zu beheben. Du kannst testweise einfach 1/z Blöcke nehmen und in die Signalpfade legen, die Simulink als fehlerhaft anzeigt...
leider ist das keine wirkliche Lösung, da dann an dieser Stelle auch das Signal um einen Abtastschritt verzögert wird, allerdings wird so erstmal Ausgang und Eingang der Schleife entkoppelt.
Auf Dauer muss man sich überlegen, ob es eine Bessere Lösung gibt als das Signal zu verzögern...
|
|
|
Schnibel |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 22.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.07.2009, 14:37
Titel:
|
|
WOW verdammt... tatsächlich!
Danke Idefix^^
(Ich glaube wenn man zu lange vor seinem Modell sitzt sieht man nur noch scheinbar zusammenhangslose Linien.)
Ich habe die von dir beschriebene Schleife gerade gefunden!
Es ist da genau so wie du geschrieben hast.
Eine Variable in meinem Modell hängt tatsächlich von sich selbst ab.
So kanns ja nicht gehen.
Superschnelle und gute Hilfe!
Vielen,vielen Dank Idefix bzw das ganze Forum
Bin schon oft hier durch die Suche weiter gekommen.
Mfg Schnibel
|
|
|
Idefix_1024 |
Forum-Century
|
|
Beiträge: 230
|
|
|
|
Anmeldedatum: 16.10.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.07.2009, 14:38
Titel:
|
|
nur durch Leiden lernt man ;-)
Du kannst davon ausgehen, dass jeder der das Problem kennt auch ewig davor gesessen hat und nicht weitergekommen ist...
deshalb ja genau dieses Forum!
nur nicht locker lassen, Matlab kann wirklich alles ;-)
|
|
|
Matlab-Einsteiger |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.07.2009, 15:15
Titel:
|
|
Hi,
ich habe dasselbe Problem. Allerdings verwende ich ein Modell, bei dem eine Variable tatsächlich von sich selber abhängt. Normalerweise kann Matlab das auch mit einem Iterationsverfahren nach Newton lösen. Aber bei mir bricht es ab.
Ich habe alle Signalverläufe einfach mit einem Scope-Block auf Singularitäten Untersucht, aber Fehlanzeige.
Was kann noch einen solchen Abbruch hervorrufen?
Vielen Dank im Voraus!
|
|
|
Idefix_1024 |
Forum-Century
|
|
Beiträge: 230
|
|
|
|
Anmeldedatum: 16.10.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.07.2009, 16:23
Titel:
|
|
kann man so einfach leider nicht sagen...
DirectFeedthrough von selbstgebauten Blöcken und s-Functions überprüfen
Integrationsverfahren überdenken (bei diskreten Integrierern)
Ein Signal kann nicht in ein und dem selben Abtastschritt von sich selbst abhängen! Sowas gibt es nunmal nicht...
eine anschauliche Erklärung gibt es zB bei
[url]
http://www1.uni-hamburg.de/W.Wiedl/Skripte/Simulink/AlgLoop.html
[/url]
|
|
|
Matlab-Einsteiger |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.07.2009, 10:55
Titel:
|
|
Vielen Dank für die Hilfe!
Nach längerem Probieren, einer kleinen Änderung meines Modells und dem Hinzufügen eines IC-Blocks (Initial-Condition), welcher die Effektivität des Näherungsverfahrens durch Setzen eines Anfangswertes deutlich verbessert, tritt der Fehler nun nicht mehr auf.
Obwohl ich leider nie ganz rausbekommen habe, was der Fehler nun im Einzelnen war, funktioniert das Modell nun einwanfrei!
|
|
|
|
|
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.
|
|