-
Hintergrund der Erfindung
-
1. Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft eine numerische Steuerung, die ein Bearbeiten ausführt durch Erzeugen einer Kurve zum Bearbeiten (Bearbeitungskurve) basierend auf einer Befehlspunktfolge, die von einem Bearbeitungsprogramm für eine Werkzeugmaschine erhalten wird, welche eine Mehrzahl von Antriebsachsen umfassend zumindest zwei lineare Achsen aufweist, Interpolieren der Bearbeitungskurve und Bewegen der Antriebsachsen zu den interpolierten Positionen auf der Bearbeitungskurve.
-
2. Beschreibung des Standes der Technik
-
Für eine numerische Steuerung, die eine Werkzeugmaschine steuert, ist ein herkömmliches Verfahren des Erzeugens einer Kurve oder einer geraden Linie aus einer bereitgestellten Punktfolge und des Interpolierens der Kurve oder der geraden Linie bekannt.
-
<1> Kurvenerzeugung
-
- 1-1. Eine Spline-Kurve, wenn eine Startpunktbedingung in einem Startpunkt und einer Endpunktbedingung in einem Endpunkt einer Befehlspunktfolge spezifiziert sind.
-
Wenn eine Punktfolge P0, P1, P2, ..., Pn, ein Erst-Ableitungsvektor [first-derivative vector] P0' als eine Startpunktbedingung an einem Startpunkt der Punktfolge und ein Erst-Ableitungsvektor Pn' als Endpunktbedingung eines Endpunkts der Punktfolge gegeben sind, wie in 1 gezeigt, wird eine kubische Funktion, die eine kubische Kurve darstellt, welche die entsprechenden Punkte verbindet, so dass die Erst-Ableitungsvektoren und Zweit-Ableitungsvektoren in jedem Punkt stetig sind, allgemein wie folgt erhalten.
-
Ausdruck (1) unten gilt für Erst-Ableitungsvektoren (P0', P1', P2', ..., Pn')T in den entsprechenden Punkten, wobei „T” eine Transponierung bezeichnet. Im Folgenden wird dieses Zeichen in Fällen, in denen dies selbstverständlich ist, jedoch weggelassen. t1, t2, ..., tn bezeichnen Unterschiede in Parameterwerten (kubische Funktionsparameter t) einer erzeugten kubischen Funktion zwischen den entsprechenden Punkten P0, P1, P2, ..., Pn und werden allgemein als Abstand (Kurvenlängen) zwischen den entsprechenden Punkten P0, P1, P2, ..., Pn der erzeugten kubischen Funktion ausgedrückt. Jedoch kann eine kubische Funktion nicht bestimmt werden, sofern nicht P0', P1', P2', ..., Pn' bestimmt sind, und die Abstände (Kurvenlängen) zwischen den Punkten P0, P1, P2, ..., Pn einer eine kubische Funktion darstellenden Kurve können nicht bestimmt werden, sofern nicht die kubische Funktion bestimmt ist. Daher werden die Abstände (Kurvenlängen) zwischen den entsprechenden Punkten P0, P1, P2, ..., Pn oft mittels linearer Abstände zwischen den entsprechenden Punkten P0, P1, P2, ..., Pn angenähert. Beispielsweise wird ein linearer Abstand zwischen P0 und P1 mit t1 bezeichnet, ein linearer Abstand zwischen P1 und P2 wird mit t2 bezeichnet und ein linearer Abstand zwischen Pn-1 und Pn wird mit tn bezeichnet. Weiterhin beziehen sich ein Erst-Ableitungsvektor bzw. ein Zweit-Ableitungsvektor jeweils auf Werte in jedem Punkt (Werte des Parameters t in jedem Punkt) einer ersten Ableitung und einer zweiten Ableitung einer kubischen Funktion nach dem Parameter t.
-
In diesem Fall sind P0, P1, P2, ..., Pn und P0', P1', P2', ..., Pn' Vektoren, die Elemente entsprechend wenigstens zweier linearer Achsen aufweisen. In Abhängigkeit der Maschinenkonstruktion können die Vektoren Elemente einer dritten, vierten, ... linearen Achse oder Elemente von Rotationsachsen zusätzlich zu den zwei Linearachsen aufweisen.
-
-
Da P0', Pn', P0, P1, P2, ..., Pn durch Ausdruck (1) oben gegeben sind und t1, t2, ..., tn aus P0, P1, P2, ..., Pn hergeleitet werden können, kann daher P' = (P0', P1', P2', ..., Pn')T bestimmt werden. Mit anderen Worten, wenn Ausdruck (1) durch Ausdruck (2) unten dargestellt ist, kann P' bestimmt werden, wie dargestellt durch Ausdruck (3). M·P' = B (2) P' = M–1·B (3)
-
Sobald P' bestimmt werden kann, kann eine Funktion einer kubischen Kurve zwischen den entsprechenden Punkten aus P0, P1, P2, ..., Pn hergeleitet werden. Mit anderen Worten, eine Funktion fi(t) (i = 0, 1, 2, ..., n – 1; 0 ≤ t ≤ ti+1) einer kubischen Kurve zwischen Pi und Pi+1, die wie dargestellt durch Ausdruck (4) unten ausgedrückt wird, kann aus Pi, Pi+1, Pi', Pi+1' hergeleitet werden. Demnach kann aus Befehlspunktfolgepositionen (P0, P1, P2, ..., Pn), einer Startpunktbedingung (in diesem Fall P0') und einer Endpunktbedingung (in diesem Fall Pn') eine Funktion hergeleitet werden, die eine kubische Kurve zwischen den entsprechenden Punkten darstellt, sodass Erst-Ableitungsvektoren und Zweit-Ableitungsvektoren in jedem Punkt stetig sind. Afi, Bfi, Cfi, Dfi sind Koeffizienten der Funktion fi(t). Die Koeffizienten und die Funktion fi(t) sind Vektoren, die in einer gleichartigen Weise wie P0, P1, P2, ..., Pn Elemente entsprechend der Anzahl von Achsen aufweisen. fi(t) = Afi·t3 + Bfi·t2+Cfi·t + Dfi (4) fi(t) kann wie folgt bestimmt werden. Wenn fi(t) wie dargestellt durch Ausdruck (4) oben ausgedrückt wird, kann f1'(t) wie dargestellt durch Ausdruck (5) unten ausgedrückt werden. Daher gilt Ausdruck (6) und durch Lösen von Ausdruck (6) um Afi, Bfi, Cfi und Dfi herzuleiten, kann die Funktion fi(t) bestimmt werden. fi'(t) = 3·Afi·t2 + 2·Bfi·t + Cfi (5) fi(0) = Dfi = Pi
fi(ti+1) = Afi·ti+1 3 + Bfi·ti+1 2 + Cfi·ti+1 + Dfi = Pi+1
fi'(0) = Cfi = Pi
fi'(ti+1) = 3·Afi·ti+1 2 + 2·Bfi·ti+1 + Cfi = Pi+1' (6)
-
Eine Gruppe von auf diese Weise bestimmten kubischen Kurven wird als seine Spline-Kurve bezeichnet. Da Erst-Ableitungsvektoren und Zweit-Ableitungsvektoren in jedem Punkt einer Spline-Kurve stetig sind, wird eine gleichmäßige Bearbeitungsform und ein gleichmäßiger Betrieb mit einer stetigen Beschleunigung einer jeden Antriebsachse erhalten.
-
Jedoch erfordert dieses Verfahren, dass die Berechnungen durch Einlesen aller Befehlspunktfolgepositionen (P0, P1, P2, ..., Pn) durchgeführt werden. Wenn sich die Anzahl der die Befehlspunktfolge bildenden Punkte erhöht, wird das Ausmaß an Matrixberechnungen enorm und erfordert einen großen Speicherplatz und eine lange Berechnungszeit.
-
Während vorstehend von einer Bedingung ausgegangen wurde, dass P0' und Pn' spezifiziert sind, ist es darüber hinaus bekannt, dass ein zu Ausdruck (1) oben näherungsweise gleicher Ausdruck durch Annahme der folgenden Bedingungen hergeleitet werden kann. Wie vorstehend beschrieben, wird eine Bedingung bei P0 als Startpunktbedingung bezeichnet und eine Bedingung bei Pn als Endpunktbedingung bezeichnet.
- • Zweit-Ableitungsvektoren in P0 und Pn sind 0. Das heißt, P0'' = 0 und Pn'' = 0.
- • P0' ist spezifiziert und Pn'' = 0.
- • Es sei P0'' = 0 und Pn' ist spezifiziert.
-
Sogar wenn Bedingungen wie oben gegeben angenommen werden, kann demnach eine Funktion fi(t) (i = 0, 1, 2, ..., n – 1; 0 ≤ t ≤ ti+1) einer kubischen Kurve zwischen Pi und Pi+1 auf eine annähernd gleichartige Weise bestimmt werden.
- 1-2. Erzeugen einer Kurve einer kubischen Funktion, die sequentiell Punkte verbindet, welche eine Befehlspunktfolge bilden.
-
Ein in der offengelegten japanischen Patentanmeldung
JP H02-113 305 A (entspricht
US 5 140 236 A ) offenbartes Verfahren, ist ein Verfahren des sequentiellen Bestimmens kubischer Ausdrücke zwischen Punkten durch Herleiten eines Erst-Ableitungsvektors aus einer vorbestimmten Anzahl von Punkten einschließlich eines Startpunktes, Herleitens einer kubischen Funktion zwischen dem Startpunkt und einem nächsten Punkt basierend auf Koordinatenwerten von vorbestimmten Punkten einschließlich des Startpunkts, einer Endpunktbedingung des Startpunkts und dem Erst-Ableitungsvektor, Bestimmens einer Spline-Kurve zwischen dem Startpunkt und einem auf den Startpunkt folgenden Punkt und Hinzufügens eines neuen nächsten Punktes anstelle des Startpunkts. Gemäß diesem Verfahren wird eine kubische Spline-Kurve erzeugt, ohne dass alle eine Befehlspunktfolge bildenden Punkte eingelesen werden müssen. Obwohl dieses Verfahren vorteilhaft ist, in dem Sinne, dass eine praktisch akzeptable Spline-Kurve durch sequentielles Einlesen von Punkten, die eine Befehlspunktfolge bilden, erhalten werden kann ohne zunehmenden Fehler zur theoretischen Spline-Kurve, wie vorstehend in „<1> Kurvenerzeugung, 1-1” beschrieben, ist das Verfahren dahingehend problematisch, dass:
- (a), weil eine kubische Spline-Kurve sequentiell zwischen Punkten erzeugt wird, während Punkte eingelesen werden, die eine Befehlspunktfolge bilden, eine Kapazität einer numerischen Steuerung für das Erzeugen und Interpolieren einer kubischen Spline-Kurve unzureichend wird und die numerische Steuerung die Achsenbewegungen verlangsamt, wenn Intervalle zwischen den Punkten klein sind, und
- (b) wenn Positionen der Befehlspunktfolge aufgrund eines Fehlers hinsichtlich einer Zielkurve abweichen, die erzeugte Kurve gleichermaßen abweicht.
-
<2> Ausdünnen
-
Die offengelegte japanische Patentanmeldung
JP H10-49 215 A offenbart ein Verfahren zum Ausführen einer Geraden-Linien-Näherung einer Befehlspunktfolge und des Ausdünnens von Punkten, die angenäherten Punkten entsprechen. Dieses Verfahren ist dahingehend problematisch, dass die angenäherte Punktfolge keine gleichmäßige Form hat, da die Befehlspunktfolge mit einer geraden Linie angenähert wird.
-
<2> Korrigieren von Befehlspunktpositionen
-
Die offengelegte japanische Patentanmeldung
JP H10-240 328 A offenbart ein Verfahren des Korrigierens von Positionen von Befehlspunkten innerhalb eines Bereichs eines erlaubten Wertes, sodass sich die Befehlspunkte in einer gleichmäßigen Weise aneinander reihen. Bei diesem Verfahren kann die Bearbeitungskapazität nicht ausreichend sein und eine Verlangsamung kann auftreten, wenn eine Punktfolge vorgegeben ist, die geringe Intervalle zwischen den Befehlspunkten aufweist. Da das Verfahren des Korrigierens von Befehlspunktpositionen ein Erzeugen einer Kurve zum Annähern aus mehreren aufeinander folgenden Punkten (z. B. fünf Punkten) und ein Korrigieren von Befehlspunktpositionen in Richtung der Kurve einschließt, kann, wenn Positionen einer Befehlspunktfolge, welche ein Objekt einer angenäherten Kurvenerzeugung ist, gleichartige Fehler hinsichtlich einer Zielkurve, wie bspw. in
3 gezeigt, aufweisen, eine Korrektur, welche die Zielkurve annähert, aufgrund der Auswirkungen der Fehler nicht ausgeführt werden. In
3 deuten Pfeilspitzen, welche entsprechend erzeugten Kurven abbilden, korrigierte Positionen einer Befehlspunktfolge an.
-
Aus dem Dokument
EP 0 384 925 A1 ist ferner ein Steuerungsverfahren für eine numerischen Werkzeugmaschine oder einem Roboter bekannt, bei dem eine Raumkurve durch Splineabschnitte nachgebildet wird, die in ihrer Gesamtheit die Bewegungsbahn für eine Werkzeugmaschine oder einen Robter vorgeben. Diese Bewegungsbahn ist so an die Raumkurve angenähert, dass ein vorgebbarer Toleranzschlauch nicht überschritten wird. Dabei wird durch iterative Verfahrensschritte erreicht, dass die Bewegungsbahn durch möglichst wenige Splineabschnitte gebildet wird.
-
Das Fachbuch WECK, M.; BRECHER, C.: Werkzeugmaschinen. Bd. 4. Automatisierung von Maschinen und Anlagen. 6., neu bearb. Aufl.. Berlin [u. a.] : Springer, 2006. S. 307–312. – ISBN 3-540-22507-2, beschreibt grundsätzliche Ansätze zur Spline-Interpolation von Bahnverläufen für Werkzeugmaschinen.
-
Aus dem Dokument
DE 600 38 577 T2 ist schließlich eine Einrichtung und ein Prozess zum Steuern der Bewegung eines beweglichen Elements entlang eines programmierten Weges bekannt, wobei Ecken auf dem Weg identifiziert und danach mit einem sanften Übergang versehen (geglättet) werden, um Unstetigkeiten der Geschwindigkeit, Beschleunigung und/oder Ruck (Beschleunigungsänderungen) auf ein Minimum zu begrenzten.
-
Zusammenfassung der Erfindung
-
In Anbetracht dessen ist es eine Aufgabe der vorliegenden Erfindung, eine numerische Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion bereitzustellen, die in der Lage ist, eine einzelne kubische Kurve (Segmentkurve) zu erzeugen, welche einer maximalen Anzahl von Befehlspunkten entspricht, eine Mehrzahl derartiger kubischer Kurven (Segmentkurven) zu verbinden, um eine Kurve für das Bearbeiten zu erzeugen (Bearbeitungskurve), die Bearbeitungskurve zu interpolieren und ein Bearbeiten mit einer Werkzeugmaschine durch Bewegen einer Mehrzahl von Antriebsachsen der Werkzeugmaschine (umfassend zumindest zwei lineare Antriebsachsen) zu den interpolierten Positionen der Bearbeitungskurve auszuführen.
-
Die vorliegende Erfindung betrifft eine numerische Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion, die in der Lage ist, eine einzelne kubische Kurve (Segmentkurve) zu erzeugen, welche einer maximalen Anzahl von Befehlspunkten entspricht, eine Mehrzahl derartiger kubischer Kurven (Segmentkurven) zu verbinden, um eine Bearbeitungskurve zu erzeugen, welche eine Kurve für das Bearbeiten ist, die Bearbeitungskurve zu interpolieren und ein Bearbeiten mit einer Werkzeugmaschine durch Bewegen der Antriebsachsen zu den interpolierten Positionen der Bearbeitungskurve auszuführen, wobei entsprechende kubische Kurven (Segmentkurven) miteinander verbunden werden, so dass Zweit-Ableitungsvektoren von kubischen Funktionen, welche die entsprechenden kubischen Kurven darstellen (Segmentkurven), „stetig” sind, eine Bearbeitungskurve wird als Gruppe von auf diese Weise erzeugten kubischen Kurven (Spline-Kurven) erzeugt und das Erzeugen einer solchen Bearbeitungskurve wird ohne das Einlesen sämtlicher eine Befehlspunktfolge bildenden Punkte ausgeführt (s. 4). Der Begriff „stetig” bedeutet wie hier verwendet praktisch stetig und nicht theoretisch stetig.
-
Die numerische Steuerung mit einer Bearbeitungskurvenerzeugungseinheit gemäß der vorliegenden Erfindung führt ein Bearbeiten aus, durch Erzeugen einer Bearbeitungskurve, welches eine Kurve zum Bearbeiten ist, basierend auf einer Befehlspunktfolge, die von einem Bearbeitungsprogramm für eine Werkzeugmaschine erhalten wird, welche eine Mehrzahl von Antriebsachsen umfassend zumindest zwei lineare Achsen aufweist, Interpolieren der Bearbeitungskurve und Bewegen der Antriebsachsen zu den interpolierten Positionen auf der Bearbeitungskurve. Die numerische Steuerung umfasst weiterhin: eine Segmentkurvenerzeugungseinheit, welche die Befehlspunktfolge in eine Mehrzahl von Segmenten unterteilt und eine Segmentkurve erzeugt, welches eine Kurve entsprechend einer Segmentbefehlspunktfolge eines jeden der Segmente ist, wobei die Segmentbefehlspunktfolge die Befehlspunktfolge in einem Segment ist, sodass ein Abstand der Segmentkurve von der Segmentbefehlspunktfolge innerhalb eines vorab festgelegten erlaubten Werts liegt und eine maximale Anzahl von Befehlspunkten zwischen einem Segmentstartpunkt, welcher ein Startpunkt der Segmentbefehlspunktfolge ist, und einem Segmentendpunkt eingeschlossen ist, welches ein Endpunkt der Segmentbefehlspunktfolge ist; und eine Bearbeitungskurvenerzeugungseinheit, die durch wiederholtes Ausführen des Prozesses der Segmentkurvenerzeugungseinheit von einem Startpunkt zu einem Endpunkt der Befehlspunktfolge die Bearbeitungskurve erzeugt. Danach wird die Bearbeitungskurve interpoliert und die Antriebsachsen werden angetrieben, um sich zu den interpolierten Positionen auf der Bearbeitungskurve zu bewegen.
-
Hinsichtlich einer Segmentbefehlspunktfolge, welche die Befehlspunktfolge in einem ersten Segment ist, das am Startpunkt der Befehlspunktfolge beginnt, ist die Segmentkurvenerzeugungseinheit in der Lage: einen Segmentstartpunktvektor und einen Segmentendpunktvektor als Erst-Ableitungsvektoren der Bearbeitungskurve am Startpunkt und am Segmentendpunkt zu bestimmen, basierend auf dem Startpunkt, einer Startpunktbedingung, welches eine Bedingung für den Startpunkt ist, einem Segmentendpunkt, welches ein Endpunkt der ersten Segmentbefehlspunktfolge ist, und einer Befehlspunktfolge, die von einer vorbestimmten Anzahl von Punkten nach dem Segmentendpunkt gebildet wird; die Segmentkurve aus dem Startpunkt, dem Segmentstartpunktvektor, dem Segmentendpunkt und dem Segmentpunktvektor zu erzeugen; eine erste Segmentkurve zu erzeugen, so dass ein Abstand der ersten Segmentkurve von der Segmentbefehlspunktfolge innerhalb eines vorab festgelegten erlaubten Wertes liegt und eine maximale Anzahl von Befehlspunkten zwischen dem Startpunkt und dem Segmentendpunkt eingeschlossen ist; nach dem Erzeugen der ersten Segmentkurve und hinsichtlich einer Segmentbefehlspunktfolge in einem auf den Befehlsendpunkt der Befehlspunktfolge folgenden Segment einen Segmentendpunkt festzulegen, der dem Segment als neuer Segmentstartpunkt vorangeht, einen Segmentendpunktvektor festzulegen, der dem Segment als ein neuer Segmentstartpunktvektor vorangeht, und einen Endpunkt der Segmentbefehlspunktfolge als einen neuen Segmentendpunkt festzulegen; einen neuen Segmentendpunktvektor als einen Erst-Ableitungsvektor der Bearbeitungskurve am Segmentendpunkt zu bestimmen, basierend auf dem neuen Segmentstartpunkt, dem neuen Segmentstartpunktvektor, dem neuen Segmentendpunkt und einer Befehlspunktfolge, die aus einer vorbestimmten Anzahl von Punkten nach dem neuen Segmentendpunkt gebildet wird; die Segmentkurve aus dem neuen Segmentstartpunkt, dem neuen Segmentstartpunktvektor, den neuen Segmentendpunkt und den neuen Segmentendpunktvektor zu erzeugen; und die Segmentkurve zu erzeugen, so dass ein Abstand der Bearbeitungskurve von der Segmentbefehlspunktfolge innerhalb eines vorab festgelegten erlaubten Wertes liegt und eine maximale Anzahl von Befehlspunkten zwischen dem Segmentstartpunkt und dem Segmentendpunkt eingeschlossen ist.
-
Gemäß der Startpunktbedingung kann eine tangentiale Richtung an einem Startpunkt eines Bogens, der den Startpunkt, einen zweiten Punkt und einen dritten Punkt der Befehlspunktfolge verbindet, als ein Erst-Ableitungsvektor der Bearbeitungskurve festgelegt sein, oder eine tangentiale Richtung an einem Startpunkt einer quadratischen Kurve, die den Startpunkt, den zweiten Punkt und den dritten Punkt der Befehlspunktfolge verbindet, kann als ein Erst-Ableitungsvektor der Bearbeitungskurve festgelegt sein, oder eine tangentiale Richtung an einem Startpunkt einer geraden Linie, die den Startpunkt und dem zweiten Punkt der Befehlspunktfolge verbindet, kann als ein Erst-Ableitungsvektor der Bearbeitungskurve festgelegt sein.
-
Gemäß der Startpunktbedingung kann ein Zweit-Ableitungsvektor der Bearbeitungskurve in einem Startpunkt der Befehlspunktfolge zu null gesetzt sein.
-
Das Einschließen der maximalen Anzahl von Befehlspunkten zwischen dem Segmentstartpunkt und dem Segmentendpunkt wird durch Ermitteln, während des Erhöhens oder Reduzierens der Anzahl von Sprüngen ns, eines maximalen ns erreicht, sodass sämtliche der folgenden gelten: |Q1 – Ps(k)+1| ≤ Tol
|Q2 – Ps(k)+2| ≤ Tol
...
|Qns-1 – Ps(k)+ns-1| ≤ Tol, wobei Ps(k)+1, Ps(k)+2, ..., Ps(k)+ns-1 Positionen von Befehlspunkten zwischen dem Segmentstartpunkt Ps(k) und dem Segmentendpunkt Ps(k)+ns sind, Tol ein erlaubter Wert ist und Q1, Q2, ..., Qns-1 Punkte auf der Segmentkurve entsprechend Ps(k)+1, Ps(k)+2, ..., Ps(k)+ns-1 sind.
-
Die Befehlspunktfolge kann eine Punktfolge aus von einem Bearbeitungsprogramm vorgegebenen Befehlspunkten sein, oder eine Punktfolge, die durch Ausführen eines Glättens einer Punktfolge aus von einem Bearbeitungsprogramm vorgegebenen Befehlspunkten erzeugt wird.
-
Gemäß der vorliegenden Erfindung kann eine numerische Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion bereitgestellt werden, die in der Lage ist, eine einzelne kubische Kurve (Segmentkurve) zu erzeugen, welche einer maximalen Anzahl von Befehlspunkten entspricht, eine Mehrzahl derartiger kubischer Kurven (Segmentkurven) zu verbinden, um eine Kurve für das Bearbeiten zu erzeugen (Bearbeitungskurve), die Bearbeitungskurve zu interpolieren und ein Bearbeiten mit einer Werkzeugmaschine durch Bewegen einer Mehrzahl von Antriebsachsen der Werkzeugmaschine (umfassend zumindest zwei lineare Antriebsachsen) zu den interpolierten Positionen der Bearbeitungskurve auszuführen.
-
Kurzbeschreibung der Zeichnungen
-
Diese und weitere Aufgaben und Merkmale der vorliegenden Erfindung werden bei Berücksichtigung der folgenden Beschreibung der bevorzugten Ausführungsformen der vorliegenden Erfindung im Zusammenhang mit den Zeichnungen verdeutlicht, wobei:
-
1 ein Diagramm ist, das Beispiele einer Befehlspunktfolge und Kurvenerzeugung gemäß herkömmlichem Stand der Technik darstellt;
-
2 ein Diagramm ist, das darstellt, dass gemäß herkömmlichem Stand der Technik eine Abweichung aufgrund eines Fehlers der Befehlspunktfolgepositionen hinsichtlich einer Zielkurve in einer Abweichung einer erzeugten Kurve resultiert;
-
3 ein Diagramm ist, das darstellt, dass gemäß herkömmlichem Stand der Technik ein Fehler in den Befehlspunktfolgeposition hinsichtlich einer Zielkurve eine Korrektur verhindert, welche die Zielkurve annähert;
-
4 ein Diagramm ist, das ein Verfahren des Erzeugens einer Bearbeitungskurve gemäß der vorliegenden Erfindung darstellt;
-
5 ein Diagramm ist, das ein Verfahren des Erzeugens einer kubischen Funktion für eine Segmentkurve darstellt, welche eine kubische Kurve ist;
-
6 ein Diagramm ist, das ein Verfahren des Erzeugens einer kubischen Funktion für eine Segmentkurve darstellt, welche eine kubische Kurve ist;
-
7 ein Diagramm ist, das ein Verfahren des Erzeugens einer kubischen Funktion für eine Segmentkurve darstellt, welche eine kubische Kurve ist;
-
8 ein Diagramm ist, welches ein Befehlsbeispiel eines Bearbeitungsprogramms darstellt;
-
9 ein Ablaufdiagramm ist, das einen von einer Bearbeitungskurvenerzeugungseinheit ausgeführten Prozess darstellt;
-
10 ein Ablaufdiagramm ist, das einen von einer Segmentkurvenerzeugungseinheit ausgeführten Prozess darstellt;
-
11 ein Ablaufdiagramm ist, das einen Prozess zum Erzeugen einer Funktion gk(t) darstellt;
-
12 ein Ablaufdiagramm ist, das einen Prozess der Endendiskriminierung darstellt;
-
13 ein Diagramm ist, das einen Fall darstellt, bei dem Ps(k)+ns+1 ein Endpunkt Pn ist und eine Befehlspunktfolge jenseits des Endpunkts Pn nicht erstellt ist;
-
14 ein Diagramm ist, das einen Fall darstellt, bei dem Ps(k)+ns+2 ein Endpunkt Pn ist und eine Befehlspunktfolge jenseits des Endpunktes Pn nicht erstellt ist;
-
15 ein Diagramm ist, das einen Prozess zum Erzeugen einer Funktion gk(t) unmittelbar vor einem Endpunkt Pn darstellt;
-
16 ein Diagramm ist, das ein Verfahren des Glättens darstellt; und
-
17 ein Blockdiagramm einer numerischen Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion gemäß der vorliegenden Erfindung ist.
-
Beschreibung der bevorzugten Ausführungsform
-
Bei der vorliegenden Erfindung wird eine einzelne kubische Kurve (Segmentkurve) erzeugt, die einer Punktfolge entspricht, die die maximale Anzahl von Befehlspunkten umfasst. Eine Mehrzahl solcher kubischen Kurven wird verbunden, um eine Kurve zum Bearbeiten zu erzeugen (eine Bearbeitungskurve), die Bearbeitungskurve wird interpoliert und die Bearbeitung wird durch Bewegen der Antriebsachsen einer Werkzeugmaschine zu den interpolierten Positionen auf der Bearbeitungskurve ausgeführt. Die Mehrzahl von kubischen Kurven wird verbunden, so dass Zweit-Ableitungsvektoren von kubischen Funktionen, welche die entsprechenden kubischen Kurven darstellen, stetig zwischen den kubischen Kurven sind. In diesem Fall bedeutet „stetig” praktisch stetig und nicht theoretisch stetig. Die Bearbeitungskurve wird als eine Gruppe von auf diese Weise erzeugten kubischen Kurven erzeugt (Spline-Kurve). Das Erzeugen einer solchen Bearbeitungskurve wird sequentiell ausgeführt, ohne sämtliche eine Befehlspunktfolge bildenden Punkte einzulesen (4).
-
Demnach können die folgenden Ziele erreicht werden.
- (1) Vermeiden des Auftretens von Verlangsamungen aufgrund einer unzureichenden Kapazität einer numerischen Steuerung zum Erzeugen und Interpolieren einer Bearbeitungskurve, sogar wenn Intervalle zwischen den Befehlspunkten klein sind, durch Erzeugen einer kubischen Kurve (Segmentkurve), die der maximalen Anzahl von Befehlspunkten entspricht.
- (2) Erzeugen einer Bearbeitungskurve, die eine Zielkurve genauer annähert, sogar wenn eine Befehlspunktfolge eine Abweichung aufgrund eines Fehlers hinsichtlich der Zielkurve aufweist.
- (3) Versehen der Bearbeitungskurve mit stetigen Erst-Ableitungsvektoren und praktisch stetigen Zweit-Ableitungsvektoren an einem jedem die Befehlspunktfolge bildenden Punkt. Darüber hinaus Eingrenzen eines Fehlers der Bearbeitungskurve zu der Befehlspunktfolge innerhalb eines erlaubten Wertes. Entsprechend wird eine gleichmäßige Bearbeitungsform erhalten, deren Fehler zu der Befehlspunktfolge innerhalb eines erlaubten Wertes liegt, und ein gleichmäßiger Bearbeitungsbetrieb mit gleichmäßiger Beschleunigung einer jeden Antriebsachse.
- (4) Ermöglichen, dass eine Bearbeitungskurve ohne das Erforderlichmachen eines großen Speichers oder einer langen Berechnungszeit erzeugt werden kann, durch Erzeugen der Bearbeitungskurve ohne Einlesen sämtlicher Punkte, welche die Befehlspunktfolge bilden.
-
4 zeigt eine Folge von Befehlspunkten (abgebildet als schwarze Punkte: •), welche einen Fehler hinsichtlich einer vorgegebenen Zielkurve (abgebildet als gestrichelte Linie) aufweisen, und eine Segmentkurve (durchgezogene Pfeillinie), welches eine kubische Kurve in einem gegebenen Segment der Befehlspunktfolge ist, die mit den Techniken gemäß der vorliegenden Erfindung erzeugt wird. Eine Funktion, die eine kubische Kurve (Segmentkurve) darstellt, ist eine kubische Funktion, und eine Kurve zum Bearbeiten (Bearbeitungskurve) ist eine Kurve, welche Segmentkurven miteinander verbindet. Weiterhin zeigt 4, dass ein Fehler zwischen der Befehlspunktfolge und der Bearbeitungskurve innerhalb eines erlaubten Wertes liegt.
-
Im Folgenden wird eine erste Ausführungsform einer numerischen Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion gemäß der vorliegenden Erfindung beschrieben.
-
<Abriss>
-
Prozesse, die von einer Segmentkurvenerzeugungseinheit ausgeführt werden, welche ein kritischer Teil der vorliegenden Erfindung ist, werden nun skizziert. Genauer gesagt, in einem Fall, in dem ein gegebener Punkt Ps(k) einer Befehlspunktfolge P0, P1, P2, ..., Pn, welche P0 als Startpunkt und Pn als Endpunkt aufweist, und ein Erst-Ableitungsvektor Ps(k)' am Punkt Ps(k) schon bestimmt wurden, wird ein Verfahren des Erzeugens einer kubischen Funktion für eine Segmentkurve skizziert, welche eine kubische Kurve ist, die Ps(k) als Startpunkt aufweist. Indexausdrücke in der Befehlspunktfolge P0, P1, P2, ..., Pn stellen Nummern von Befehlspunkten dar.
-
k bezeichnet die Nummer einer zu erzeugenden Segmentkurve. k wird pro Segmentkurve um 1 erhöht, so dass k = 0 bei einer ersten Segmentkurve beginnend bei P0, k = 1 für eine nächste Segmentkurve und so weiter. s(k) bezeichnet die Nummer eines Befehlspunktes eines Segmentstartpunkts, welches ein Startpunkt einer (k + 1)-ten Segmentkurve ist. e(k) bezeichnet die Nummer eines Befehlspunktes eines Segmentendpunkts, welcher ein Endpunkt der (k + 1)-ten Segmentkurve ist. Mit anderen Worten, die (k + 1)-te Segmentkurve ist eine kubische Kurve, die einen Befehlspunkt Ps(k) als Segmentstartpunkt und einen Befehlspunkt Pe(k) als Segmentendpunkt aufweist.
- [1] Es sei ns (Anzahl von Sprüngen) die Bezeichnung für die Anzahl von zu überspringenden Befehlspunkten nach Ps(k) + 1. Es wird angenommen, dass ein Anfangswert nsi (anfängliche Anzahl von Sprüngen) vorgegeben wurde. In diesem Fall bedeutet das Überspringen eines Befehlspunktes, dass der Befehlspunkt nicht bei der Segmentkurvenerzeugung verwendet wird.
- [2] Es sei nc eine Bezeichnung für eine vorbestimmte Anzahl von Punkten, welche die Anzahl von Punkten spezifiziert, die zum kubischen-Kurvenerzeugen aus einer Punktfolge nachfolgend zu Ps(k)+ns verwendet werden. Basierend auf einer Punktfolge bestehend aus Ps(k), Ps(k)+ns, ..., Ps(k)+ns+nc und auf Ps ( k )' wird ein Erst-Ableitungsvektor Ps(k)+ns' bei Ps(k)+ns bestimmt, so dass Zweit-Ableitungsvektoren von vorangehenden und nachfolgenden kubischen Funktionen bei Ps(k)+ns praktisch stetig sind. Jedoch wird in diesem Fall der Vereinfachung halber nc = 3 festgelegt. Allgemein gilt, je größer der Wert von nc, desto besser ist die Stetigkeit von Zweit-Ableitungsvektoren von vorangehenden und nachfolgenden kubischen Funktionen am Segmentendpunkt und am Segmentstartpunkt.
-
Ps(k) bezeichnet eine Position des Segmentstartpunkts, Ps(k)+ns bezeichnet eine Position des Segmentendpunkts, Ps(k)' bezeichnet einen Segmentstartpunktvektor (einen Erst-Ableitungsvektor einer Segmentkurve am Segmentstartpunkt) und Ps(k)+ns' bezeichnet einen Segmentendpunktvektor (einen Erst-Ableitungsvektor einer Segmentkurve am Segmentendpunkt). Im Folgenden bezeichnet Px (x = 0, 1, ..., n; x = s(k), s(k) + ns, usw.) Punkte sowie Positionen von diesen.
- [3] Darstellen einer Punktfolge Ps(k), Ps(k)+ns, ..., Ps(k)+ns+3 und Ps(k)', wie in 5 gezeigt. In 5 (und gleichermaßen in 6 und 7, wie nachfolgend beschrieben) sind Ps(k), Ps(k)+ns, ..., Ps(k)+ns+3 durch große schwarze Punkte (•) dargestellt und Ps(k)+1, ..., Ps(k)+ns-1, die übersprungen werden (nicht verwendet werden bei dem Bestimmen von Ps(k)+ns'), sind durch umrandete Punkte dargestellt (o).
-
Bestimmen eines Erst-Ableitungsvektors Ps(k)+ns+3' bei Ps(k)+ns+3. Beispielsweise Erzeugen eines Bogens oder einer quadratischen Kurve (Parabel), die durch die drei Punkte Ps(k)+ns+1, Ps(k)+ns+2 und Ps(k)+ns+3 verläuft, und Verwenden einer tangentialen Richtung am Punkt Ps(k)+ns+3 auf dem Bogen oder der quadratischen Kurve als Ps(k)+ns+3' oder Verwenden einer tangentialen Richtung einer geraden Linie, die durch die beiden Punkte Ps(k)+ns+2 und Ps(k)+ns+3 verläuft, als Ps(k)+ns+3'.
-
Während in diesem Fall der Erst-Ableitungsvektor Ps(k)+ns+3' bei Ps(k)+ns+3 verwendet wird, können darüber hinaus, wie vorstehend in „<1> Kurvenerzeugung, 1-1” beschrieben, andere Bedingungen (Zweit-Ableitungsvektor Ps(k)+ns+3'' = 0) verwendet werden (in der zweiten Ausführungsform beschrieben).
- [4] Erzeugen des Ausdrucks (7) unten durch Anwenden des vorstehenden Ausdrucks (1) auf Ps(k), Ps(k)+ns, Ps(k)+ns+1, Ps(k)+ns+2, Ps(k)+ns+3, Ps(k)', Ps(k)+ns', Ps(k)+ns+1', Ps(k)+ns+2' und Ps(k)+ns+3'. Dabei kann Ps(k)+ns' mit Ausdruck (8-1) unten bestimmt werden, der dem Ausdruck (3) oben entspricht. wobei t1 bis t4 durch den Ausdruck (8-2) unten definiert sind.
-
-
Darüber hinaus muss die gesamte inverse Matrix auf der rechten Seite von Ausdruck (8-1) oben nicht bestimmt werden. Durch Bestimmen der zweiten Reihe der inversen Matrix auf der rechten Seite von Ausdruck (8-1) kann Ps(k)+ns' bestimmt werden.
- [5] In einer gleichartigen Weise wie bei den Ausdrücken (4), (5) und (6) oben, Bestimmen einer Funktion gk(t) (0 ≤ t ≤ tk) basierend auf Ps(k), Ps(k)+ns, Ps(k)' und Ps(k)+ns', die eine kubische Kurve zwischen Ps(k) und Ps(k)+ns darstellt, wie dargestellt durch Ausdruck (9) unten. Agk, Bgk, Cgk und Dgk stellen Vektoren von Antriebsachsen dar und sind Koeffizienten einer Funktion, welche die kubische Kurve darstellt. tk bezeichnet einen Abstand zwischen Ps(k) und Ps(k)+ns und entspricht t1 in Ausdruck (8-2) oben. gk(t) = Agk·t3 + Bgk·t2 + Cgk·t + Dgk (9)
-
Die vier Koeffizienten Agk, Bgk, Cgk und Dgk können aus vier Bedingungen Ps(k), Ps(k)+ns, Ps(k)' und Ps(k)+ns' in einer gleichartigen Weise hergeleitet werden, wie bezugnehmend auf Ausdrücke (5) und (6) oben beschrieben. Mit anderen Worten, wenn gk(t) wie dargestellt durch Ausdruck (9) oben ausgedrückt wird, kann gk' (t) wie dargestellt durch Ausdruck (10) unten ausgedrückt werden. Daher gilt Ausdruck (11) und durch Bestimmen von Agk, Bgk, Cgk und Dgk durch Lösen des Ausdrucks (11) kann die Funktion gk(t) bestimmt werden. gk'(t) = 3·Agk·t2 + 2·Bgk·t + Cgk (10) gk(0) = Dgk = Ps(k)
gk(tk) = Agk·tk 3 + Bgk·tk 2 + Cgk·tk + Dgk = Ps(k)+ns
gk'(0) = Cgk = Ps(k)
gk'(tk) = 3·Agk·tk 2·Bgk·tk + Cgk = Ps(k)+ns' (11)
- [6] Bestimmen von Q1, Q2, ..., Qns-1 als Punkte entsprechend zu Ps(k)+1, P(k)+2, ..., Ps(k)+ns-1 auf gk(t), wie dargestellt durch Ausdruck (12) unten. Mit anderen Worten, Bestimmen der Punkte Q1, Q2, ..., Qns-1 durch Addieren der Abstände zwischen den Punkten Ps(k)+1, Ps(k)+2, ..., Ps(k)+ns-1 als t entsprechend zu Ps(k)+1, Ps(k)+2, ..., Ps(k)+ns-1 und Einsetzen des Resultats in t von gk(t). Q1 = gk(|Ps(k)+1 – Ps(k)|)
Q2 = gk(|Ps(k)+1 – Ps(k)| + |Ps(k)+2 – Ps(k)+1|)
...
Qns-1 = gk(|Ps(k)+1 – Ps(k)| + |Ps(k)+2 – Ps(k)+1| + ... + |Ps(k)+ns-1 – Ps(k)+ns-2|) (12)
- [7] Bestimmen der Abstände zwischen den Punkten Q1, Q2, ..., Qns-1 und den entsprechenden Punkten Ps(k)+1, Ps(k)+2, ..., Ps(k)+ns-1 und Vergleichen aller Abstände mit einem vorab eingestellten erlaubten Wert Tol, wie dargestellt durch Ausdruck (13) unten, um zu überprüfen, ob die Abstände gleich oder geringer als der erlaubte Wert Tol sind. In diesem Fall werden die zu Ps(k)+1, Ps(k)+2, ..., Ps(k)+ns-1 dazugehörigen Punkte Q1, Q2, ..., Qns-1 mit Ausdruck (12) oben bestimmt, der Abstand zwischen den Punkten Q1, Q2, ..., Qns-1 und Ps(k)+1, Ps(k)+2, ..., Ps(k)+1 wird bestimmt und die Abstände werden verglichen, um zu überprüfen, ob die Abstände gleich oder geringer als der erlaubte Wert Tol sind. Jedoch können darüber hinaus Punkte entsprechend zu Zwischenpunkten (zum Beispiel mittleren Punkten) zwischen Ps(k), Ps(k)+1, Ps(k)+2, ..., Ps(k)+ns-1, Ps(k)+ns in einer gleichen Weise wie bei Ausdruck (12) oben bestimmt werden, Abstände zwischen diesen Punkten und den Zwischenpunkten (mittleren Punkten) zwischen Ps(k), Ps(k)+1, Ps(k)+2, ..., Ps(k)+ns-1, Ps(k)+ns können bestimmt werden und ein Vergleich kann vorgenommen werden, um festzustellen, ob die Abstände gleich oder geringer als der erlaubte Wert Tol sind. |Q1 – Ps(k)+1| ≤ Tol
|Q2 – Ps(k)+2| ≤ Tol
...
|Qns-1 – Ps(k)+ns-1| ≤ Tol (13)
- [8] Wenn sämtliches in Ausdruck (13) gilt (innerhalb eines erlaubten Werts), festlegen von ns = ns + 1 oder, mit anderen Worten, festlegen von Ps(k)+ns auf einen unmittelbar nachfolgenden Punkt und wiederholen von [3] bis [7] (s. 6). Wenn einer aus Ausdruck (13) nicht gilt, ist eine letzte gk(t) in einem Fall, bei dem sämtliches in Ausdruck (13) gilt, die gesuchte kubische Funktion fk(t) für eine Segmentkurve zwischen Ps(k), ..., Pe(k). Mit anderen Worten, es sei fk(t) = gk(t). In diesem Punkt gilt (normalerweise) e(k) = s(k) + ns – 1. Gleichsetzen von fk(t) = gk(t) bedeutet, dass eine Funktionsform von fk(t) bestimmt wird, wie dargestellt durch Ausdruck (14) unten. Afk, Bfk, Cfk und Dfk stellen Vektoren von Antriebsachsen dar und sind Koeffizienten einer Funktion. Ein Bereich von t (0 ≤ t ≤ tk) von fk(t) wird ebenso in diesem Punkt bestimmt (das gleiche gilt für die nachfolgende Beschreibung).
-
Es sei zusätzlich angemerkt, dass diese fk(t) nicht die gleiche ist wie fi(t), wie in „<1> Kurvenerzeugung, 1-1” beschrieben. Afk = Agk, Bfk = Bgk, Cfk = Cgk, Dfk = Dgk
fk(t) = Afk·t3 + Bfk·t2 + Cfk·t + Dfk (14)
- [9] Wenn einer aus Ausdruck (13) nicht gilt (außerhalb des erlaubten Wertes), festlegen von ns = ns – 1 oder, mit anderen Worten, festlegen von Ps(k)+ns zu einem unmittelbar vorangehenden Punkt und wiederholen von [3] bis [7] (siehe 7). Sobald sämtliches in Ausdruck (13) gilt, ist gk(t) in diesem Punkt die gesuchte kubische Funktion fk(t) für eine Segmentkurve zwischen Ps(k), ..., Pe(k). Mit anderen Worten, es sei fk(t) = gk(t). In diesem Punkt gilt e(k) = s(k) + ns. Falls jedoch ns = 1 wenn ns = ns – 1, ist gk(t) hergeleitet basierend auf Ps(k), Ps(k)+1, Ps(k)', Ps(k)+1' mit den Ausdrücken (9), (10) und (11) die gesuchte kubische Funktion fk(t) für eine Segmentkurve zwischen Ps(k) und Ps(k)+1 (mit anderen Worten zwischen Ps(k) und Pe(k)), da ein vorangehendes ns nicht existiert. An diesem Punkt gilt e(k) = s(k) + 1.
-
In diesem Fall wird, wie in [8] oder [9] beschrieben, durch Bestimmen der kubischen Funktion fk(t) durch Ermitteln eines maximalen ns, der ermöglicht, dass sämtliches in Ausdruck (13) gilt, während die Anfangszahl von Sprüngen nsi auf den ersten ns festgelegt wird und ns zu ns = ns + 1 oder ns = ns – 1 (oder Erhöhen oder Verringern von ns) variiert wird, eine Segmentkurve erzeugt, so dass der Abstand zwischen der Segmentkurve von einer Segmentbefehlspunktfolge innerhalb eines vorab eingestellten erlaubten Werts liegt und die maximale Anzahl von Befehlspunkten zwischen einem Segmentstartpunkt, der einen Startpunkt der Segmentbefehlspunktfolge ist, und einem Segmentendpunkt eingeschlossen ist, der ein Endpunkt der Segmentbefehlspunktfolge ist.
-
Während in diesem Fall ein geeigneter ns durch Festlegen von nsi auf den ersten ns und Variieren von ns zu ns = ns + 1 oder ns = ns – 1 bestimmt wird, kann eine Segmentkurve darüber hinaus auch durch Ermitteln eines geeigneten ns während einem signifikanten Variieren von ns mit einem Bisektionsverfahren anstelle von ns = ns + 1 oder ns = ns – 1 bestimmt werden. Zum Beispiel kann ns = 2·ns anstelle von ns = ns + 1 verwendet werden und ns = INT (ns/2) kann anstelle von ns = ns – 1 verwendet werden, wobei INT eine ganzzahlige Zahl bezeichnet. Alternativ kann ein geeigneter ns durch sequentielles Variieren von ns von 1 bestimmt werden, während nsi = 1 und ns = ns + 1 festgelegt wird. Es gibt verschiedene andere Verfahren zum Bestimmen eines geeigneten ns. Da solche Verfahren herkömmlicher Stand der Technik sind, wird an dieser Stelle keine detaillierte Beschreibung gegeben.
-
Während angenommen wird, dass eine Segmentkurve eine durch ein kubisches Polynom ausgedrückte kubische Kurve ist, wie dargestellt durch Ausdruck (9) und (14) oben, können die Techniken gemäß der vorliegenden Erfindung darüber hinaus auch auf eine quadratische Kurve niedrigerer Ordnung angewendet werden oder auf Kurven der vierten oder höheren Ordnung. Zusätzlich kann die vorliegende Erfindung auch auf andere Kurven wie beispielsweise NURBS-Kurven oder eine Bezier-Kurve angewendet werden.
-
<Bearbeitungsprogramm>
-
8 zeigt ein Befehlsbeispiel eines Bearbeitungsprogramms. „G05.1 Q1” ist ein Bearbeitungsstartbefehl und Positionen auf den Achsen X, Y und Z zum Zeitpunkt des Bearbeitungsstartbefehls sind durch einen Startpunkt P0 dargestellt. Wenn weitere Achsen (U, V, W, A, B, C und dergleichen) ebenfalls Antriebsachsen sind, ist P0 eine Position, die auch Positionen auf solchen Achsen umfasst. Wenn X- und Y-Achsen die einzigen Antriebsachsen sind, stellt P0 Positionen auf der X- und Y-Achse zu diesem Zeitpunkt dar. In diesem Fall werden die X-, Y- und Z-Achsen als Antriebsachsen angenommen. Daher sind nachfolgende Punktfolgen und Kurven in einem (X, Y, Z) Koordinatensystem darzustellen. Positionen einer Punktfolge P1, P2, ... werden in N002 und nachfolgenden Blöcken des Bearbeitungsprogramms vorgegeben. „G05.1 Q0” ist ein Bearbeitungsendbefehl und Positionen auf den X-, Y- und Z-Achsen zum Zeitpunkt des Bearbeitungsendbefehls sind durch einen Endpunkt Pn dargestellt. F bezeichnet eine Befehlsgeschwindigkeit. In diesem Fall wird angenommen, dass eine Punktfolge P0, P1, P2, ..., Pn, die selbst aus vom Bearbeitungsprogramm vorgegebenen Befehlspunkten besteht, eine bei der Bearbeitung verwendete Befehlspunktfolge ist.
-
Details der Prozesse, die auf die Punktfolge P0, P1, P2, ..., Pn angewandt werden, werden bezugnehmend auf die in 9 bis 12 gezeigten Ablaufdiagramme beschrieben. nc = 3 wird in gleicher Weise festgelegt, wie in <Abriss> [2] vorstehend beschrieben. Es wird ebenso angenommen, dass eine ausreichend große Anzahl von Punkten (fünf Punkte oder mehr) als die Befehlspunktfolge vorgegeben wurde.
-
<Bearbeitungskurvenerzeugung>
-
Ein von der Maschinenkurvenerzeugungseinheit ausgeführter Prozess wird im Detail unter Bezugnahme auf das in 9 gezeigte Ablaufdiagramm beschrieben.
-
[Schritt SA01] Erzeugen einer Startpunktbedingung und Ausführen eines Anfangswert-Festlegen, um eine erste Segmentkurve zu erzeugen. In diesem Fall wird ein Erst-Ableitungsvektor P0' einer eine erste Segmentkurve darstellenden kubischen Funktion als die Startpunktbedingung verwendet. Um P0' zu erzeugen, kann zum Beispiel eine tangentiale Richtung im Punkt P0 als P0' verwendet werden, wenn P0, P1 und P2 durch einen Bogen verbunden sind, eine tangentiale Richtung im Punkt P0 kann als P0' verwendet werden, wenn P0, P1 und P2 durch eine quadratische Kurve (Parabel) verbunden sind, und eine tangentiale Richtung im Punkt P0 kann als P0' verwendet werden, wenn P0 und P1 durch eine gerade Linie verbunden sind. In diesem Fall stellt P0 einen Startpunkt dar, P1 einen zweiten Punkt und P2 einen dritten Punkt. Es sei k = 0, s(0) = 0 und nsi = 1. k = 0 bedeutet, dass eine erste Segmentkurve zu erzeugen ist, s(0) = 0 bedeutet, dass ein Segmentstartpunkt, welches ein Startpunkt der ersten Segmentkurve ist, als P0 festgelegt ist und nsi = 1 bedeutet, dass die Anfangszahl von Sprüngen auf 1 festgelegt ist.
-
Wie bereits in „<1> Kurvenerzeugung, 1-1” beschrieben, kann darüber hinaus auch P0'' = 0 als die Startpunktbedingung verwendet werden (wird im zweiten Ausführungsbeispiel beschrieben).
-
[Schritt SA02] Aufrufen und Aktivieren der Endendiskriminierung (nachfolgend beschrieben) und Erhalten eines FE (End-Flag).
-
[Schritt SA03] Prüfen des FE, um festzustellen, ob der Wert davon 1 ist oder nicht. Da FE = 0 beim Erzeugen einer ersten Segmentkurve festgelegt ist, setzt der Prozess mit der Segmentkurvenerzeugung des Schrittes SA04 fort. Wenn der Prozess nach der Segmentkurvenerzeugung nachfolgend zur ersten Segmentkurve zu beenden ist, wird jedoch FE = 1 festgelegt und der Prozess der Bearbeitungskurvenerzeugungseinheit wird beendet.
-
[Schritt SA04] Erzeugen einer Segmentkurve (anfänglich der ersten Segmentkurve) gemäß der Segmentkurvenerzeugung (wie nachfolgend beschrieben).
-
[Schritt SA05] Setzen der erzeugten Segmentkurve auf Interpolationsdaten. Mit anderen Worten, Setzen der Daten (Afk, Bfk, Cfk, Dfk, Ps(k), Pe(k) und tk) zum Interpolieren einer erzeugten Funktion fk(t) auf interpolierte Daten (nachfolgend beschrieben).
-
[Schritt SA06] Es sei itemp = e(k), dtemp = Pe(k)' und setzen von k = k + 1, s(k) = itemp und Ps(k)' = dtemp. Entsprechendes Erhöhen von k um eins, Festlegen der Zahl e(k) eines Befehlspunktes des Segmentendpunktes, welcher der Endpunkt der erzeugten Segmentkurve (anfänglich der ersten Segmentkurve) ist, als die Zahl s(k) eines Befehlspunktes eines Segmentstartpunktes einer nächsten Segmentkurve oder, mit anderen Worten, Festlegen von Ps(k) als einen neuen Segmentstartpunkt und Verwenden eines Erst-Ableitungsvektors am Segmentendpunkt als einen Erst-Ableitungsvektor am Segmentstartpunkt der nächsten Segmentkurve oder, mit anderen Worten, einen neuen Segmentstartpunktvektor. Der Prozess kehrt dann zur Endendiskriminierung von Schritt SA02 zurück.
-
<Segmentkurvenerzeugung>
-
Ein von der Segmentkurvenerzeugungseinheit ausgeführter Prozess wird im Detail unter Bezugnahme auf das Ablaufdiagramm gezeigt in 10 (wie auch 5 bis 7) beschrieben.
-
[Schritt SB01] Es sei ns = nsi. Mit anderen Worten, Festlegen der Anzahl von Sprüngen ns auf die Anfangszahl von Sprüngen nsi. Beim Erzeugen einer ersten Segmentkurve ist nsi = 1 gegeben. Für eine Segmentkurvenerzeugung nachdem die erste Segmentkurve erzeugt wurde, wurde nsi während einer vorherigen Segmentkurvenerzeugung bestimmt. Erstellen von Ps(k), Ps(k)', Ps(k)+ns, ..., Ps(k)+ns+3. Hinsichtlich der Zahl s(k) eines Befehlspunktes, der ein Segmentstartpunkt ist, wird s(k) = 0 für die Erzeugung der ersten Segmentkurve festgelegt und für die Segmentkurvenerzeugung, nachdem die erste Segmentkurve erzeugt wurde, wird ein aktueller s(k) während einer vorherigen Segmentkurvenerzeugung bestimmt. Daher kann eine Befehlspunktfolge Ps(k), Ps(k)+ns, ..., Ps(k)+ns+3 erstellt werden. Jedoch werden keine Befehlspunkte jenseits eines Endpunktes Pn erstellt. Hinsichtlich Ps(k)' wurde Ps(k)' bereits beim Erzeugen der ersten Segmentkurve bestimmt (siehe [Schritt SA01] in <Bearbeitungskurvenerzeugung>) und für eine Segmentkurvenerzeugung, nachdem die erste Segmentkurve erzeugt wurde, wird ein Segmentendpunktvektor bei einer vorangehenden Segmentkurvenerzeugung als aktueller Segmentstartpunktvektor Ps(k)' verwendet (siehe [5] in <Bearbeitungskurvenerzeugung>).
-
[Schritt SB02] Aufrufen und Aktivieren der Erzeugung (wie nachfolgend beschrieben) einer Funktion gk(t). Darüber hinaus Erzeugen eines Flag (FT), das anzeigt, ob die erzeugte Funktion gk(t) innerhalb eines vorab festgelegten erlaubten Wertes für Ps(k)+1, ..., Ps(k)+ns-1 liegt oder nicht.
-
[Schritt SB03] Prüfen des Flag FT, um zu bestimmen, ob die erzeugte Funktion gk(t) innerhalb des erlaubten Wertes liegt oder nicht. Wenn das Flag FT innerhalb des erlaubten Wertes liegt (JA), setzt der Prozess mit Schritt SB04 fort, und wenn nicht (NEIN), setzt der Prozess mit Schritt SB08 fort.
-
[Schritt SB04] Vorläufiges Akzeptieren der erzeugten Funktion gk(t) als eine Funktion fk(t) einer aktuelle Segmentkurve durch Gleichsetzen von fk(t) = gk(t). Wie vorstehend beschrieben, bedeutet das Gleichsetzen von fk(t) und gk(t), dass eine Funktionsform von fk(t) bestimmt wird, wie durch Ausdruck (14) unten dargestellt. Aus e(k) = s(k) + ns, vorläufiges Festlegen der Zahl e(k) eines Befehlspunktes eines Segmentendpunktes und Pe(k) = Ps(k)+ns, Pe(k)' = Ps(k)+ns'. Es sei nsi = ns und vorläufiges Festlegen der Anfangszahl von Sprüngen für eine nächste Segmentkurvenerzeugung. Pe(k) stellt einen vorläufigen Segmentendpunkt dar und Pe(k)' stellt einen vorläufigen Segmentendpunktvektor dar.
-
[Schritt SB05] Es sei ns = ns + 1 und Erstellen von Ps(k), Ps(k)', Ps(k)+ns, ..., Ps(k)+ns+3. Jedoch werden Befehlspunkte nicht jenseits eines Endpunkts Pn erstellt.
-
[Schritt SB06] Aufrufen und Aktivieren der Erzeugung (wie nachfolgend beschrieben) einer Funktion gk(t).
-
[Schritt SB07] Prüfen des Flags FT um zu Bestimmen, ob die erzeugte Funktion gk(t) innerhalb eines erlaubten Wertes liegt oder nicht. Wenn die erzeugte Funktion gk(t) innerhalb des erlaubten Wertes liegt (JA), setzt der Prozess mit Schritt SB04 fort, und wenn nicht (NEIN), wird der Prozess von der Segmentkurvenerzeugungseinheit mit dem Resultat beendet, welches zuletzt durch die Verarbeitung im Schritt SB04 erhalten wurde. Mit anderen Worten, die Funktion fk(t), die zuletzt im Schritt SB04 erhalten wurde, ist eine Funktion der aktuellen Segmentkurve, e(k) ist die Zahl eines Befehlspunktes des Segmentendpunktes, Pe(k) ist ein neuer Segmentendpunkt, Pe(k)' ist ein neuer Segmentendpunktvektor und nsi ist die Anfangszahl von Sprüngen für eine nächste Segmentkurvenerzeugung.
-
[Schritt SB08] Es sei ns = ns – 1 und Erstellen von Ps(k), Ps(k)', Ps(k)+ns, ..., Ps(k)+ns+3. Jedoch werden Befehlspunkte nicht jenseits eines Endpunktes Pn erstellt.
-
[Schritt SB09] Aufrufen und Aktivieren der Erzeugung (wie nachfolgend beschrieben) einer Funktion g(k)(t).
-
[Schritt SB010] Überprüfen des Flag FT, um zu bestimmen, ob die erzeugte Funktion g( k )(t) innerhalb des erlaubten Wertes liegt oder nicht. Wenn das Flag FT innerhalb des erlaubten Wertes liegt (JA), setzt der Prozess mit Schritt SB11 fort, da die Funktion g( k )(t) erhalten wurde, und wenn nicht, kehrt der Prozess zu Schritt SB08 zurück.
-
[Schritt SB011] Verwenden der erzeugten Funktion gk(t) als eine Funktion fk(t) einer aktuellen Segmentkurve durch Gleichsetzen von fk(t) = gk(t). Aus e(k) = s(k) + ns wird die Zahl e(k) eines Befehlspunktes eines Segmentendpunktes festgelegt und Pek = Ps(k)+ns, Pe(k)' = Ps(k)+ns'. Es sei nsi = ns, Festlegen der Anfangszahl von Sprüngen für eine nächste Segmentkurvenerzeugung und Beenden des Prozesses der Segmentkurvenerzeugungseinheit. Pe(k) stellt einen neuen Segmentendpunkt dar und Pe(k)' stellt einen neuen Segmentendpunktvektor dar.
-
<Erzeugen der Funktion gk(t)>
-
Ein Prozess zum Erzeugen einer Funktion gk(t), der vom von der Segmentkurvenerzeugungseinheit durchgeführten Prozess aufgerufen und aktiviert wird, wird nun im Folgenden im Detail unter Bezugnahme auf ein in 11 gezeigtes Ablaufdiagramm beschrieben.
-
[Schritt SC01] Falls s(k) + ns ≥ n gilt (JA) oder, mit anderen Worten, falls das Überspringen von Befehlspunkten gemäß der Anzahl von Sprüngen im Überschreiten eines Endpunktes resultiert, setzt der Prozess mit Schritt SC10 fort, da die Funktion gk(t) nicht mit einem im Schritt SC02 und darauffolgend beschriebenen Verfahren erzeugt werden kann. Eine letzte Funktion gk(t) wird während der Endendiskriminierung (wie nachfolgend beschrieben) erzeugt.
-
[Schritt SC02] Berechnen von Ps(k)+ns' aus den erstellten Ps(k), Ps(k)', Ps(k)+ns, ..., Ps(k)+ns+3 mit den Ausdrücken (8-1) und (8-2), wie in <Abriss [3], [4]> beschrieben. Obwohl im in 11 gezeigten Ablaufgramm nicht beschrieben, da der Fall speziell ist, wenn Ps(k)+ns, ..., Ps(k)+ns+3 nicht jenseits des Endpunkts Pn erstellt werden oder, mit anderen Worten, wenn sämtliche der Befehlspunkte von Ps(k)+ns, ..., Ps(k)+ns+3 nicht erstellt wurden, da (k) + ns + 3 > n, Durchführen der Berechnungen wie durch Ausdrücke (15-1) und (15-2) dargestellt oder mit Ausdrücken (16-1) und (16-2) unten anstelle von Ausdrücken (8-1) und (8-2). In diesem Fall wird Pn' mit einem gleichartigen Verfahren erhalten, wie in <Abriss> [3] beschrieben.
-
Da nc = 3, sind Fälle, bei denen P
s(k)+ns, ..., P
s(k)+ns+3 nicht jenseits des Endpunktes erstellt sind, die beiden jeweils durch Ausdrücke (15-1) und (15-2) unten und durch Ausdrücke (16-1) und (16-2) unten dargestellten Fälle. Sogar wenn nc > 3 kann jedoch eine Berechnung von einem Fall, bei dem P
s(k)+ns, ..., P
s(k)+ns+nc nicht jenseits des Endpunktes erstellt sind, in einer gleichartigen Weise durchgeführt werden. <Wenn s(k) + ns + 1 = n (wenn P
s(k)+ns+1 ein Endpunkt P
n ist und eine Befehlspunktfolge jenseits des Endpunktes P
n nicht erstellt ist)> (
13)
wobei t
1 und t
2 durch Ausdruck (15-2) unten definiert sind.
-
-
<Wenn s(k) + ns + 2 = n (wenn P
s(k)+ns+2 ein Endpunkt P
n ist und eine Befehlspunktfolge jenseits des Endpunkts P
n nicht erstellt ist)> (
14)
wobei t
1, t
2 und t
3 durch Ausdruck (16-2) unten definiert sind.
-
-
[Schritt SC03] Basierend auf Ps(k), Ps(k)+ns und Ps(k)' sowie Ps(k)+ns', wie in Schritt SC02 bestimmt, Bestimmen der Koeffizienten Agk, Bgk, Cgk und Dgk der durch Ausdruck (9) dargestellten kubischen Funktion gk(t) zwischen Ps(k) und Ps(k)+ns mit Ausdruck (11) und Erzeugen von gk(t).
-
[Schritt SC04] Festlegen eines Anfangswerts eines Index j, zum Prüfen (siehe Ausdruck (13)), ob die Funktion gk(t) innerhalb eines erlaubten Wertes Tol bis 1 liegt oder nicht.
-
[Schritt SC05] Vergleichen von j mit ns. Wenn j ≥ ns, setzt der Prozess mit Schritt SC09 fort, und wenn j < ns, setzt der Prozess mit Schritt SC06 fort. Wenn ns = 1 gilt, gilt des Weiteren ausnahmslos j ≥ ns.
-
[Schritt SC06] Erzeugen von Qj mit Ausdruck (12).
-
[Schritt SC07] Vergleichen von |Qj – Ps(k)+j| mit dem erlaubten Wert Tol. Wenn |Qj – Ps(k)+j| ≤ Tol (JA), setzt Prozess mit Schritt SC08 fort, und wenn |Qj – Ps(k)+j > Tol (NEIN), setzt Prozess mit Schritt SC10 fort.
-
[Schritt SC08] Es sei j = j + 1 und der Prozess kehrt zu Schritt SC05 zurück.
-
[Schritt SC09] Setzen des innerhalb-des-erlaubten-Wertes-Flags FT auf 1, um anzuzeigen, dass die Funktion gk(t) innerhalb des erlaubten Werts liegt, und Beenden des Prozesses zum Erzeugen der Funktion gk(t).
-
[Schritt SC010] Setzen des innerhalb-des-erlaubten-Wertes-Flags FT auf 0, um anzuzeigen, dass die Funktion gk(t) außerhalb des erlaubten Wertes liegt, und Beenden des Prozesses zum Erzeugen der Funktion gk(t).
-
<Endendiskriminierung>
-
Ein Prozess zur Endendiskriminierung, der vom von der Bearbeitungskurvenerzeugungseinheit ausgeführten Prozess aufgerufen und aktiviert wird, wird nun im Folgenden im Detail unter Bezugnahme auf ein in 12 gezeigtes Ablaufdiagramm beschrieben.
-
[Schritt SD01] Vergleichen von s(k) mit n – 1. Wenn s(k) ≥ n – 1 (JA) oder, mit anderen Worten, wenn s(k) unmittelbar dem Endpunkt vorausgeht, setzt der Prozess mit Schritt SD02 fort. Andernfalls, wenn s(k) < n – 1 (NEIN) oder, mit anderen Worten, wenn s(k) dem Endpunkt nicht unmittelbar vorausgeht, setzt der Prozess mit Schritt SD05 fort.
-
[Schritt SD02] Basierend auf Ps(k), Pn, Ps(k)' und Pn', Ermitteln der Koeffizienten Agk, Bgk, Cgk und Dgk der kubischen Funktion gk(t) in Ausdruck (9) zwischen Pn-1 und Pn, um gk(t) zu erzeugen. In diesem Fall wird Pn' durch ein gleichartiges Verfahren bestimmt, wie in <Abriss> [3] beschrieben (siehe 15).
-
[Schritt SD03] Es sei fk(t) = gk(t).
-
[Schritt SD04] Setzen von FE (End-Flag) = 1, um eine letzte Segmentkurve anzuzeigen. Anschließend Beenden des Prozesses.
-
[Schritt SD05] Vergleichen von s(k) + nsi mit n – 1. Wenn s(k) + nsi ≤ n – 1 (NEIN) oder, mit anderen Worten, wenn eine Summe der Nummer eines Befehlspunktes des Segmentstartpunktes und die Anfangszahl von Sprüngen geringer ist als eine Befehlspunktnummer des Endpunkts (Normalfall), setzt der Prozess mit Schritt SD07 fort. Andererseits, wenn s(k) + nsi > n – 1 (JA) oder, mit anderen Worten, wenn eine Summe der Nummer des Befehlspunkts des Segmentstartpunktes und die Anfangsnummer von Sprüngen gleich einer der Befehlspunktnummer des Endpunktes nachfolgenden Nummer ist, setzt der Prozess mit Schritt SD06 fort.
-
[Schritt SD06] Es sei nsi = (n – 1) – s(k), so dass die Nummer des Befehlspunktes des Segmentstartpunktes und die Anfangsnummer von Sprüngen sich zu n – 1 addieren.
-
[Schritt SD07] Setzen von FE (End-Flag) = 0. Danach Beenden des Prozesses der Endendiskriminierung.
-
Aufgrund dieser Prozesse kann mit der Segmentkurvenerzeugungseinheit, die eine Segmentkurve erzeugt, welches eine Kurve entsprechend einer Segmentbefehlspunktfolge eines jeden Segments einer Befehlspunktfolge ist, eine Segmentkurve erzeugt werden, so dass der Abstand von der Segmentkurve zu der Segmentbefehlspunktfolge innerhalb eines vorab eingestellten erlaubten Wertes liegt und die maximale Anzahl von Befehlspunkten zwischen einem Segmentstartpunkt, der ein Segmentstartpunkt der Segmentbefehlspunktfolge ist, und einem Segmentendpunkt eingeschlossen ist, der ein Endpunkt der Segmentbefehlspunktfolge ist, und mit der Bearbeitungskurvenerzeugungseinheit kann der Prozess der Segmentkurvenerzeugungseinheit wiederholt von einem Startpunkt zu einem Endpunkt der Befehlspunktfolge ausgeführt werden, um eine Bearbeitungskurve zu erzeugen.
-
Während eine Bearbeitungskurve und eine Segmentkurve mit X-, Y-, und Z-Achsen als Antriebsachsen einer Werkzeugmaschine erzeugt wurden, können eine Bearbeitungskurve und eine Segmentkurve ebenso hinsichtlich Antriebsachsen einschließlich einer Rotationsachse in einer Multiachsenmaschine erzeugt werden, die in der Lage ist, Werkzeugrichtungen mit der Rotationsachse zu kontrollieren.
-
Des Weiteren können eine Bearbeitungskurve und eine Segmentkurve ebenso in Werkzeugrichtungen erzeugt werden, die von Vektoren wie beispielsweise (I, J, K) vorgegeben sind, durch Handhaben derartiger Werkzeugrichtungen in einer gleichartigen Weise wie Antriebsachsen. Mit anderen Worten, in einer gleichartigen Weise zum Darstellen einer Punktfolge oder einer Kurve im (X, Y, Z) Koordinatensystem können gleichartige Prozesse zu denen der vorliegenden Ausführungsform durch Darstellen einer Werkzeugrichtung in einem (I, J, K) Koordinatensystem ausgeführt werden, Interpolieren einer auf dem (I, J, K) Koordinatensystem erzeugten Bearbeitungskurve und Verwenden einer interpolierten Position als eine Werkzeugrichtung im (I, J, K) Koordinatensystem, Transformieren der interpolierten Werkzeugrichtung zu einer Position einer Rotationsachse, welche die Werkzeugrichtung steuert, und Bewegen der Rotationsachse.
-
Als nächstes wird eine zweite Ausführungsform einer numerischen Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion gemäß der vorliegenden Erfindung beschrieben.
-
Als die zweite Ausführungsform wird ein Beispiel beschrieben, in dem Zweit-Ableitungsvektoren P0'' = 0 an einem Startpunkt in einer gleichartigen Weise zu der in „<1> Kurvenerzeugung, 1-1” beschriebenen als Startpunktbedingung verwendet werden, wie in <Bearbeitungskurvenerzeugung> in der ersten Ausführungsform beschrieben. Des Weiteren wird in der zweiten Ausführungsform eine andere Bedingung (Zweit-Ableitungsvektor Ps(k)+ns+3'' = 0) wie die in „<1> Kurvenerzeugung, 1-1” beschriebene als eine Bedingung bei Ps(k)+ns+3 verwendet, anstelle des Erst-Ableitungsvektors Ps(k)+ns+3'', wie in <Abriss> [3] der ersten Ausführungsform beschrieben. Während ein Erst-Ableitungsvektor Ps(k)+ns+3', wie der in der ersten Ausführungsform beschriebene, ebenfalls verwendet werden kann, wird in der zweiten Ausführungsform ein Zweit-Ableitungsvektor Ps(k)+ns+3'' = 0 als eine Bedingung bei Ps(k)+ns+3 verwendet, um zu zeigen, dass diverse Startpunktbedingungen und Endpunktbedingungen kombiniert werden können, wie „<1> Kurvenerzeugung, 1-1” in beschrieben.
-
In diesem Fall werden die Ausdrücke (7), (8-1) und (8-2) in der ersten Ausführungsform bei der Erzeugung einer ersten Segmentkurve zu den Ausdrücken (17), (18-1) und (18-2) unten. Ausdruck (17) unterscheidet sich von Ausdruck (7) oben in der ersten und letzten Reihe einer linksseitigen Matrize und in den ersten und letzten Elementen eines rechtsseitigen Vektors. Ausdruck (18-1) unterscheidet sich von Ausdruck (8-1) oben in einer gleichartigen Weise. k = 0 und s(0) = 0. P
s(0)' und P
s(0)+ns' können mit den Ausdrücken (18-1) und (18-2) bestimmt werden und eine Funktion g
0(t) kann aus P
s(0)', P
s(0)+ns', P
s(0) und P
s(0)+ns mit den Ausdrücken (9), (10) und (11) hergeleitet werden. Dies ist eine Funktion, welche eine erste Segmentkurve darstellt.
wobei t
1 bis t
4 durch Ausdruck (18-2) unten definiert sind.
-
-
Die Ausdrücke (7), (8-1) und (8-2) in der ersten Ausführungsform bei der Segmentkurvenerzeugung nach dem Erzeugen der ersten Segmentkurve werden zu den Ausdrücken (19), (20-1) und (20-2) unten. Ausdruck (19) unterscheidet sich von Ausdruck (7) in einer letzten Reihe der linksseitigen Matrize und einem letzten Element des rechtsseitigen Vektors. Ausdruck (20-1) unterscheidet sich von Ausdruck (8-1) in einer gleichen Weise. P
s(k)+ns' kann mit den Ausdrücken (20-1) und (20-2) bestimmt werden und eine Funktion g
k(t) kann aus P
s(k)', P
s(k) und P
s(k)+ns hergeleitet werden, die bereits bei dem vorigen Segmentkurvenerzeugen mit Ausdrücken (9), (10) und (11) bestimmt wurden. Dies ist eine Funktion, welche eine Segmentkurve nach dem Erzeugen der ersten Segmentkurve darstellt.
wobei t
1 bis t
4 durch Ausdruck (20-2) unten definiert sind.
-
-
Da andere Prozesse gleichartig zu denen in der ersten Ausführungsform sind, wird eine Beschreibung davon ausgelassen.
-
Als nächstes wird eine dritte Ausführungsform einer numerischen Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion gemäß der vorliegenden Erfindung beschrieben.
-
Während eine Punktfolge aus Befehlspunkten, die von einem Bearbeitungsprogramm vorgegeben sind, als Befehlspunktfolge in der ersten und zweiten Ausführungsform verwendet wurden, wird eine Punktfolge, die durch Ausführen eines Glättens einer Punktfolge aus Befehlspunkten, welche von einem Bearbeitungsprogramm vorgegeben sind, als die Befehlspunktfolge in der vorliegenden dritten Ausführungsform verwendet. Techniken zum Glätten sind herkömmlicher Stand der Technik und die vorliegende Ausführungsform kombiniert derartige Glättungstechniken mit der vorliegenden Erfindung.
-
Ein einfaches Glättungsverfahren ist beispielsweise wie folgt. Hinsichtlich einer ursprünglichen Punktfolge P1, ..., Pn-1, die aus einer von einem Bearbeitungsprogramm vorgegebenen Befehlspunktfolge durch Ausschließen eines Startpunkts P0 und eines Endpunkts Pn davon extrahiert sind, wird ein Glätten, welches den Durchschnitt von Pi und zwei vorangehenden und nachfolgenden Punkten davon (Pi-1 und Pi+1) bildet, durchgeführt, wie durch Ausdruck (21) unten dargestellt, um eine neue Befehlspunktfolge P0, P1, ..., Pn-1, Pn zu erzeugen.
-
-
Alternativ wird ein anderes einfaches Glättungsverfahren nachfolgend beschrieben. Hinsichtlich einer ursprünglichen Punktfolge P0, P1, ..., Pm-1, Pm, die durch ein Bearbeitungsprogramm vorgegeben ist, wird ein Glätten von dieser durchgeführt, das einen mittleren Punkt mit der Ausnahme eines Startpunktes P0 und eines Endpunktes Pm erzeugt, wie durch Ausdruck (22) unten dargestellt, um eine neue Befehlspunktfolge P0, P1, ..., Pn-1, Pn zu erzeugen. Da sich in diesem Fall die Anzahl von Punkten verglichen mit der ursprünglichen Punktfolge P0, P1, ..., Pm-1, Pm um eins erhöht, wird n = m + 1 festgelegt. In der in einer unteren Hälfte von 16 gezeigten „neuen Befehlspunktfolge” wird die ursprüngliche Befehlspunktfolge P1, ..., Pm-1 durch umrandete Punkte (o) dargestellt und die neue Befehlspunktefolge P0, P1, ..., Pn-1, Pn wird durch schwarze Punkte (•) dargestellt.
-
-
Neben diesen einfachen Glättungsverfahren kann die vorliegende Erfindung mit diversen, als herkömmlicher Stand der Technik bekannten Glättungsverfahren kombiniert werden.
-
<Blockdiagramm>
-
Als nächstes wird eine erste Ausführungsform der numerischen Steuerung gemäß der vorliegenden Erfindung unter Bezugnahme auf 17 beschrieben.
-
Die numerische Steuerung führt ein Bearbeiten aus, durch Erzeugen einer Bearbeitungskurve, welches eine Kurve für das Bearbeiten ist, basierend auf einer Befehlspunktfolge, die von einem Bearbeitungsprogramm für eine Werkzeugmaschine erhalten wird, welche eine Mehrzahl von Antriebsachsen umfassend zumindest zwei lineare Achsen aufweist, Interpolieren der Bearbeitungskurve und Bewegen der Antriebsachsen zu den interpolierten Positionen auf der Bearbeitungskurve. In der numerischen Steuerung liest und analysiert eine Befehlslese-/Analyseeinheit 2 Befehle von einem Bearbeitungsprogramm, um Interpolationsdaten zu erzeugen, eine Interpolationseinheit 8 führt ein Interpolieren basierend auf den Interpolationsdaten und gemäß einer Befehlsgeschwindigkeit durch, um Positionen zu bestimmen, zu denen die entsprechenden Achsen zu bewegen sind, und Servos der jeweiligen Achsen werden zu diesen Positionen bewegt.
-
In der vorliegenden Erfindung liest die Lese-/Analyse-Einheit 2 Befehle eines Bearbeitungsprogramms und aktiviert eine Bearbeitungskurvenerzeugungseinheit 4. Die Bearbeitungskurvenerzeugungseinheit 4 aktiviert eine Segmentkurvenerzeugungseinheit 6, erzeugt eine einzelne Segmentkurve als eine Bearbeitungskurve und setzt die Segmentkurve auf Interpolationsdaten. Die auf Interpolationsdaten gesetzte Segmentkurve (ein Teil der Bearbeitungskurve) wird durch die Interpolationseinheit 8 interpoliert und die entsprechenden Antriebsachsen (X-, Y- und Z-Achsen-Servos 10, 12 und 14) werden zu interpolierten Positionen bewegt. Das Erzeugen derartiger Segmentkurven, das Setzen von Segmentkurven zu Interpolationsdaten und der Interpolationsprozess davon werden wiederholt und fortlaufend ausgeführt. Da Techniken, die von der Interpolationseinheit 8 zum Interpolieren einer Bearbeitungskurve verwendet werden, herkömmlicher Stand der Technik sind, wird keine detaillierte Beschreibung davon gegeben.
-
Als nächstes werden vorteilhafte Effekte der vorliegenden Erfindung beschrieben. Die vorliegende Erfindung erzeugt die folgenden vorteilhaften Effekte.
- (1) Wie vorstehend unter Bezugnahme auf das Blockdiagramm beschrieben, erzeugt die numerische Steuerung Interpolationsdaten mit der Befehlslese-/Analyseeinheit und führt ein Interpolieren basierend auf den Interpolationsdaten mit der Interpolationseinheit durch. Wenn Befehlspunkte mit geringen Intervallen vorgegeben sind, muss das Erzeugen der Interpolationsdaten und der Interpolation basierend auf den Interpolationsdaten oft wiederholt werden und als Folge daraus tritt eine Verlangsamung aufgrund einer unzureichenden Kapazität zum Erzeugen und Interpolieren von Bearbeitungskurven auf. Da mit der vorliegenden Erfindung eine kubische Kurve (Segmentkurve) erzeugt werden kann, die einer maximalen Anzahl von Befehlspunkten entspricht, oder mit anderen Worten, da Interpolationsdaten erzeugt werden können, die einer Punktfolge entsprechen, die eine maximale Anzahl von Befehlspunkten einschließt, ist die Wahrscheinlichkeit geringer, dass ein Bedarf für eine oftmaliges Wiederholen des Erzeugens von Interpolationsdaten und des Ausführens der Interpolation auftritt.
-
Entsprechend kann das Auftreten von Verlangsamungen aufgrund einer unzureichenden Kapazität der numerischen Steuerung zum Erzeugen und Interpolieren von Bearbeitungskurven reduziert werden, sogar wenn Intervalle zwischen Befehlspunkten gering sind.
- (2) Da die vorliegende Erfindung das Erzeugen einer kubischen Kurve (Segmentkurve) ermöglicht, welche einer maximalen Anzahl von Befehlspunkten entspricht, sogar wenn eine Befehlspunktfolge eine Abweichung aufgrund von Fehlern hinsichtlich einer Zielkurve aufweist, kann die Auswirkung der Fehler reduziert werden und eine Bearbeitungskurve, die die Zielkurve genauer annähert, kann erzeugt werden.
- (3) Auf einer gemäß der vorliegenden Erfindung erzeugten Bearbeitungskurve sind in einem Endpunkt einer jeden Segmentkurve und in einem Startpunkt einer nächsten Segmentkurve Erst-Ableitungsvektoren stetig und Zweit-Ableitungsvektoren praktisch stetig. Wie vorstehend beschrieben, kann die Stetigkeit der Zweit-Ableitungsvektoren durch Erhöhen einer vorbestimmten Anzahl von Punkten nc verbessert werden. Darüber hinaus liegt ein Fehler der Bearbeitungskurve zu einer Befehlspunktfolge innerhalb eines erlaubten Wertes. Gemäß der vorliegenden Erfindung kann daher eine gleichmäßige Bearbeitungsform, deren Fehler zu der Befehlspunktfolge innerhalb eines erlaubten Wertes liegt, und ein gleichmäßiger Bearbeitungsbetrieb mit gleichmäßiger Beschleunigung einer jeden Antriebsachse erhalten werden.
- (4) Da die vorliegende Erfindung das sequentielle Erzeugen von Bearbeitungskurven ohne Einlesen sämtlicher Punkte ermöglicht, welche die Befehlspunktfolge bilden, können Bearbeitungskurven erzeugt werden, ohne das ein großer Speicher oder eine lange Berechnungszeit benötigt werden.