Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 9 von 9

Thema: Spline berechnen

  1. #1
    Registriert seit
    02.12.2006
    Beiträge
    88
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Folgendes Problem: Auf einer Maschine speichern wir kontinuierlich Positionsmesswerte(x und y). Diese werden in einem Datenbaustein gespeichert.
    Jedoch haben wir Schwankungen in den Messwerten und somit ergibt sich gesamt keine saubere Strecke.
    Nun möchte ich einen Spline berechnen lassen, eine Art Interpolation oder so ähnlich sodass sich eine schöne runde Strecke ergibt mit keinen Ecken und Kanten und dann die einzelnen neu errechneten Positionswerte wieder in einen Datenbaustein speichern.
    Hat jemand eine Idee wie ich dies realisieren könnte?

    mit freundlichen Grüßen

    neibeck
    Zitieren Zitieren Spline berechnen  

  2. #2
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von neibeck Beitrag anzeigen
    Hallo!
    Nun möchte ich einen Spline berechnen lassen, eine Art Interpolation oder so ähnlich sodass sich eine schöne runde Strecke ergibt mit keinen Ecken und Kanten und dann die einzelnen neu errechneten Positionswerte wieder in einen Datenbaustein speichern.
    Hat jemand eine Idee wie ich dies realisieren könnte?
    Wo ist das Problem? Die Mathematik oder die Umstzung in ein SPS-Programm?

  3. #3
    Registriert seit
    02.12.2006
    Beiträge
    88
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    naja... vorerst mal die mathematik...

    hab gerade mal gegoogelt, blicke aber hier nicht so richtig durch...

    welche berechnung soll ich nehmen.. da gibt es b-splines, bezier, usw...

    Ich hätt mir b-spline und bezier mal genauer angeschaut, das ganze scheint mir aber doch recht kompliziert zu sein...

    mfg

  4. #4
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Zitat Zitat von neibeck Beitrag anzeigen
    Jedoch haben wir Schwankungen in den Messwerten und somit ergibt sich gesamt keine saubere Strecke.
    Du solltest erstmal abklären, ob dir ne Spline-Interpolation überhaupt was bringt. Wenn die Abweichungen tatsächliche Messfehler, bzw. Ungenauigkeiten sind, verfälschen die das Endergebnis und somit hättest du eine nicht der Realität entsprechende Kurve brechnet. Deswegen dies erstmal verbessern.
    Wenn die "Fehler" durch die Abtastfrequenz bedingt sind, dann nimm dir ne Mathematik-Formelsammlung zur Hand und hack die Spline-Interpolation in die Steuerung

  5. #5
    Registriert seit
    02.12.2006
    Beiträge
    88
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    tja, die messfehler kriegen wir leider nicht mehr besser hin...

    eine interpolation verfälscht die Messung zwar ein wenig, es ist aber für unsere anwendung immerhin noch besser als die Sprünge...

    tja das mit der Spline-Interpolation durchblick ich nicht so ganz...
    Ich werde morgn mal meinen Mathematik-Lehrer fragen, vl kann der mir besser weiterhelfen... falls noch weitere Fragen auftauchen melde ich mich wieder...

    Ich hatte nur gehofft dass vl hier schon mal jemand sowas gemacht hat und mir vl mit einer Art Vorlage weiterhelfen könnte..

  6. #6
    Registriert seit
    28.10.2005
    Ort
    Ottweiler, Saar
    Beiträge
    940
    Danke
    259
    Erhielt 124 Danke für 109 Beiträge

    Standard

    Zur Berechnung der Spline-Funktion dienen die vorhandenen
    Wertepaare. Also zb. (Zeitstempel, Messwert).

    Dabei liegen diese "Stützstellen" immer auf
    dem Spline. D.h. sind zb (x0,y0), (x1,y1), (x2,y2) die Stützstellen,
    so liefert der Algorithmus für x0 den Wert y0 usw.

    Du wirst also viel rechen, hast aber, wenn dich nur die Werte zu
    den vorhandenen Zeitpunkten interessieren, am Ende lediglich
    eine Zuweisung, eventuell mit zusätzlichen Rundungsfehlern.

    Interessant sind Interpolationen (wie der Name schon sagt), wenn
    Zwischenwerte vorhergesagt werden sollen.
    Zitieren Zitieren Interpolation hier ungeeignet.  

  7. #7
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von neibeck Beitrag anzeigen
    tja das mit der Spline-Interpolation durchblick ich nicht so ganz...
    Gesucht: Ein Stück Kurve zwischen zwei Punkten (x1,y1) und (x2,y2). Die Kurve soll durch ein Polynom beschreibbar sein, also z.B. ein Polynom 3.Ordnung:
    y=a3*x³+ a2*x²+a1*x+a0. Da sind jetzt 4 Unbekannte drin, nämlich a0 bis a3.
    Wir wissen:
    y1=a3*x1³+ a2*x1²+a1*x1+a0.
    y2=a3*x2³+ a2*x2²+a1*x2+a0.

    Zwischen den benachbarten Punkten (x0,y0) und (x1,y1) soll genau so ein Kurvenstück liegen.
    y=b3*x³+ b2*x1²+b1*x1+b0.
    Beide Kurvenabschnitte treffen in (x1,y1) aufeinander. Der Verlauf soll "glatt" sein, d.h. die Steigung soll dieselbe sein:
    y'=3*b3*x1²+ 2*b2*x1+b1=3*a3*x11³+ a2*2*x1
    Das liefert weitere Gleichungen für das Gleichungssystem. Man fordert, daß auch soviele höhere Ableitungen gleich sind, daß es genügend Gleichungen sind. Dann kann man rechnen...
    Für die Rechnung findet man sicher ein C-Programm im Internet.

  8. #8
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    Zitat Zitat von neibeck Beitrag anzeigen
    Hallo!

    Nun möchte ich einen Spline berechnen lassen, eine Art Interpolation oder so ähnlich sodass sich eine schöne runde Strecke ergibt mit keinen Ecken und Kanten und dann die einzelnen neu errechneten Positionswerte wieder in einen Datenbaustein speichern.
    Hat jemand eine Idee wie ich dies realisieren könnte?

    mit freundlichen Grüßen

    neibeck
    Das mit dem Spline ist ja schön und gut, du musst es nur evt. ins 2 oder 3-dimensionale Übertragen.
    http://de.wikipedia.org/wiki/Spline
    Aber ich frage mich, ob es wirklich das ist was du willst?
    Wenn die gleiche Strecke mehrmals abgefahren wird, wirst du eine Kurvenschar erhalten.
    Ich würde an deiner Stelle den Messwert der Position filtern, evt auch beides.
    hth

  9. #9
    Registriert seit
    20.11.2004
    Ort
    Linz, OÖ
    Beiträge
    1.365
    Danke
    96
    Erhielt 177 Danke für 133 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Also ich hab vor einigen Jahren mal ein C-Programm zur Berechnung eines Kubischen Spline (C-Spline) in AWL umgesetzt. Der Baustein benötigt vorher eine komplette Stützpunkttabelle und spuckt Ausgabewerte in einem definierbaren Intervall aus.
    Die Berechnung erfolgt azyklisch und braucht je nach CPU und Anzahl Splinepunkt schon mal einige Sekunden. (40 Stützpunkte, 2000 Ausgabepunkt, CPU315-2DP (2AF03) --> 15-20 sek)

    mfg
    Maxl
    Bin aufgrund §2 der "Rechte des Betreibers" der Forum-Regeln nicht mehr aktiv, da nicht nicht akzeptiere, dass Informationen und Erkenntnisse ohne Quellangabe weitergegeben werden sollen. Jedem steht frei, auf die gleichen Erkenntnisse durch Eigenversuche zu kommen, vor allem Buchautoren.

Ähnliche Themen

  1. CRC berechnen
    Von H.Scorpio im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 20.01.2011, 18:05
  2. 2^x berechnen
    Von TimoK im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 23.02.2010, 09:31
  3. Checksumme berechnen?
    Von mpexx im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 30.01.2008, 07:52
  4. K-Zahl im Gas berechnen.
    Von Bender25 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 07.06.2007, 13:56
  5. Kalenderwoche berechnen
    Von Simatics im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 06.05.2007, 21:59

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •