Interpolationspolynom n-ten Grades mit SPS (S7-1200/1500)

mallepalle83

Level-2
Beiträge
21
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte aus einer beliebigen Anzahl von x-y-Wertepaaren (max. 20 Stützstellen) ein Näherungspolynom der Form f(x)=ax³+bx²+cx+d bestimmen.
Hierbei sollte der Grad wenn möglich variabel einstellbar sein, zum Beispiel 6ten Grades.

Weis jemand, ob es hier schon einen fertigen FB zur freien Verwendung gibt?
Ich habe mal in die OSCAT Library reingeschaut, jedoch nichts vergleichbares gefunden.

Gruß,
Malle
 
Meine Erfahrung mit solchen Polynom Approximationen sind negativ. Soweit ich mich erinnere, geht die Komplexität mit N hoch 3 ziemlich schnell an die Grenze der SPS Leistung, wenn man jeden Zyklus neu rechnen möchte.

Besonders an den Enden des Polynoms (ausserhalb der verwendeten Stützstellen) geht das Polynom extrem in den Wald.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... das hört sich für mich jetzt nicht so an als wenn das jeden Zyklus der SPS neu errechnet werden müßte.
Ich lese daraus eher so etwas wie eine Hüllkurve, die nach einer Werteeingabe abgerundet werden soll um dann verwendet zu werden - ggf. als eine Art Tabelle ...
In jedem Fall - so etwas wirst du normalerweise nicht irgendwo fertig finden (es ist halt kein typisches SPS-Thema) sondern das wirst du dir schon selbst erstellen müssen.

Gruß
Larry
 
@RobiHerb: Müsste nicht jeden Zyklus errechnet werden. Sondern nur einmal bei Aufforderung und dies in einer dann nicht Zeitkritischen Situation.

@Larry: Hmm... Solche oder ähnliche Bausteine gibt es zum Beispiel bei LabView, daher dachte ich, dass es vielleicht etwas vergleichbares in der SPS-Welt gibt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... Rechenzeitprobleme sehe ich da nicht. Ich habe mal sowas mit ein paar Multiplikatoren, Addieren etc. auf dem Antrieb SINAMICS S120 gemacht (als dieser selbst noch keine Kurvenscheiben / Spline DCC- Bausteine hatte).

Es gibt auch die Methode "Akima- Spline". Die könnte man auch umsetzen - oder wenn Du dich mit MATLAB auskennst dort entwickeln und auf die S7-1500 ODK portieren.

Lösungen gibt es schon (ist bei mir jetzt auch schon wieder ein paar Jahre her).
 
Zurück
Oben