|
|
Fehler bei Benutzung von diskretem Solver |
|
JimPanse |
Forum-Anfänger
|
|
Beiträge: 34
|
|
|
|
Anmeldedatum: 11.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.08.2011, 15:52
Titel: Fehler bei Benutzung von diskretem Solver
|
|
Hallo!
Ich versuche mich gerade daran, eine Synchronmaschine in Simulink abzubilden. Die Simulationen laufen auch größtenteils ordentlich durch, allerdings habe ich manchmal Probleme, dass der Eingang eines Integrator unendlich wird. Dieses Problem tritt allerdings nur auf, wenn ich einen diskreten Solver verwende.
Steige ich auf variable Schrittweite um, gibt es keinen Simulationsabbruch.
Leider kann ich mir nicht erklären, woher das Problem kommt und ich komme auch bei der Analyse nicht weiter.
Hat jemand eine Idee, woran das liegen könnte bzw. eine Herangehensweise zur Fehlersuche? Ich komm leider um den diskreten Solver nicht drumrum...
Vielen Dank schonmal!
Beschreibung: |
|
Download |
Dateiname: |
untitled.mdl |
Dateigröße: |
38.54 KB |
Heruntergeladen: |
453 mal |
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 18.08.2011, 16:52
Titel:
|
|
Hallo,
kann es sein, dass du "diskret" und "feste Schrittweite" verwechselst? Ich gehe einfach mal davon aus.
Wenn du Code generieren möchtest, musst du in der Tat auf einen Löser mit fester Schrittweite gehen. Sollte die Simulation dann nicht genau genug sein (das von dir geschilderte Phänomen ist ein Extremfall davon), dann hilft nur, die Schrittweite zu reduzieren oder einen Solver höherer Ordnung (z.B. ode5) zu verwenden.
Grüße,
Harald
|
|
|
A |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.08.2011, 21:35
Titel:
|
|
|
|
JimPanse |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 34
|
|
|
|
Anmeldedatum: 11.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.08.2011, 08:57
Titel:
|
|
Korrekt, ich meinte feste Schrittweite.
Auch korrekt, ich habe die Parameter vergessen. Hätte schwören können, sie sind dabei...
Hier ist ein neues Modell, diesmal mit Parametern in der InitFcn.
@A Ich schau mich mal um, bin schon länger mit der Thematik beschäftigt, von daher muss ich mal schauen, ob ich was Grundlegendes finde...
edit: und natürlich das Modell vergessen... jetzt aber...
Beschreibung: |
|
Download |
Dateiname: |
untitled.mdl |
Dateigröße: |
38.6 KB |
Heruntergeladen: |
444 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.08.2011, 09:54
Titel:
|
|
Hallo,
hast du's denn mit besserem Löser (ode3 oder ode5) bzw. kleinerer Schrittweite versucht?
Grüße,
Harald
|
|
|
JimPanse |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 34
|
|
|
|
Anmeldedatum: 11.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.08.2011, 11:09
Titel:
|
|
Solver höherer Ordnung funktioniert... Allerdings tritt dieses Phänomen nur unregelmäßig auf.
Ich würde jetzt gerne verstehen, wieso das ganze passiert...
Ist es dann nicht generell besser, ode5 oder ode8 zu benutzen?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 19.08.2011, 11:23
Titel:
|
|
|
|
|
Hallo,
Löser mit variabler Schrittweite haben eine Schrittweitensteuerung. Dabei wird der durch die Diskretisierung entstehende Simulationsfehler geschätzt und die Schrittweite so angepasst, dass der zu erwartende Simulationsfehler innerhalb bestimmter Schranken bleibt.
Bei fester Schrittweite gibt es keine solche Steuerung. Je nach DGL und Verfahren schaukeln sich die Fehler teilweise auf, und die Lösung ergibt nicht mehr den geringsten Sinn. Ein Spezialfall dessen wird gelegentlich als "Martini-Glas-Effekt" bezeichnet (mal googlen und den Link zu Bornemann/Deuflhard folgen).
Was die Simulationsgenauigkeit angeht, ist es generell besser, ode5 oder ode8 zu benutzen, und das mit möglichst kleiner Schrittweite. Allerdings sind ode5 und ode8 aufwändiger in der Berechnung, ein Schritt verbraucht also mehr Rechenzeit. Gerade wenn es also um die Codeerzeugung geht, dann ist das Ziel, die Solvereinstellungen so zu wählen, dass die Lösung mit ausreichender Genauigkeit angenähert wird und die Berechnungen innerhalb eines Taktzyklus durchgeführt werden können. Letzteres führt dazu, dass man die Schrittweite nicht zu klein wählen kann bzw. mit einem Löser niedrigerer Ordnung vorliebnehmen muss.
Grüße,
Harald
|
|
|
JimPanse |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 34
|
|
|
|
Anmeldedatum: 11.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.08.2011, 11:38
Titel:
|
|
Wow, danke!
Frage umfassend beantwortet
|
|
|
|
|
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.
|
|