Zum Inhalt springen

Tornado

Mitglieder
  • Gesamte Inhalte

    6
  • Benutzer seit

  • Letzter Besuch

Beiträge von Tornado

  1. Danke für die ganze Informationen!

    Wenn du die Messwerte nicht verfälschen wolltest, müsstest du sie nehmen, wie sie sind.
    Das würde ich auch am liebsten, nur brauche ich halt leider den Fluss pro Sekunde und habe die Einzelflüsse. Bei einem höheren Fluss pro Sekunde sind die Einflüsse gar nicht unbedingt höher, sondern es gibt einfach weniger Zeitschritte in denen z.B. 0 Personen die Grenze überschritten haben (die Einzelflüsse betragen meistens 0 oder 1, ganz selten 2). Daher reicht das Betrachten der Einzelflüsse leider nicht aus.

    Die anderen Verfahren benötigen Werte aus der Zukunft - das geht nur, wenn du deiner Software etwas Zeit gibts die Werte zu sammeln.
    Ich habe ja die Werte einer abgeschlossenen Simulation. Also prinzipiell auch Zukunftswerte. Bloß gegen Ende der Aufzeichnung gehen mir dann natürlich die Zukunftswerte aus.
  2. Ich hatte jetzt die letzten Tage nicht viel Zeit, deshalb bin ich erst jetzt wieder hier.

    Da ich in den Beispielmesswerten keine negativen Zahlen sehe, gehe ich davon aus, dass die Summation monoton steigend ist. Da zudem Werte > 1 vorkommen gehe ich davon aus, dass keine Grenzüberschreitung ausgelassen wurde. Unter diesen Voraussetzungen ist die Abtastgeschwindigkeit egal - es wird kein Ereignis übersehen.

    Genau. Die Personen sind entweder vor oder hinter der Grenze, dazwischen gibt es nichts. Wenn sie zu t vor der Grenze waren und zu t+1 dahinter, dann haben sie zwischen t und t+1 die Grenze überschritten. Sowas wie "zur Hälfte überschritten" oder ähnliches gibt es aber nicht. Hat eine Person die Grenze überschritten so wird es auf jeden Fall gemerkt (sie gehen auch nicht wieder zurück, so dass man das einmal übersehen könnte).

    Die Anzahl an Personen, die zwischen Zeitschritt t und t+1 die Grenze überquert haben (-> Personenfluss), muss immer >= 0 sein und kann nur ganzzahlig sein. Der Personenfluss pro Zeitschritt kann aber sehr stark varieren, weil sich die Personen gegenseitig behindern und "verklemmen" können.

    Was du zu suchen scheinst ist ein Tiefpassfilter für deine Messwerte. Diese leben prinzipbedingt immer etwas in der Vergangenheit.

    Dein Vorschlag mit der Summation der letzten 15 Werte entspricht einem FIR-Filter mit Rechteckfenster. Ist leicht zu programmieren aber hat ansonsten sehr miese Eigenschaften.

    Welche miesen Eigenschaften meinst du? Die, die ich beschrieben habe? Also, dass es sehr träge auf die Änderungen reagiert?

    Ich empfehle einen IIR-Filter nach folgender Art:

    f[n + 1] := f[n] * a + v[n] * (1 - a)

    a = [0 .. 1]

    f[0] = 0

    Das entspricht in der E-Technik einem Tiefpass erster Ordnung ohne Resonanzfrequenz und glättet deine Messwerte. Mit a kannst du die Stärke der Glättung einstellen:

    - Werte gegen 1 glätten stark und reagieren nur träge (geringe zeitliche Auflösung)

    - kleine Werte für a reagieren stärker auf schwankende Messwerte (hohe zeitliche Auflösung)

    Ist relativ einfach zu implementieren und bietet schon recht gute Ergebnisse.

    Das werde ich mir dann mal angucken. Danke! Leider bin ich kein E-Techniker und habe deshalb mit sowas noch keine Erfahrung. Wo kann man deine Formel nachlesen? Bzw. was ist hier v[n]? Und wie lässt sich a am besten bestimmen? Ich will ja meine Ergebnisse durch den Filter eigentlich nicht verfälschen.

  3. Ich glaube du hast noch etwas falsche Vorstellungen von dem, was ich eigentlich mache. Der von mir betrachtete Fluss ist folgendermaßen definiert:

    Der spezifische Fluss ist die Anzahl Personen, die einen bestimmten Querschnitt pro Meter lichter

    Breite und pro Sekunde passieren. Die Einheit ist Personen/ms.

    Es geht also zum Beispiel darum, wie viele Personen einen Durchgang pro Sekunde durchqueren können (dividiert durch die Breite dieses Durchganges).

  4. Na gut, aber in diesem speziellen Fall haben wir es mit einer Multi-Agenten-Simulation zu tun und die Objekte (Agenten), in diesem Fall Personen, entscheiden aufgrund ihrer Logik wo sie sich hinbewegen. An der Simulation selbst kann ich auch nichts ändern. Es geht nur um eine geeignete Auswertung der Aufzeichnungen und dort stehen mir nur die Positionen zu bestimmten Zeitpunkten t zur Verfügung. Die Objekte sind außerdem Moving Point Objects (MPO), also sich bewegende Punkte in einem Raum. Somit kann sich der Punkt nur genau vor/auf der Grenze befinden oder dahinter.

  5. Also in der Simulation haben die Objekte zu jedem Zeitschritt t einen Punkt x, y an dem sie sich befinden. Die Simulation berechnet dann die nächsten Positionen für t + 1. Die maximale Geschwindigkeit der Objekte ist in Meter pro Sekunde bekannt und die neue Position ist dann von dieser maximalen Geschwindigkeit sowie der Beeinflussung durch die anderen Objekte gegeben. Zwischenwerte zwischen t und t + 1 gibt es in der Simulation nicht.

    Beispiel:

    Die Grenze liegt bei y = 10.

    3 von 100 Objekten hatten zu Zeitschritt t einen y-Wert <= 10 und zu Zeitschritt t + 1 einen y-Wert > 10. Sie haben also zwischen den Zeitschritten die Grenze überschritten. Für diesen Fall wäre der Einzelfluss dann 3.

  6. Hallo!

    Ich betrachte in einer Simulation, wie viele sich bewegende Objekte zwischen zwei Simulationsschritte eine bestimmte Grenze überschritten haben. Ein Simulationsschritt beträgt 1/15 Sekunde. Meine Daten sehen also z.B. so aus:

    t Fluss

    0 0

    1 1

    2 0

    3 0

    4 1

    5 0

    6 2

    ...

    Nun brauche ich aber den Fluss pro Sekunde zu jedem Zeitpunkt (u.a. für eine visuelle Darstellung). Einfach die Werte mit 15 multiplizieren, würde viel zu große Ergebnisse geben, da die Werte der Einzelflüsse nicht besonders konstant sind. Was ich also mache ist folgendes: Will ich den Fluss pro Sekunde zu t = 20 haben, so addiere ich die Einzelflüsse von t = 6 bis t = 20. Das sind dann also 15 Werte, also 15 * 1/15 = 1 Sekunde.

    Allerdings habe ich dann zwei Probleme:

    1. Die Berechnung kann erst ab t = 14 funktionieren, für frühere Werte ist der Fluss pro Sekunde nicht berechenbar.

    2. Der Fluss pro Sekunde "hängt immer hinterher". Sagen wir mal, dass aus irgendeinem Grund der Fluss ab t = 30 komplett stoppt (also alle t >= 30 einen Einzelfluss von 0 liefern). Dann wäre es ja schön, wenn der Fluss pro Sekunde bei t = 30 auch 0 wäre. Da ich aber die Einzelflüsse von t = 16 bis t = 30 addieren würde, würde ich erst verzögert merken, dass der Fluss gestoppt ist, möglicherweise erst zu t = 44. Ich will aber unter anderem einen Zusammenhang zwischen Änderungen der Flussrate pro Sekunde und bestimmten Ereignissen feststellen können, dafür ist es äußerst ärgerlich, dass es diese "Verschiebung" gibt und sich Änderungen an den Einzelflüssen nur langsam bemerkbar machen.

    Ist mein Vorgehen da irgendwie zu primitiv und gibt es eine bessere Möglichkeit den Fluss pro Sekunde zu einem Zeitschritt t zu berechnen? Vielleicht hat ja einer von euch eine gute Idee...

    Gruß

    Tornado

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...