|
|
Arbeitsweitse von deval/ Ersatz für deval |
|
Erano1 |

Forum-Fortgeschrittener
|
 |
Beiträge: 59
|
 |
|
 |
Anmeldedatum: 26.04.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.08.2016, 22:41
Titel: Arbeitsweitse von deval/ Ersatz für deval
|
 |
|
 |
|
Hallo,
ich möchte im Rahmen einer Parameteroptimierung den Unterschied zwischen der Simulation mit ode45 (Simulink) und ode45 in Matlab analysieren. Nach der Simulation ist es nötig die Ergebnisse für feste Abtastwerte zu erhalten.
Das Problem ist, dass zur Anwendung von deval das Ergebnis in einem bestimmten structure vorliegen muss, wie ihn
liefert. interp1 war meine erste Idee, um die Ergebnisse aus Smulink zu bearbeiten, ohne sie selbst in die Form des sol-structure bringen zu müssen. Allerdings liefern deval und interp1 nicht exakt die selben Ergebnisse, was wünschenswert für den Vergleich wäre.
Weiß jemand wie genau deval interpoliert und ob es eine Funktion gibt, die exakt die selbe Art und Weise anwendet, aber nicht den speziellen struct sol als Parameter erwartet?
Dazu sei gesagt, dass nicht einfach mit ode4 simuliert werden soll, um direkt fixe Zeitwerte zu erhalten, es sollte, alleine schon aus Zeitgründen mit ode45 simuliert werden.
Viele Grüße,
Erano1
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 29.08.2016, 11:24
Titel:
|
 |
Hallo,
bei ode45 kannst du als tspan einen Vektor angeben, um die Ergebnisse zu bestimmten Zeitschritten zu bekommen.
In Simulink geht das auch in Configuration Parameters --> Data Import / Export --> Additional Parameters --> Output options --> Produce specified output only.
Grüße,
Harald[/code]
|
|
|
Erano1 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 59
|
 |
|
 |
Anmeldedatum: 26.04.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 30.08.2016, 11:34
Titel:
|
 |
|
 |
|
Hallo,
danke für deine Antwort. Deine Einstellung, welche du ansprichst kann ich leider nicht finden, siehe Screenshot.
Um noch auf deinen Vorschlag einzugehen: Würde es, abgesehen davon, dass ode45 und ode4 in Simulink ein anderes Verfahren verwenden, hinterher nicht auf das selbe hinaus laufen? Meine Intention war einen Zeitvorteil zu bekommen, wenn mit ode45 simuliert wird und anschließend interpoliert (ähnlich wie deval), denn während der Parameteroptimierung wird die Simulation einige Male ausgeführt und ich vermutete es wird einen deutlichen Zeitunterschied ausmachen. Allerdings habe ich festgestellt, das im Fall von Simulink ode4 sogar schneller ist als ode45 (ohne deine Einstellungen für vorgegebenes tspan). Bei ode45 wird sogar ein Step mehr genommen als mit ode4, und hinterher die selbe Schrittweite wie bei ode4, was wohl damit zu tun hat, dass das Eingangssignal dem vom realen System entspricht und das zu festen Abtastwerten existiert. Dazu muss gesagt werden, dass das selbe System mit ode45 in Matlab deutlich schneller ist, als ode4.
Problem hat sich also dadurch schon gelöst, da ode45 gar nicht wirklich die Schrittweite selber bestimmt.
Grüße,
Erano1
Beschreibung: |
|
 Download |
Dateiname: |
simulink.JPG |
Dateigröße: |
105.3 KB |
Heruntergeladen: |
284 mal |
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 30.08.2016, 11:59
Titel:
|
 |
Hallo,
dann hast du ein anderes Release, und es wäre gut, wenn du das angibst.
Auf deinem Screenshot gibt es direkt die Option "Output Options".
Zitat: |
Meine Intention war einen Zeitvorteil zu bekommen, wenn mit ode45 simuliert wird und anschließend interpoliert |
Das halte ich nicht für sinnvoll, da so zusätzlich zum kontrollierten Integrationsfehler ein nicht kontrollierter Interpolationsfehler entsteht.
ode45 und ode4 sind vollkommen unterschiedliche Ansätze. Das eine hat Schrittweitensteuerung zur Kontrolle des Integrationsfehlers, das andere nicht.
Zitat: |
Problem hat sich also dadurch schon gelöst, da ode45 gar nicht wirklich die Schrittweite selber bestimmt |
Was du damit meinst, ist mir nicht klar.
Grüße,
Harald
|
|
|
Erano1 |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 59
|
 |
|
 |
Anmeldedatum: 26.04.16
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 31.08.2016, 21:52
Titel:
|
 |
Hallo,
die Versionsnummer werde ich demnächst angeben (2014b).
Ziel ist/war ein Vergleich bei der Optmimierung von ode4 und ode45. Mit ode45 habe ich mir eine deutlich geringere Rechenzeit versprochen als mit ode4. Allerdings ist das Eingangssignal zu festen Abtastwerten (vom realen System) gegeben und daher wird auch ode45 sozusagen zu fester Schrittweite gezwungen. Deswegen hat sich das Problem mit der Interpolation, welche ich nach der Simulation mit ode45, durchführen wollte und sich wie deval verhalten sollte erledigt, da mit ode45 in diesem Fall gar keine variable Schrittweite verwendet wird und somit der Zeitvorteil verloren geht.
Grüße,
Erano1
|
|
|
|
|
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 - 2025
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.
|
|