|
|
Optimization Toolbox lsqnonlin arbeitet unzuverlässig |
|
ali.k |
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 30.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.04.2014, 07:45
Titel: Optimization Toolbox lsqnonlin arbeitet unzuverlässig
|
|
Hi Leute! Habe Sprünge, die normalerweise aussehen wie in Bild 2. Die Rote Mittelwertkurve wird anhand eines Simulink Modells (PT1) und der Optimierungsfunktion lsqnonlin angenähert, was die gestrichelte Kurve ergibt. Aber wenn die Sprungantwort zu kurz ist (<0.5 Sekunden) Spuckt er mir falsche Ergebnisse aus (gestrichelte Kurve Bild 1). Hab schon versucht, die Optimiereroptionen zu ändern, hat nichts gebracht. Bin für Anregungen dankbar.
Beschreibung: |
|
Download |
Dateiname: |
n.i.O.jpg |
Dateigröße: |
74.2 KB |
Heruntergeladen: |
533 mal |
Beschreibung: |
|
Download |
Dateiname: |
i.O.jpg |
Dateigröße: |
74.91 KB |
Heruntergeladen: |
646 mal |
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.04.2014, 08:19
Titel:
|
|
Hallo,
Algorithmen aus der Optimization Toolbox wie lsqnonlin sind gradientenbasiert und suchen lokale Minima. Sie sind also auf ausreichend gute Startwerte angewiesen.
Für globale Optimierung kann man entweder selbst über mehrere Startwerte iterieren oder Solver aus der Global Optimization Toolbox nutzen, siehe z.B. http://www.mathworks.com/help/gads/.....urvefit-or-lsqnonlin.html
Für weitere Unterstützung müssten wir viel genauer wissen, was du genau machst - am besten anhand eines Codebeispiels inkl. Daten, bei denen du Probleme hast.
Grüße,
Harald
|
|
|
ali.k |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 30.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.04.2014, 08:55
Titel:
|
|
Also ich habe ein Signal mit mehreren Sprungantworten. Die Sprünge werden erkannt, "ausgeschnitten" und in einer Matrix gespeichert, welche die Auflösung Anzahl der Sprünge*Sprunglänge hat. Die Sprünge sind alle auf die Länge des kürzesten Sprunges gekürzt. Anschließend wird der Mittelwert aus allen Kurven gebildet.
Dann übergebe ich die Daten an den Optimierer.
1. Der passt Werte für Totzeit und Zeitkonstante an
2. PT1-Modell läuft durch mit den ermittelten werden und die Kurve wird modelliert.
3. Vergleich des Modells mit der Mittelwertkurve (rote Kurve).
4. Ist die Toleranz zwischen den beiden Kurven ausreichend gering, so endet die Berechnung und Totzeit/Zeitkonstante werden ausgegeben. Wenn nicht, fängts wieder bei 1 an.
Die Aufbereitung der Kurven passt alles, habe ich alles händisch überprüft!
|
|
|
ali.k |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 13
|
|
|
|
Anmeldedatum: 30.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.04.2014, 09:09
Titel:
|
|
OK mein Fehler, habe die Optimiereroptionen angepasst und es geht
Kann zu.
|
|
|
|
|
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.
|
|