|
|
Vorausschau auf eine Funktion/ zeitlicher Vorsprung |
|
luna |
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 14.04.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2010, 08:09
Titel: Vorausschau auf eine Funktion/ zeitlicher Vorsprung
|
|
|
|
|
Hallo Zusammen,
habe schon wieder einmal ein Frage, da ich nach ewiger Recherche nicht weiter bin.
Ich habe folgendes Problem:
Ich habe eine Sprungfunktion die ich von MatLab nach Simulink importiere als fromWorkspace.
Nun möchteich eine Vorausschau "bauen". Sprich meine Sprungfunktion sind Geschwindigkeitsvorgaben und ich möchte jetzt die Fahrerkurve dazu konstruieren: Bildlich: Der Fahrer sieht ein Schild und beschleunigt oder bremst schon bevor er dieses erreicht hat.
Hier brachte mich ein Kollege auf die Idee die gleiche Funktion einfach nochmal mit etwas zeitlichem Vorsprung vorauszuschicken udn dann eine Art Ausgleichsfunktion reinzulegen.
Und jetzt frage ich mich wie ich das machen soll. Ich habe zwar alle erdenklichen Delay und Offset-Blöcke gefunden, brauche ja aber genau das Gegenteil, die Sprungfunktion soll VORAUSEILEN (meine Originalfunktion möchte ich nicht hinterherhlaufen lassen, da sie nachher aus Messwerten besteht). Habe auch schon versucht negative Werte bei Delay einzugeben, denn das wäre es ja, was ich brauche, aber das mag Simulink nicht.
Habt Ihr eine Idee?! Hab ich mal wieder einen Block übersehen der sowas kann? Oder muss ich ein Embedded File schreiben?!
Wäre echt toll, wenn sich wieder jemand erbarmen würde und mir helfen könnte, hab da echt schon viel Zeit in die Suche gesteckt und bin mittlerweile an Ende mit meinem Latein!
Danke! luna
|
|
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2010, 08:15
Titel: Re: Vorausschau auf eine Funktion/ zeitlicher Vorsprung
|
|
luna hat Folgendes geschrieben: |
Habe auch schon versucht negative Werte bei Delay einzugeben, denn das wäre es ja, was ich brauche, aber das mag Simulink nicht. |
So einen Block nennt man Umgangssprachlich auch Glaskugel ;) In dem Fall ist die Zukunft zwar wirklich bekannt, aber allgemein ist es aktuell nicht möglich, zu wissen, was in 10 Sekunden passieren wird.
Am einfachsten wäre es, wenn Du dein Eingangssignal noch vor der Simulation anpasst. Also einfach alle Werte im Eingangsvektor nach hinten schieben.
Oder wenn es direkt in der Simulation sein soll und die Orte der Schilder als Position bekannt sind: Zwei Positionen berechnen. Die eine Position gibt den tatsächlichen Standort des Autos an, die andere den Ort, wo der Fahrer gerade hinsieht (z.B. Standort + 50m + 0.5*Geschwindigkeit).
Wenn die Position der Schilder nur zeitlich bekannt ist, musst Du wohl an den Eingangsdaten drehen.
|
|
|
luna |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 14.04.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2010, 08:39
Titel:
|
|
ok, super Epfi du bist ja voll schnell!!!
danke.
Glaskugel, ... lustig...
es wäre sehr gut, das ganze als block zu realisieren, denn ich muss das Modell noch an mehreren Stellen anwenden.
Jetzt bin ich bisschen ratlos, wie ich aus der einen Position in Simulink die andere berechnen kann. Hab ja als input eine Matrix mit Spalte1 = Strecke, Spalte2= Sollgeschwindigkeit.
Muss ich da dann ne zweite Matrix fromWorkspace laden, die mir den Versatz angibt und die ich addieren kann? Meinst Du so?
Sry vielleicht steh ich bissle (!) auf dem Schlauch
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2010, 08:46
Titel:
|
|
luna hat Folgendes geschrieben: |
ok, super Epfi du bist ja voll schnell!!! |
Das war ein Glückstreffer ;)
Zitat: |
Muss ich da dann ne zweite Matrix fromWorkspace laden, die mir den Versatz angibt und die ich addieren kann? |
Der Versatz ist ja vermutlich konstant.
Das ist ja Dein Vektor mit den Soll-Geschwindigkeiten, richtig? Wenn der Fahrer die nun 50m früher wahrnehmen soll, dann musst Du einfach 50m von allen Streckenvektoren abziehen und schon macht er alles 50m früher.
|
|
|
luna |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 14.04.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2010, 08:54
Titel:
|
|
Schon wieder Antwort *freu* DANKE!
So sieht meine Strecke aus, ich muss auch sagen, dass das nur ein Beispiel ist und das auch noch sehr viel mehr Werte werden, desh. kann ich nicht immer 50 abziehen (das dauert ja dann ewig).
ich importiere da dann VGG
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2010, 09:23
Titel:
|
|
Wenn alles 50m früher passieren soll, müsste es eigentlich mit
klappen. Wobei es mit dem ersten Wegpunkt etwas schwierig sein könnte, der ist dann ja bei -50m...
|
|
|
luna |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 19
|
|
|
|
Anmeldedatum: 14.04.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2010, 09:54
Titel:
|
|
Danke,
ich hab mir jetzt mein Progrämmchen kopiert un neu unter "Vorausschau" gespeichert, hab dann einen Offset für die Punkte gebastelt:
das hab ich dann auch mit fromworkspace importiert und mit mux in einem scope anzeigen lassen.
das ist jetzt nicht toll (wg eben dem negativen Startwert) aber mir fällt nichts besseres ein. Immerhin kann ich den offset dann beliebig anpassen.
Jetzt muss ich nur noch eine gute Ausgleichsfunktion finden, mal gucken wann das zum Forumsthema wird
herzlichen Dank aus der "Glaskugel"
|
|
|
|
|
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.
|
|