|
knolledge |
Forum-Anfänger
|
|
Beiträge: 17
|
|
|
|
Anmeldedatum: 30.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.11.2013, 12:15
Titel: Dichotomie mit Simulink
|
|
|
|
|
Servus zusammen,
ich habe eine (vermutlich) recht simple Frage.
Und zwar möchte ich mit Simulink einen Algorithmus erstellen, der mir möglichst einfach einen Wert findet, der in einem Intervall liegt.
Bis jetzt habe ich den Wert gefunden, indem ich einen einfachen Zähler modelliert habe, der einfach solange aufaddiert hat und dabei in einem if Action Subsystem gelaufen ist bis mein Wert gefunden wurde.
Erst wenn der Wert größer oder kleiner als 0,001 im Vergleich zu meiner Referenzgröße war wurde der Wert an meinen else Block weitergegeben.
Da das Modell mittlerweile relativ groß ist benötigt das Modell viel Rechenzeit um eben diesen Wert zu finden.
Mit Hilfe der Dichotomie (so heißt das Verfahren auf französisch) ist es in der Mathematik möglich relativ schnell die gesuchte Größe zu finden.
Dabei wird praktisch ímmer die Hälfte des Intervalls genommen und überprüft ob der Wert größer oder kleiner der Vergleichsgröße ist. Wenn er kleiner ist wird die linke (kleinere) Hälfte wieder halbiert und wieder überprüft. Analog dazu wenn der Wert größer ist. und so weiter und so weiter bis der Wert gefunden wurde.
Dieses Verfahren würde ich gerne in Simulink anwenden. Allerdings bin ich auf der Suche nach dem richtigen Verfahren nicht fündig geworden.
Hat hier jemand eine Idee wie ich diesen Algorithmus in Simulink verwirklichen kann?
Vielen Dank schonmal fürs Lesen und für jeden Tipp
knolledge
edit:
PS: ich wäre auch sehr dankbar wenn mir jemand sagen kann wie das auf deutsch heißt was ich suche vllt ist dichotomie auch das falsche wort...
|
|
|
|
|
knolledge |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 17
|
|
|
|
Anmeldedatum: 30.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.11.2013, 10:11
Titel:
|
|
|
|
geieraffe |
Forum-Fortgeschrittener
|
|
Beiträge: 97
|
|
|
|
Anmeldedatum: 19.04.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.11.2013, 13:53
Titel:
|
|
Naja, wenn du nicht fanatisch auf Blöcke bist, dann binde in dein Simulinkmodell doch eine simple m-Funktion ein.
Der übergibst du den alten Minimal- und Maximalwert und es gibt dir Minimal- und Maximalwert der "neuen Hälfte" zurück.
... oder löst das Problem eben gleich komplett. Ich weiß leider nicht wie das in deinem Gesamtmodell aussehen soll.
|
|
|
knolledge |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 17
|
|
|
|
Anmeldedatum: 30.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.11.2013, 15:15
Titel:
|
|
es geht um meine diplomarbeit und mein betreuer steht fanatisch auf blöcke.
mit m file hab ich es mittlerweile auch schon hinbekommen aber leider gefällt das nicht
|
|
|
|
|
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.
|
|