DE19618332A1 - Numerische Steuervorrichtung mit Spline-Interpolationsfunktion - Google Patents

Numerische Steuervorrichtung mit Spline-Interpolationsfunktion

Info

Publication number
DE19618332A1
DE19618332A1 DE19618332A DE19618332A DE19618332A1 DE 19618332 A1 DE19618332 A1 DE 19618332A1 DE 19618332 A DE19618332 A DE 19618332A DE 19618332 A DE19618332 A DE 19618332A DE 19618332 A1 DE19618332 A1 DE 19618332A1
Authority
DE
Germany
Prior art keywords
spline curve
point
zone
spline
interpolation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19618332A
Other languages
English (en)
Inventor
Daisuke Fujino
Tomonori Satou
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE19618332A1 publication Critical patent/DE19618332A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/41Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • G05B19/4103Digital interpolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34093Real time toolpath generation, no need for large memory to store values
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34135Spline
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/43Speed, acceleration, deceleration control ADC
    • G05B2219/43009Acceleration deceleration for each block of data, segment
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/43Speed, acceleration, deceleration control ADC
    • G05B2219/43062Maximum acceleration, limit
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/43Speed, acceleration, deceleration control ADC
    • G05B2219/43203Limitation of speed, permissible, allowable, maximum speed

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)
  • Image Processing (AREA)

Description

Die Erfindung betrifft eine numerische Steuervorrichtung, und insbesondere eine numerische Steuervorrichtung, die eine glatte Steuerung für eine Interpolation zum Durchgang durch ein vorgegebenes Punktfeld (eine Punktmenge) mit einer Spline-Interpolationsfunktion zur Verfügung stellt.
Bis lang wurde in einer numerischen Steuervorrichtung ein Verfahren zum Steuern einer freien Kurve in einem Raum als Bewegungspfad verwendet, bei welchem die Kurve vorher in kleine Zonen unterteilt wird, Daten für jede kleine Zone als kleine Spline-Daten approximiert werden, und an die numerische Steuervorrichtung übertragen werden, und der Bewegungspfad (die Ortskurve) unter Verwendung der kleinen Spline-Daten linear interpoliert wird.
Als repräsentatives Verfahren zum Approximieren einer freien Kurve in eine kleine Spline-Funktion wird gemäß Fig. 24 ein zulässiger Fehler ε eingestellt, und werden vorgegebene Punkte so eingestellt, daß die Entfernung zwischen einer Spline-Funktion, welche die vorgegebenen Punkte (Durchlaufpunkte) auf einer Kurve verbindet, und der Kurve selbst nicht den zulässigen Fehler ε überschreitet.
Um die Bahn eines Werkzeugs mit hoher Genauigkeit durch lineare Interpolation zu steuern, ist es erforderlich, den zulässigen Fehler ε auf einen kleinen Wert einzustellen. In diesem Fall ist jedoch eine kleine Spline-Funktion extrem kurz, und die Anzahl vorgegebener Punkte so groß, daß ein Bearbeitungsbefehl sehr lang wird, und die Bearbeitungsgeschwindigkeit nach der linearen Interpolation nicht erhöht werden kann.
Um das voranstehend geschilderte Problem zu vermeiden, ist es gewünscht, den zulässigen Fehler ε auf einen relativ großen Wert einzustellen, und vorgegebene Punkte auf einer Kurve zum Steuern von Linien einzustellen, welche die vorgegebenen Punkte verbinden, nicht mittels linearer Interpolation, sondern durch Spline-Kurveninterpolation. Um die vollständige Spline-Interpolation durchzuführen, ist es erforderlich, wie voranstehend erläutert eine große Datenmenge zu berechnen, und dies ist in der Praxis bei einer numerischen Steuervorrichtung (NC-Vorrichtung) unmöglich, bei welcher eine Verarbeitung in Echtzeit gefordert ist.
Gemäß einer wohlbekannten Theorie für eine Kurve (beispielsweise "Form processing engineering (I)", Fujio Yamaguchi, veröffentlicht von Nikkan Kogyo Shimbun), wird ein Punkt P(t) auf einer Spline-Kurve, die glatt durch n Stücke vorgegebener Punkte P₁, P₂, . . . Pn geht, durch den Ausdruck (1) in einer Zone von Pj-1 bis Pj ausgedrückt, die in Fig. 25 gezeigt ist:
Hierbei ist qj ein Einheitstangentenvektor am Punkt Pj, wogegen cj die Entfernung von Pj-1 bis Pj ist. t ist ein Kurvenparameter, und ist größer gleich Null und kleiner gleich 1.
Die durch den Ausdruck (1) definierte Spline-Kurve gelangt durch die vorgegebenen Punkte Pj (j = 1, 2, 3, . . ., n), aber wenn ein Einheitstangentenvektor qj nicht auf einen geeigneten Wert eingestellt ist, ist die zweite Ableitung an jedem vorgegebenen Punkt nicht stetig. Die Bedingung für die stetige Ableitung an jedem vorgegebenen Punkt Pj (j = 2, 3, . . ., n-1) wird durch folgenden Ausdruck ausgedrückt:
Es wird darauf hingewiesen, daß die folgenden Bedingungen für einen Randpunkt zusätzlich bei den Randpunkten q₁ und qn gegeben sind.
  • (i) Wenn ein Tangentenvektor an einem Endpunkt gegeben ist:
    q₁ = vorgegebener Wert (3a) qn = vorgegebener Wert (3b)
  • (ii) Wenn eine Krümmung an einem Endpunkt auf Null eingestellt ist: 2c₂q₁ + c₂q₃ = 3 (P₂ - P₁) (4a)cnqn-1 + 2cnqn = 3 (Pn - Pn-1) (4b)
Eine tertiäre Spline-Kurve für sämtliche Zonen kann dadurch erhalten werden, daß man einen gemeinsamen Tangentenvektor qj durch Lösung n gekoppelter Gleichungen erhält, die durch die Ausdrücke (2), (3a) und (3b) oder die Ausdrücke (2), (4a) und (4b) gegeben sind.
Allerdings ist es zu diesem Zweck erforderlich, sämtliche n vorgegebene Punkte einzulesen, und eine Umkehrmatrix von n×n zu erhalten, und die zu berechnende Datenmenge steigt bei einer Erhöhung der Anzahl vorgegebener Punkte n explosionsartig an, und daher war es unmöglich, die Umkehrmatrix innerhalb einer kurzen Abtastzeit in einer numerischen Steuervorrichtung zu berechnen.
Ein Ziel der vorliegenden Erfindung besteht in der Bereitstellung einer numerischen Steuervorrichtung, welche Spline-Kurven nacheinander aus einer kleineren Anzahl an Punkten sämtlicher Punktfelder berechnen kann, durch welche eine Spline-Kurve hindurchgehen soll, und die Interpolation einer Bahn entsprechend der Spline-Kurve in Echtzeit durchführen kann.
Bei der numerischen Steuervorrichtung gemäß der vorliegenden Erfindung werden, unter der Annahme, daß die Anzahl an Wiederholungen für approximierte Berechnungen von Tangentenvektoren auf Durchlaufpunkten auf den Wert k eingestellt ist, wenn ein Durchlaufpunkt Pj+k vor einem Punkt k eingelesen wird, statt die gesamten Durchlaufpunkte bis zu einem Endpunkt einzulesen, Spline-Kurven zwischen einem Durchlaufpunkt Pj-1 und einem Punkt Pj nacheinander dadurch erzeugt, daß der Tangentenvektor des Durchlaufpunkts Pj durch einfache Berechnungen erhalten wird, und kann eine Spline- Kurve erhalten werden, die eine glatte Verbindung an jedem der Durchlaufpunkte zur Verfügung stellt, so daß eine glatte Spline-Kurve in Echtzeit erzeugt werden kann, ohne daß eine beträchtliche Anzahl an Berechnungen durchgeführt werden muß.
Die Bewegungsgeschwindigkeit eines Werkzeugs kann so berechnet werden, daß die normale Beschleunigung innerhalb eines zulässigen Bereichs für jede der ermittelten Spline- Kurven an jedem der Durchlaufpunkte liegt, und aus diesem Grund kann eine Sollgeschwindigkeit erhalten werden, bei welcher der Interpolationsfehler nicht einen zulässigen Wert überschreitet, und wird eine Bearbeitung mit hoher Genauigkeit möglich, selbst wenn ein großer Abschnitt einer Kurve innerhalb eines Feldes durch Durchlaufpunkten auf einer frei wählbaren Sollkurve enthalten ist.
Bei einer weiteren numerischen Steuervorrichtung gemäß der vorliegenden Erfindung wird die Bewegungsgeschwindigkeit eines Werkzeugs in einer Spline-Kurvenzone so eingestellt, daß die normale Beschleunigung an Randpunkten der Spline- Kurvenzone innerhalb eines zulässigen Bereichs liegt, und aus diesem Grund kann eine Sollgeschwindigkeit erhalten werden, bei welcher der Interpolationsfehler nicht einen zulässigen Bereich an Randpunkten der Spline-Kurvenzone überschreitet, und wird eine Bearbeitung mit hoher Genauigkeit möglich, selbst wenn ein großer Abschnitt einer Kurve innerhalb eines Feldes von Durchlaufpunkten auf einer frei wählbaren Sollkurve enthalten ist.
Bei einer weiteren numerischen Steuervorrichtung gemäß der vorliegenden Erfindung werden, unter der Annahme, daß die Anzahl an Wiederholungen approximierter Berechnungen eines Tangentenvektors auf Durchlaßpunkten auf den Wert k eingestellt ist, wenn ein Durchlaufpunkt Pj+k vor einem Punkt k eingelesen wird, statt die gesamten Durchlaufpunkte bis zu einem Endpunkt einzulesen, Spline-Kurven zwischen Durchlaufpunkten Pj-1 und Pj nacheinander dadurch erzeugt, daß der Tangentenvektor auf dem Durchlaufpunkt Pj durch einfache Berechnungen erhalten wird, und kann eine Spline-Kurve erhalten werden, die eine glatte Verbindung an jedem der Durchlaufpunkte zur Verfügung stellt, so daß eine glatte Spline-Kurve in Echtzeit erzeugt werden kann, ohne daß in erheblichem Umfang Berechnungen erforderlich sind.
Eine Bewegungsgeschwindigkeit eines Werkzeugs wird so berechnet, daß dann, wenn sich das Werkzeug auf einer geraden Linie entsprechend der Spline-Kurve bewegt, ein maximaler Toleranzabstand zwischen der geraden Linie und der Spline- Kurve innerhalb eines zulässigen Bereichs liegt, und aus diesem Grund kann eine Sollgeschwindigkeit erhalten werden, bei welcher der Interpolationsfehler nicht den zulässigen Wert überschreitet, und wird eine Bearbeitung mit hoher Genauigkeit ermöglicht, selbst wenn ein großer Abschnitt einer Kurve innerhalb eines Feldes von Durchlaufpunkten auf einer frei wählbaren Sollkurve enthalten ist.
Bei einer weiteren numerischen Steuervorrichtung gemäß der vorliegenden Erfindung wird der maximale Toleranzabstand zwischen einer geraden Linie und einer Spline-Kurve entsprechend einer maximalen Krümmung einer Spline-Kurvenzone erfaßt, und wird eine Bewegungsgeschwindigkeit eines Werkzeugs entsprechend der maximalen Krümmung berechnet, so daß ein maximaler Toleranzabstand zwischen einer geraden Linie und einer Spline-Kurve innerhalb eines zulässigen Bereiches liegt, und aus diesem Grund kann eine Sollgeschwindigkeit erhalten werden, bei welcher der Interpolationsfehler nicht den zulässigen Wert überschreitet, ohne daß komplizierte Berechnungen erforderlich sind, und es wird eine Bearbeitung mit hoher Genauigkeit möglich.
Bei einer weiteren numerischen Steuervorrichtung gemäß der vorliegenden Erfindung wird ein Tangentenvektor für jeden Durchlaufpunkt dadurch erhalten, daß approximierte Berechnungen eine frei wählbare Anzahl an Malen für einen Tangentenvektor eines mittleren zweiten Punktes aus einer Positionsbeziehung zwischen aufeinanderfolgenden drei Durchlaufpunkten wiederholt werden, und ebenso aus Tangentenvektoren für den ersten und dritten Punkt unter diesen Punkten, so daß durch Lesen des Durchlaufpunkts, der zwei Punkte vorausliegt, statt des Lesens der gesamten Durchlaufpunkte bis zu einem Endpunkt Spline-Kurven aufeinanderfolgend zwischen dem momentanen Durchlaufpunkt und dem diesem vorhergehenden Durchlaufpunkt aufeinanderfolgend erzeugt werden, indem man den Tangentenvektor auf dem vorliegenden Durchlaufpunkt durch einfache Berechnungen erhält, und so kann eine Spline-Kurve erhalten werden, die eine glatte Verbindung bei jedem der Durchgangspunkte zur Verfügung stellt. Aus diesem Grund kann auch in diesem Fall eine glatte Spline-Kurve in Echtzeit erzeugt werden, ohne daß in erheblichem Ausmaß Berechnungen erforderlich sind.
Bei einer weiteren numerischen Steuervorrichtung gemäß der vorliegenden Erfindung wird, wenn eine Änderungsrate eines Spline-Parameters pro Zeiteinheit für die Interpolation berechnet wird, indem zuerst Koordinatenwerte bezüglich der Spline-Kurve unter Verwendung einer Parameteränderungsrate während einer vorherigen Zeiteinheit für die Interpolation als temporäre Parameteränderungsrate erhalten werden, das Ausmaß der Bewegung berechnet, und dann wird eine Berechnung zur Erzielung einer Konvergenz durchgeführt, so daß dieses Ausmaß der Bewegung mit einem Sollausmaß der Bewegung übereinstimmt, und es wird eine echte Parameteränderungsrate durch die Konvergenzberechnung berechnet, und aus diesem Grund kann eine Interpolation mit einer geraden Linie durchgeführt werden, welche eine größere Zielverfolgungsfähigkeit aufweist als eine Spline-Kurve, und es wird eine Bearbeitung mit hoher Genauigkeit ermöglicht.
Bei einer weiteren numerischen Steuervorrichtung gemäß der vorliegenden Erfindung wird, wenn eine Änderungsrate eines Spline-Parameters pro Zeiteinheit für die Interpolation berechnet wird, indem zuerst Koordinatenwerte bezüglich der Spline-Kurve unter Verwendung einer Parameteränderungsrate während einer vorherigen Zeiteinheit für die Interpolation als temporäre Parameteränderungsrate erhalten werden, das Ausmaß der Bewegung berechnet, und dann wird die Berechnung der Parameteränderungsrate eine frei wählbare Anzahl an Malen wiederholt, so daß dieses Ausmaß der Bewegung mit einem Sollausmaß der Bewegung übereinstimmt, und es wird eine echte Parameteränderungsrate durch diese wiederholte Berechnung berechnet, und aus diesem Grund wird eine Interpolation mit einer geraden Linie durchgeführt, welche eine vergleichsweise Zielverfolgungsfähigkeit aufweist, als eine Spline-Kurve, während einer geeigneten Berechnungszeit, und wird eine Bearbeitung mit hoher Genauigkeit ermöglicht.
Bei einer weiteren numerischen Steuervorrichtung gemäß der vorliegenden Erfindung werden in Beziehung zu Durchlaufpunkten, die diskret auf der wie gewünscht gekrümmten Bearbeitungsbahn eingestellt sind, als Zone einer geraden Linie angesehen: eine Zone eines Punktfeldes, in welchem eine vorgegebene Anzahl an Blöcken oder mehr von einem Startpunkt aus in einer Richtung weitergeht, eine Zone eines Punktfeldes, in welcher eine vorgegebene Anzahl von Blöcken oder mehr vor einem Endpunkt in einer Richtung weitergeht, oder eine Zone eines Punktfeldes, in welchem eine vorgegebene Anzahl an Blöcken oder mehr, die weder den Startpunkt noch den Endpunkt enthalten, in einer Richtung weitergehen, und wird eine andere Zone eines Punktfeldes als eine Spline-Kurvenzone erkannt, so daß selbst dann, wenn ein Abschnitt einer geraden Linie innerhalb eines Feldes von Durchlaufpunkten enthalten ist, welche eine Spline-Kurve bilden, vermieden wird, daß der Abschnitt mit einer geraden Linie zu einer Kurve wird, die von dem Kurvenabschnitt beeinflußt wird, der sich hieran anschließt. Durch dieses Merkmal wird eine Bearbeitung mit hoher Genauigkeit ermöglicht.
Bei einer weiteren numerischen Steuervorrichtung gemäß der vorliegenden Erfindung wird dann, wenn eine Spline-Kurve in einer Spline-Kurvenzone festgelegt wird, die als Zone mit einer geraden Linie getrennt ist, ein Tangentenvektor für eine Spline-Kurve an einem Grenzpunkt zwischen einer Zone mit einer geraden Linie und einer Zone mit einer Spline-Kurve als ein Einheitsvektor vorgegeben, der die Richtung der Zone mit einer geraden Linie angibt, so daß selbst dann, wenn ein Abschnitt einer geraden Linie innerhalb eines Feldes von Durchlaufpunkten liegt, die eine Spline-Kurve bilden, bei dem Abschnitt mit der geraden Linie vermieden wird, daß er zu einer Kurve wird, die von dem Kurvenabschnitt beeinflußt wird, der sich an sie anschließt. Durch dieses Merkmal wird eine Bearbeitung mit hoher Genauigkeit ermöglicht.
Wenn nämlich eine Spline-Kurve aus dem Kurvenabschnitt abgeleitet wird, stimmt ein Tangentenvektor eines Berührungspunktes mit einem Vektor in Richtung der anschließenden geraden Linie überein, so daß infolge der voranstehend geschilderten Bearbeitung ein Abschnitt mit einer geraden Linie und ein Kurvenabschnitt glatt miteinander verbunden werden.
Bei einer weiteren numerischen Steuervorrichtung gemäß der vorliegenden Erfindung stellt die Spline- Kurvenfestlegungsvorrichtung dadurch eine gerade Linie zur Verfügung, daß ein tertiärer Koeffizient und ein sekundärer Koeffizient einer Spline-Kurve jeweils auf Null in einer Zone mit einer geraden Linie eingestellt werden, so daß eine gerade Linie einfach dadurch erhalten werden kann, daß Berechnungen entsprechend den Berechnungen zur Ermittlung einer Spline-Kurve durchgeführt werden.
Die Erfindung wird nachstehend anhand zeichnerisch dargestellter Ausführungsbeispiele näher erläutert, aus welchen weitere Vorteile und Merkmale hervorgehen. Es zeigt:
Fig. 1 ein Blockschaltbild der wesentlichen Teile der Ausführungsform 1 einer numerischen Steuervorrichtung gemäß der vorliegenden Erfindung;
Fig. 2 eine schematische Darstellung einer Berechnungsabfolge, wenn der Tangentenvektor jedes Durchlaufpunktes durch Wiederholung der Berechnung eines Vektors in der numerischen Steuervorrichtung gemäß der vorliegenden Erfindung erhalten wird;
Fig. 3 ein Flußdiagramm der Bearbeitung in einem Befehlseingabeabschnitt in der numerischen Steuervorrichtung gemäß der vorliegenden Erfindung;
Fig. 4 ein Flußdiagramm der Bearbeitung in einem Spline- Kurvenfestlegungsabschnitt in der numerischen Steuervorrichtung gemäß der vorliegenden Erfindung;
Fig. 5 eine schematische Darstellung der Art und Weise, wie eine Spline-Kurve in jeder Zone aufeinanderfolgend in der numerischen Steuervorrichtung gemäß der vorliegenden Erfindung erhalten wird;
Fig. 6 eine erläuternde Darstellung der Beziehung zwischen einem Tangentenvektor, einem Beschleunigungsvektor, und einem Normalvektor eines Punkts auf einer Spline-Kurve;
Fig. 7 ein Flußdiagramm der Verarbeitung in einem Geschwindigkeitssteuerabschnitt in der numerischen Steuervorrichtung gemäß der vorliegenden Erfindung;
Fig. 8 eine erläuternde Darstellung eines Interpolationspunktes aus einer Spline-Kurve;
Fig. 9 eine Darstellung eines Verfahrens zum Erhalten eines Interpolationspunktes nach einer Zeiteinheit auf einer Spline-Kurve;
Fig. 10 ein Flußdiagramm der Verarbeitung in einem Interpolationsberechnungsabschnitt in der numerischen Steuervorrichtung gemäß der vorliegenden Erfindung;
Fig. 11 ein Blockschaltbild der wesentlichen Elemente der Ausführungsform 2 der numerischen Steuervorrichtung gemäß der vorliegenden Erfindung;
Fig. 12 eine erläuternde Darstellung eines Fehlers zwischen einer Kurve und einer geraden Linie, wenn eine Interpolation durch eine gerade Linie auf der Spline-Kurve durchgeführt wird;
Fig. 13 eine erläuternde Darstellung, wie geometrisch eine Entfernung zwischen einer Sehne, die auf einer Kurve mit konstantem Krümmungsradius verläuft, und einer Kurve erhalten wird;
Fig. 14 ein Flußdiagramm der Verarbeitung in dem Geschwindigkeitssteuerabschnitt in der numerischen Steuervorrichtung gemäß der vorliegenden Erfindung;
Fig. 15 ein Blockschaltbild der wesentlichen Elemente der Ausführungsform 3 der numerischen Steuervorrichtung gemäß der vorliegenden Erfindung;
Fig. 16A bis 16C erläuternde Darstellungen zur Verdeutlichung der Verzerrung einer Form, die normalerweise auf einem geradlinigen Abschnitt erzeugt wird, wenn ein geradliniger Abschnitt auf einem Feld von Durchlaufpunkten vorhanden ist, die eine Spline-Kurve bilden, und einer Form, deren Verzerrung gemäß der vorliegenden Erfindung vermieden wird;
Fig. 17 ein Flußdiagramm der Verarbeitung in dem Befehlseingabeabschnitt, der einen geradlinigen Abschnitt differenziert;
Fig. 18 ein Flußdiagramm der Verarbeitung der gesamten Bearbeitung in dem Spline- Kurvenfestlegungsabschnitt, nachdem der geradlinige Abschnitt differenziert wurde;
Fig. 19 ein Flußdiagramm der Verarbeitung in einem Zustand, in welchem ein Bearbeitungsmuster in dem Spline- Kurvenfestlegungsabschnitt nach Differenzieren des geradlinigen Abschnitts eine gerade Linie ist;
Fig. 20 ein Flußdiagramm der Verarbeitung in einem Zustand, in welchem ein Bearbeitungsmuster in dem Spline- Kurvenfestlegungsabschnitt nach Differenzieren des geradlinigen Abschnitts einer Spline-Kurve einschließlich eines Startpunktes ist;
Fig. 21 ein Flußdiagramm der Verarbeitung in einem Zustand, in welchem ein Verarbeitungsmuster in dem Spline- Kurvenfestlegungsabschnitt nach Differenzieren des geradlinigen Abschnitts eine normale Spline-Kurve ist;
Fig. 22 ein Flußdiagramm der Verarbeitung in einem Zustand, in welchem ein Verarbeitungsmuster in dem Spline- Kurvenfestlegungsabschnitt nach Differenzieren des geradlinigen Abschnitts ein Endpunkt der Spline- Kurve ist;
Fig. 23A und 23B erläuternde Darstellungen zur Verdeutlichung eines Abschnitts, der bereits erhalten wurde, und eines Abschnitts, der erhalten werden soll, in dem Zustand, in welchem ein Verarbeitungsmuster in dem Spline- Kurvenfestlegungsabschnitt durch Festlegung einer Spline-Kurve nach Differenzieren eines geradlinigen Abschnitts eine normale Spline-Kurve oder ein Endpunkt der Spline-Kurve ist;
Fig. 24 eine Darstellung eines Verfahrens zur Unterteilung einer Kurve in eine Feld von Durchlaufpunkten; und
Fig. 25 eine Darstellung einer Spline-Kurve, die durch zwei Punkte und deren Tangentenvektor dargestellt wird.
Fig. 1 zeigt die Ausführungsform 1 der wesentlichen Teile einer numerischen Steuervorrichtung gemäß der vorliegenden Erfindung.
Die numerische Steuervorrichtung weist einen Befehlseingabeabschnitt 1 auf, zur Eingabe eines Durchlaufpunktfeldes (Feldes vorgegebener Punkte) Pj (j = 1, 2, . . ., n) auf einer gekrümmten Bahn und eines maximalen Geschwindigkeitsbefehlswertes F₀, einen Spline- Kurvenfestlegungsabschnitt 2 zur Festlegung einer Spline- Kurve für jede Zone in dem Durchlaufpunktfeld Pj (j = 1, 2, . . ., n), das in den Befehlseingabeabschnitt 1 eingegeben wurde, und zur Ausgabe eines Spline-Koeffizienten für jede Achse, einen Geschwindigkeitssteuerabschnitt 3 zur Berechnung einer interpolierten Geschwindigkeit F aus dem Spline- Koeffizienten für jede Achse, der in dem Spline- Kurvenfestlegungsabschnitt berechnet wird, dem eingegebenen maximalen Geschwindigkeitsbefehlswert F₀, der in den Befehlseingabeabschnitt 1 eingegeben wird, und einer zulässigen Beschleunigung α, sowie einen Interpolationsberechnungsabschnitt 4 zur Durchführung einer Berechnung für die Kurveninterpolation für jede Abtastzeit aus dem Spline-Koeffizienten für jede Achse, der in dem Spline-Kurvenfestlegungsabschnitt 2 berechnet wird, und der interpolierten Geschwindigkeit F, der in dem Geschwindigkeitssteuerabschnitt 3 berechnet wird, und gibt einen Positionsbefehl (Positions-Sollwert) auf der Grundlage der Koordinatenwerte Px(t), Py(t) und Pz(t) für jede Achse aus, die in dem Interpolationsberechnungsabschnitt 4 berechnet werden, an einen Servoantriebsabschnitt 5, der ein Servosystem für jede Achse darstellt.
Um den Datenfluß von dem Befehlseingabeabschnitt 1 zum Spline-Kurvenfestlegungsabschnitt 2 zu erläutern, und auch die Berechnung in dem Spline-Kurvenfestlegungsabschnitt 2 zu verdeutlichen, erfolgt zunächst eine Beschreibung der Grundlage der Spline-Kurvenberechnung in der Vorrichtung gemäß der vorliegenden Erfindung.
Der nachstehende Ausdruck wird durch Umformung des obigen Ausdrucks (2) erhalten:
Hierbei ist uj ein Einheitsvektor von dem vorgegebenen Punkt Pj-1 nach Pj, der durch den Ausdruck (7) definiert ist.
uj (Pj - Pj-1)/cj (7)
Das grundlegende Prinzip zur Berechnung einer Spline-Kurve in der Vorrichtung gemäß der vorliegenden Erfindung besteht darin, einen approximierten Tangentenvektor für jeden vorgegebenen Punkt zu berechnen, der den Ausdruck (6) erfüllt, und die Genauigkeit schrittweise durch Wiederholung der Berechnung zu verbessern.
Nachstehend erfolgt eine Beschreibung der Berechnungsfolge, und hierbei wird ein Einheitstangentenvektor an einem vorgebenen Punkt Pj, der erhalten wird, wenn die Berechnung k mal wiederholt wurde, durch qj [k] bezeichnet.
(Vorgang 1)
Es wird angenommen, daß k gleich Null ist (k = 0), und daß es erforderlich ist, eine Spline-Kurve zu erhalten, die durch die drei vorgegebenen Punkte Pj-1, Pj und Pj+1 geht, durch einen Einheitsvektor an dem vorgegebenen Punkt pj-1 von uj und einem Einheitsvektor an dem Punkt Pj+1 von uj+1. Es wird nämlich ein Tangentenvektor qj [k] an den vorgegebenen Punkten Pj-1 aus dem Ausdruck (6) durch folgenden Ausdruck (8) berechnet.
Für den Startpunkt (j = 1) und den Endpunkt (j = n), wird unter der Annahme, daß die Krümmung an dem Endpunkt gleich 0 ist, die Spline-Kurve durch den Ausdruck (4a) bzw. (4b) erhalten.
(Vorgang 2)
Nunmehr wird angenommen, daß für den Wert k der Wert k + 1 eingesetzt wird, und es eine Spline-Kurve erhalten, die durch die drei vorgegebenen Punkte Pj-1, Pj und Pj+1 geht, mit dem Tangentenvektor qj-1 [k] an dem vorgegebenen Punkt Pj+1 und dem Tangentenvektor qj-1 [k] an dem vorgegebenen Punkt Pj+1. Aus dem Ausdruck (6) wird folgender Ausdruck angewendet.
Die Tangentenvektoren q₁[k+1] und qn [k+1] sind ebenso wie jene beim Vorgang 1, die durch den Ausdruck (9) bzw. (10) berechnet wurden.
(Vorgang 3)
Die Sequenz im Vorgang 2 und daraufhin wird eine frei wählbare Anzahl an Malen wiederholt.
Gemäß der voranstehend geschilderten Sequenz und durch Einstellung der Anzahl an Wiederholungen auf einen geeigneten Wert kann eine approximierte Spline-Kurve erhalten werden, die nahe an einer theoretischen liegt. Normalerweise kann eine Spline-Kurve, die für den Gebrauch einer Praxis geeignet ist, dadurch erhalten werden, daß die Sequenz zweimal wiederholt wird (durch Berechnung von qj [2]).
Fig. 2 zeigt schematisch einen Vorgang zur Berechnung bis hin zu qj [2], unter der Annahme, daß j gleich 1, 2, . . ., 8 ist (P₈ ist der Endpunkt).
Nunmehr folgt eine Beschreibung der Berechnungen in dem Befehlseingabeabschnitt 1 und in dem Spline- Kurvenfestlegungsabschnitt 2 unter Bezugnahme auf das voranstehend geschilderte Prinzip der Spline- Kurvenberechnung. Hierbei wird angenommen, daß j gleich 1, 2, . . ., 8 ist (n = 8), und P₈ der Endpunkt ist.
Fig. 3 zeigt den allgemeinen Bearbeitungsfluß bei der Bearbeitung in dem Befehlseingabeabschnitt 1.
Wenn ein Befehl für die Spline-Interpolation in den Befehlseingabeabschnitt 1 eingegeben wird, wird die in Fig. 3 gezeigte Verarbeitungsabfolge begonnen.
Zuerst werden im Schritt S101 Koordinatenwerte für drei vorgegebene Punkte oder Befehlspunkte P₁, P₂ und P₃ vom Startpunkt aus eingegeben, und im Schritt S102 wird eine Entfernung c₂ von dem Befehlspunkt P₁ zum Befehlspunkt P₂ sowie eine Entfernung c₃ von dem Befehlspunkt P₂ zum Befehlspunkt P₃ berechnet, und dann wird der jeweilige Einheitsvektor u₂ bzw. u₃ über den Ausdruck (7) berechnet.
Im Schritt S103 wird j zuerst auf 3 gesetzt (j = 3), und im Schritt S104 wird j auf 4 eingestellt (j wird inkrementiert (schrittweise erhöht) um 1).
Im Schritt S105 wird ein Koordinatenwert für den Befehlspunkt P₄ eingegeben, und im Schritt S106 wird eine Entfernung c₄ von dem Befehlspunkt P₃ zum Befehlspunkt P₄ sowie der Einheitsvektor u₄ berechnet.
Dann gibt im Schritt S107 der Befehlseingabeabschnitt 1 Koordinatenwerte für Befehlspunkte P₁, P₂, P₃, P₄ aus, Entfernungen zwischen den Befehlspunkten c₂, c₃, c₄, und Einheitsvektoren u₂, u₃ und u₄ an den Spline- Kurvenfestlegungsabschnitt 2. Im Schritt S107 geht, nachdem der Spline-Kurvenfestlegungsabschnitt 2 den Empfang der ausgegebenen Daten bestätigt hat, die Systemsteuerung zum nächsten Schritt S108 über. Dann werden, wie nachstehend genauer erläutert wird, in dem Spline- Kurvenfestlegungsabschnitt 2 Spline-Kurven für Zonen zwischen den Befehlspunkten P₁ und P₂ festgelegt.
Im Schritt S108 wird überprüft, ob j gleich n ist oder nicht, nämlich ob der Punkt Pj ein Endpunkt ist oder nicht, und wenn j nicht gleich n ist (j = 4, n = 8), geht die Systemsteuerung zum Schritt S104 über, und j + 1 wird dekrementiert (schrittweise verringert) auf j (j + 1 → j).
Wenn j nicht kleiner als 5 ist (j 5), wird im Schritt S105 ein Koordinatenwert für den Befehlspunkt Pj eingegeben, und im Schritt S106 wird eine Entfernung cj von dem Befehlspunkt Pj-1 bis zu dem Befehlspunkt Pj sowie der Einheitsvektor uj berechnet.
Dann gibt im Schritt S107 der Befehlseingabeabschnitt 1 den Koordinatenwert Pj des Befehlspunktes, die Entfernung cj zwischen den Befehlspunkten, und den Einheitsvektor uj an den Spline-Kurvenfestlegungsabschnitt 2 aus. Im Schritt S107 geht, nachdem bestätigt wurde, daß die von dem Spline- Kurvenfestlegungsabschnitt 2 aus gegebenen Daten empfangen wurden, die Systemsteuerung zum nächsten Schritt S108 über. Dann werden, wie nachstehend näher erläutert wird, Spline- Kurven für jede Zone zwischen den Befehlspunkten Pj-₃ bis Pj-₂ in dem Spline-Festlegungsabschnitt 2 festgelegt.
Im Schritt S108 wird überprüft, ob j gleich n ist oder nicht, nämlich ob Pj ein Endpunkt ist oder nicht, und wenn j nicht gleich n ist (j ≠ n), geht die Systemsteuerung zum Schritt S104 über, und wenn j gleich n ist (n = j), so endet die Bearbeitung.
Nachstehend erfolgt unter Bezugnahme auf Fig. 4 eine Beschreibung der Bearbeitung in dem Spline- Kurvenfestlegungsabschnitt 2.
Wenn Daten von dem Befehlseingabeabschnitt 1 in den Spline- Kurvenfestlegungsabschnitt 2 eingegeben werden (Schritt 2 in Fig. 5), wird der Bearbeitungsfluß von Fig. 4 begonnen. Zuerst werden im Schritt S201, wenn j gleich 4 ist (j = 4), Koordinatenwerte P₁, P₂, P₃ und P₄ für Befehlspunkte, Entfernungen zwischen den Befehlspunkten c₂, c₃, c₄ sowie Einheitsvektoren u₂, u₃ und u₄ eingegeben. Ist j nicht kleiner als 5 (j 5), so werden ein Koordinatenwert Pj, eine Entfernung cj zwischen Befehlspunkten sowie ein Einheitsvektor uj eingegeben.
Dann wird im Schritt S202 überprüft, ob j gleich 4 ist (j = 4) oder nicht (ob ein Startpunkt bei der Bearbeitung beteiligt ist oder nicht), und wenn j gleich 4 ist (j = 4), dann wird im Schritt S203 der Tangentenvektor q₂[1] aus dem Ausdruck (8) durch den nachstehenden Ausdruck (12) erhalten.
Weiterhin wird im Schritt S204 ein Tangentenvektor q₁[1] für den Startpunkt P₁ aus dem Ausdruck (9) durch den nachstehenden Ausdruck (13) erhalten.
Dann wird im Schritt S205 ein Tangentenvektor qj-1 [1] für einen Befehlspunkt Pj-1 aus nachstehendem Ausdruck (14) erhalten.
Dann wird im Schritt S206 ein Tangentenvektor qj-2 [1] für einen Befehlspunkt Pj-2 aus dem folgenden Ausdruck (15) erhalten.
Dann wird im Schritt S207 überprüft, ob j gleich 4 ist (j = 4) oder nicht (ob die Bearbeitung einen Startpunkt enthält oder nicht), und wenn j gleich 4 ist, wird ein Tangentenvektor q₁[2] für den Startpunkt P₁ aus dem nachstehenden Ausdruck (16) erhalten.
Durch die voranstehende Verarbeitung werden die Tangentenvektoren qj-3 [2], qj-2 [2] für die Durchlaufpunkte Pj-3, Pj-2 festgelegt, so daß im Schritt S209 eine Spline-Kurve für eine Zone festgelegt wird, die von Pj-3 bis Pj-2 reicht. Nimmt man nämlich aus dem Ausdruck (1) folgende Ausdrücke an:
K₀ = Pj-3 (17a)
K₁ = cj-2 qj-3 [2] (17b)
K₂ = 3 (Pj-2 - Pj-3) - 2cj-2 qj-3 [2] - cj-2 qj-2 [2] (17c)
K₃ = 3 (Pj-3 - Pj-2) + cj-2 qj-3 [2] + cj-2 qj-2 [2] (17d)
so ergibt sich die Spline-Kurve P(t) für eine Zone von Pj-3 bis Pj2 aus folgendem Ausdruck:
P(t) = K₃ t³ + K₂ t² + K₁t + K₀ (0 ≦ t ≦ 1) (18)
Im Schritt S210 wird überprüft, ob j gleich n (j = n) ist oder nicht (ob Pj ein Endpunkt ist oder nicht), und wenn j nicht gleich n ist, endet die Bearbeitung, aber wenn j gleich n ist (j = n) (Pj ein Endpunkt ist), wird die folgende Bearbeitung für einen Endpunkt durchgeführt.
Zuerst wird im Schritt S211 ein Tangentenvektor qn [1] für den Endpunkt Pn aus dem Ausdruck (10) durch den folgenden Ausdruck (19) erhalten.
Dann wird im Schritt S212 ein Tangentenvektor qn-1 [2] für den Befehlspunkt Pn-1 durch den folgenden Ausdruck (20) erhalten:
Dann wird im Schritt S213 eine Spline-Kurve P(t) für eine Zone von Pj-3 bis Pj-2 aus dem Ausdruck (18) dadurch erhalten, daß j in den Ausdrücken (17a) bis (17d) durch n+1 ersetzt wird.
Schließlich wird eine Spline-Kurve für die endgültige Zone von Pn-1 bis Pn erhalten. Im Schritt S214 wird ein Tangentenvektor qn [2] für den Endpunkt Pn aus dem Ausdruck (10) über den folgenden Ausdruck (21) zu erhalten.
Tangentenvektor qn [2] für den Endpunkt Pn aus dem Ausdruck (10) über den folgenden Ausdruck (21) erhalten.
Dann wird im Schritt S213 eine Spline-Kurve P(t) für eine Zone von Pj-3 bis Pj-2 durch den Ausdruck (18) erhalten, und zwar dadurch, daß j in den Ausdrücken (17a) bis (17d) durch n+2 ersetzt wird.
Wie aus den in den Fig. 3 und 4 gezeigten Flußdiagrammen deutlich hervorgeht, liegt zu einem Zeitpunkt, wenn der Befehlseingabeabschnitt 1 vier Punkte P₁, P₂, P₃ und P₄ einschließlich eines Startpunkts eingegeben hat, der Spline- Kurvenfestlegungsabschnitt 2 eine Spline-Kurve für eine Kurve von P₁ bis P₂ (A in Fig. 5) fest. Dann wird jedesmal dann, wenn ein neuer Befehlspunkt Pj (j < 4) eingegeben wird, eine Spline-Kurve für eine Zone von Pj-3 bis Pj-2 festgelegt (B in Fig. 5). Die Spline-Kurven für drei Zonen, nämlich von Pn-3 bis Pn-2, von Pn-2 bis Pn-1, und von Pn-1 bis Pn, werden festgelegt (C in Fig. 5. Ein Fall, in welchem n gleich 8 ist).
Nachstehend erfolgt eine Beschreibung der Verarbeitung durch die Geschwindigkeitssteuervorrichtung 3 von Fig. 1.
Das Ziel ist das Steuern der Bewegung eines Werkzeugs durch Festlegung eines maximalen Geschwindigkeitsbefehlswerts F₀ entlang der Spline-Kurve, die von dem Spline- Kurvenfestlegungsabschnitt 2 festgelegt wurde, aber wenn der Krümmungsradius einer Kurve klein ist, kann manchmal eine zu große Beschleunigung, die den zulässigen Wert für die Maschine überschreitet, in der Richtung normal zur Kurve auftreten.
In der Geschwindigkeitssteuervorrichtung 3 wird ein Geschwindigkeitsbefehlswert so begrenzt, daß die Beschleunigung in der Richtung normal zur Spline-Kurve für jede Zone nicht den zulässigen Wert für die Maschine überschreitet.
Ein Positionsvektor für die Spline-Kurve, die in dem Spline- Kurvenfestlegungsabschnitt 2 festgelegt wird, ergibt sich aus dem voranstehenden Ausdruck (18).
Aus diesem Grund werden ein Geschwindigkeitsvektor Vj(t) und ein Beschleunigungsvektor aj(t), die jeweils mit einem Kurvenparameter t differenziert werden, durch die folgenden Ausdrücke festgelegt:
v(t) = P′ (t) = 3 K₃ t² + 2 K₂ t + K₁ (22)
a(t) = P′′ (t) = 6 K₃ t + 2 K₂ (23)
Hierbei wird angenommen, daß ein Einheitsvektor uj(t) in der Tangentialrichtung durch folgenden Ausdruck definiert ist:
Der Beschleunigungsvektor b(t) in der Tangentialrichtung ist durch folgenden Ausdruck gegeben:
b(t) = a(t) - (a(t) u(t)) u(t) (25)
wie in Fig. 6 gezeigt ist.
Aus diesem Grund werden eine Krümmung K(t) und ein Krümmungsradius p(t) durch folgenden Ausdruck festgelegt:
so daß die Größe der Beschleunigung α(t) in der Normalenrichtung, bei Bewegung auf einer Kurve bei einer Geschwindigkeit F, durch den folgenden Ausdruck gegeben ist:
α(t) = K(t) F2 (27)
Aus diesem Grund wird unter der Annahme, daß ein Maximalwert der Krümmung K(t) gleich Kmax ist, eine Vorschubgeschwindigkeit Fmax, die nicht die zulässige Beschleunigung α in sämtlichen Zonen der Kurve überschreitet, aus dem Ausdruck (27) erhalten.
Wie aus der Gleichung (26) hervorgeht, ist die Krümmung einer Spline-Kurve nicht in einem Block konstant, und nimmt entsprechend der Position innerhalb des Blocks einen unterschiedlichen Wert an, nämlich entsprechend einem Kurvenparameter. Um eine Geschwindigkeit mit einer normalen Beschleunigung zu erhalten, die nicht größer ist als ein zulässiger Wert an sämtlichen Befehlspunkten, ist es erforderlich, den Maximalwert der Krümmung innerhalb einer Kurvenzone zu kennen. Der Maximalwert der Krümmung wird wie nachstehend geschildert bestimmt.
Wenn eine Änderung von v(t) innerhalb eines Blocks klein ist, nimmt a(t) einen Maximalwert an einem Randpunkt einer Kurvenzone an (t = 0 oder 1). Daher wird angenommen, daß ein Maximalwert der Krümmung ein Wert an dem Randpunkt ist. Weiterhin ist an einem Randpunkt die Beschleunigung an einem Randpunkt im wesentlichen gleich der Normalbeschleunigung, und a(t) und v(t) liegen im wesentlichen senkrecht zueinander (ein Term für das innere Produkt in dem Ausdruck (25) ist annähernd Null), so daß die Beschleunigung a(t) statt der Normalbeschleunigung b(t) in dem Ausdruck (25) verwendet wird. Daher wird ein Maximalwert Kmax der Krümmung aus dem folgenden Ausdruck (29) bestimmt.
Kmax = max(K′(0), K′(1)) (29)
Fig. 7 zeigt den Ablauf der Verarbeitung in dem Geschwindigkeitssteuerabschnitt 3.
Zuerst wird im Schritt S301 eine Eingabe von Spline- Koeffizienten K₃, K₂, K₁ und K₀ von dem Spline- Kurvenfestlegungsabschnitt 2 vorgenommen, und wird ein maximaler Geschwindigkeitsbefehlswert F₀ von dem Befehlseingabeabschnitt 1 eingegeben.
Dann werden im Schritt S302 ein Schätzwert K′(0) für die Krümmung an einem Startpunkt und ein Schätzwert für die Krümmung K′(1) aus den folgenden Ausdrücken (31) und (32) erhalten, auf der Grundlage der Ausdrücke (22), (23) und (30).
Dann erhält man im Schritt S303 Kmax aus dem Ausdruck (29), und dann wird im Schritt S304 eine Vorschubgeschwindigkeit Fmax, die nicht die zulässige Beschleunigung α überschreitet, aus dem Ausdruck (28) berechnet.
Schließlich werden im Schritt S305 die maximalen Geschwindigkeitsbefehlswerte F₀ und Fmax über den nachstehenden Ausdruck (33) berechnet, und der kleinere dieser beiden Werte wird als Vorschubgeschwindigkeitsbefehlswert F verwendet.
F = min (F₀, Fmax) (33)
Durch die voranstehend geschilderte Verarbeitung kann ein Vorschubgeschwindigkeitsbefehlswert F, der nicht die Normalbeschleunigung überschreitet, innerhalb einer Spline- Kurvenzone und auch innerhalb des maximalen Geschwindigkeitsbefehlswerts erhalten werden.
Nachstehend erfolgt eine Beschreibung der Verarbeitung in dem Interpolationsberechnungsabschnitt 4. In dem Interpolationsberechnungsabschnitt 4 wird auf der Spline- Kurve, die von dem Spline-Kurvenfestlegungsabschnitt 2 eingegeben wird, ein Punkt (Interpolationspunkt), an welchem die Länge zum momentanen Punkt, wie in Fig. 8 gezeigt, eine festgelegte Interpolationslänge (Sollwert- Interpolationslänge) ist, in jedem Interpolationszyklus (Interpolationszeitraum) ΔT erhalten, entsprechend einem Geschwindigkeitsbefehlswert F, der von dem Geschwindigkeitssteuerabschnitt 3 eingegeben wird, und es wird ein Koordinatenwert für den Punkt an den Servotreiberabschnitt 5 ausgegeben.
Da wie voranstehend geschildert der Interpolationspunkt nicht exakt erhalten werden kann, wird der Interpolationspunkt dadurch erhalten, daß eine wiederholte Berechnung entsprechend der nachstehend angegebenen Befehlsfolge erfolgt, unter Verwendung einer Änderungsrate eines Kurvenparameters nahe dem Interpolationspunkt.
Die Sollwert-Interpolationslänge leng in einem Interpolationszyklus ΔT auf der Grundlage der befohlenen oder Sollwert-Vorschubgeschwindigkeit F wird durch folgenden Ausdruck gegeben
leng = F × ΔT (34)
Hierbei ist ein Fall angenommen, in welchem P(ti+1) sich um die Interpolationslänge leng von dem Punkt P(ti) aus auf der Spline-Kurve bewegt hat, für welche der momentane Parameter t (= ti) erhalten wird.
(Vorgang 1)
Es wird angenommen, daß ein Interpolationspunkt einen Zyklus vorher durch P(ti-1) gegeben ist. Eine Parameteränderung Δti und eine Bewegungsentfernung Li sind folgendermaßen definiert:
Δti = ti - ti-1 (35)
ΔLi = | P(ti) - P(ti-1)| (36)
und ein Parameter ti+1 für den Ziel- oder Sollwert-Punkt P(ti+1) wird zeitweilig folgendermaßen festgelegt.
(Vorgang 2)
Die Position P(ti+1) für einen Interpolationspunkt wird aus dem Wert ti+1 berechnet, der wie voranstehend geschildert zeitweilig festgelegt wird.
(Vorgang 3)
P(ti+1) legt den Parameter ti+1 wie voranstehend geschildert fest, so daß das Ausmaß der Bewegung von P(ti) aus gleich der Interpolationslänge leng ist, aber da sich das Verhältnis des Ausmaßes der Bewegung und der Parameteränderung entsprechend der Position auf der Kurve ändert, unterscheidet sich das tatsächliche Ausmaß der Bewegung von der Sollwert- Interpolationslänge, wie in Fig. 9 gezeigt ist. Daher wird das Verhältnis der Parameteränderung vs und des Ausmaßes der Bewegung korrigiert entsprechend dem tatsächlichen Ausmaß der Bewegung ΔLi+1 (= |P(ti+1) - P(ti| ) gegenüber der tatsächlichen Parameteränderung Δti+1 (= ti+1 - ti), und dann wird ein Parameter ti+1 für den Zielpunkt P(ti+1) erneut über den Ausdruck (38) erhalten.
Durch Wiederholung der voranstehenden Vorgänge 2 und 3 ist es möglich, einen Parameter entsprechend einem Sollwert für das Ausmaß der Bewegung exakt einzustellen.
Fig. 10 zeigt den Ablauf der Verarbeitung in dem Interpolationsberechnungsabschnitt 4 entsprechend dem voranstehend geschilderten Berechnungsprinzip.
Zuerst wird im Schritt S401 eine Sollwert-Interpolationslänge leng = F × ΔT aus einer vorgegebenen Vorschubgeschwindigkeit F und einem Interpolationszyklus ΔT erhalten.
Dann wird im Schritt S402 überprüft, ob das Bearbeitungswerkzeug in die Spline-Kurvenzone das erste Mal hineingelangt ist oder nicht, und wenn eine Interpolation auf der Spline-Kurve durchgeführt wurde, werden im Schritt S404,
unter Verwendung der Parameteränderungsrate Δti und des Ausmaßes der Bewegung Li, die in den Ausdrücken (35) und (36) verwendet werden, folgende Bedingungen angenommen, die durch die nachstehenden Ausdrücke festgelegt sind:
Δti+1 = Δti (39)
ΔLi+1 = ΔLi (40)
Wenn im Gegensatz hierzu in der momentanen Spline-Kurve eine Verarbeitung das erste Mal durchgeführt wird, kann man eine Änderungsrate eines früheren Parameters nicht verwenden, und wenn eine Blocklänge von Im im Schritt S403 verwendet wird, wird das Ausmaß der Bewegung von Im in einem Zeitraum erzielt, in welchem der Parameter t seinen Wert von 0 auf 1 ändert, so daß, wenn die durch folgende Ausdrücke gegebenen Bedingungen vorliegen:
Δti+i = 1 (41)
ΔLi+1 = Im (42)
ti gleich 0 wird.
Dann wird im Schritt S405 die Anzahl k an Wiederholungen anfangs auf 0 gesetzt (k = 0), und im Schritt S406 wird K + 1 in k geändert.
Im Schritt S407 wird ein Parameter ti+1 über folgenden Ausdruck erhalten:
Dann wird im Schritt S408 überprüft, ob der erhaltene Parameter ti+1 größer als 1 ist oder nicht, und wenn ti+1 größer oder gleich 1 ist (ti+1 1), dann wird im Schritt S411 ti+1 auf 1 eingestellt, und ein Endpunkt P(1) des Blocks wird als Zielpunkt angesehen.
Wenn im Gegensatz hierzu ti+1 kleiner als 1 ist (ti+1 < 1), so werden im Schritt S409 das aktuelle Ausmaß der Bewegung ΔLi+1 und die Parameteränderungsrate Δti+1 durch die Ausdrücke berechnet, die den voranstehenden Ausdrücken (35) und (36) entsprechen.
Dann wird im Schritt S410 ein Fehler zwischen dem tatsächlichen Ausmaß der Bewegung Li+1 und einer Sollwert- Interpolationsentfernung leng (|ΔLi+1 - leng|) ermittelt, und wenn der Fehler größer als ein zulässiger Wert ε₁ ist, wird im Schritt S406 die Verarbeitung dadurch wiederholt, daß ein Sprung zum Schritt S406 erfolgt.
Durch diese Wiederholungsschleife wird ein Verhältnis des Ausmaßes der Bewegung und der Parameteränderungsrate (Δti+1/ΔLi+1) im Schritt S407 korrigiert, und der Parameter tj+1 wird aktualisiert, so daß das Ausmaß der Bewegung ΔLi+1 sich näher an den Parameter ti+1 annähert.
Im Schritt S410 wird, wenn (|ΔLi+1 - leng|) kleiner als ε₁ ist, der Parameter Ti+1 an diesem Zeitpunkt als Parameter für den momentanen Interpolationszyklus angesehen, der die Sollwert-Interpolationslänge leng ergibt, und im Schritt S412 wird der Koordinatenwert P(ti+1) an den Servotreiberabschnitt 5 ausgegeben, und dann ist die Bearbeitung beendet.
Der voranstehend geschilderte Vorgang enthält eine Operation zur Bestimmung der Konvergenz, jedoch läßt sich in der Praxis eine ausreichende Genauigkeit dadurch erzielen, daß die Bearbeitungssequenz einmal oder zweimal wiederholt wird. Aus diesem Grund kann ein Sollwert-Interpolationspunkt mit hoher Geschwindigkeit innerhalb des Interpolationszyklus ΔT berechnet werden.
Fig. 11 zeigt die Ausführungsform 2 eines wesentlichen Abschnitts einer numerischen Steuervorrichtung gemäß der vorliegenden Erfindung. Es wird darauf hingewiesen, daß in Fig. 11 dieselben Bezugszeichen denselben Abschnitten zugeordnet sind, die entsprechenden Abschnitten in Fig. 1 entsprechen, und daß insoweit keine erneute Beschreibung erfolgt.
Bei dieser Ausführungsform wird ein zulässiger Fehler ε statt einer zulässigen Beschleunigung dem Geschwindigkeitssteuerabschnitt 3 zugeführt, welche eine interpolierte Geschwindigkeit F berechnet, die diesen zulässigen Fehler ε beibehält.
Auch bei der vorliegenden Ausführungsform wird die Bewegung eines Bearbeitungswerkzeugs entsprechend dem maximalen Geschwindigkeitsbefehlswert f₀ entlang der Spline-Kurve gesteuert, die in dem Spline-Kurvenfestlegungsabschnitt 2 festgelegt wird, jedoch wird in dem Interpolationsberechnungsabschnitt 4, in einer späteren Stufe der Verarbeitung, ein Interpolationspunkt in jedem Interpolationszyklus ΔT festgelegt, und ein Bearbeitungswerkzeug wird linear zwischen den Interpolationspunkten bewegt, so daß dann, wenn der Krümmungsradius einer Spline-Kurve klein ist, wie in Fig. 12 gezeigt, manchmal ein Positionsfehler, der einen zulässigen Fehler übersteigt, zwischen einer interpolierten geraden Linie und einer Kurve erzeugt werden kann.
Die Geschwindigkeitssteuervorrichtung 3 begrenzt einen Geschwindigkeitsbefehlswert, so daß der Fehler zwischen einer interpolierten geraden Linie und einer Spline-Kurve in einer Zone nicht den zulässigen Wert ε überschreitet.
Wenn ein Bogen mit einer Länge L über einer Kurve mit einem Krümmungsradius ρ ausgebreitet wird, ergibt sich die Maximalentfernung d zwischen diesem Bogen und der Kurve gemäß Fig. 13 aus folgendem Ausdruck:
Aus diesem Grund wird der Maximalwert Imax der Bogenlänge, bei welcher der Fehler in einem Fall, in welchem eine Kurve durch einen Bogen approximiert wird, nicht größer als ε ist, durch folgenden Ausdruck (45) gegeben.
Daher kann in einem Fall, in welchem eine Spline-Kurve mit dem minimalen Krümmungsradius ρmin (maximale Krümmung K) in einem Interpolationszyklus ΔT interpoliert und ein zulässiger Fehler ε angenommen wird, angenommen werden, daß die interpolierte Entfernung Imax ist, die sich aus dem Ausdruck (45) ergibt, und dann wird die Vorschubgeschwindigkeit Fmax durch folgenden Ausdruck gegeben.
Fig. 14 zeigt den Verarbeitungsablauf in dem Geschwindigkeitssteuerabschnitt 3 bei der Ausführungsform 2 der vorliegenden Erfindung.
Die Schritte S501, S502, S503 sind dieselben wie die Schritte S301, S302 und S303 von Fig. 9 (dem Ablauf der Bearbeitung in dem Geschwindigkeitssteuerabschnitt 3 bei der Ausführungsform 1), und im Schritt S503 wird die maximale Krümmung Kmax für eine Spline-Kurvenzone erhalten, und im Schritt S504 wird eine Vorschubgeschwindigkeit Fmax, die nicht den zulässigen Fehler ε überschreitet, aus dem voranstehenden Ausdruck (46) berechnet.
Schließlich wird im Schritt S305 der kleinere Wert von dem maximalen Geschwindigkeitsbefehlswert F₀ und Fmax als Vorschubgeschwindigkeitsbefehlswert F im folgenden Ausdruck verwendet.
F = min (F₀, Fmax) (47)
Durch die voranstehend geschilderte Bearbeitungsfolge kann ein Geschwindigkeitsbefehlswert F mit einem Interpolationsfehler, der nicht den zulässigen Fehler überschreitet, innerhalb eines maximalen Geschwindigkeitsbefehlswerts in einer Spline-Kurvenzone erhalten werden.
(Ausführungsform 3)
Fig. 15 zeigt die Ausführungsform 3 eines wesentlichen Abschnitts einer numerischen Steuervorrichtung gemäß einer weiteren Ausführungsform der vorliegenden Erfindung. Es wird darauf hingewiesen, daß entsprechende Abschnitte wie in Fig. 1 mit den gleichen Bezugszeichen bezeichnet sind, und daß insoweit keine erneute Beschreibung erfolgt.
Bei dieser Ausführungsform holt sich der Befehlseingabeabschnitt 1 das Befehlspunktfeld Pj (j = 1, 2, . . ., n) auf dem Kurvenpfad sowie den maximalen Geschwindigkeitsbefehlswert F₀ wie im Falle der Ausführungsform 1, und gibt, zusätzlich zu dem Befehlspunktfeld Pj, der Entfernung cj zwischen benachbarten Befehlspunkten, und dem Einheitsvektor uj, Identifizierungsmarken FLAG und VFLAG aus, durch Feststellung eines Abschnitts, der eine Zone mit gerader Linie in dem Durchgangspunktfeld Pj (i = 1, 2, . . ., n) ist. Wenn die Zone mit einer geraden Linie vor oder nach dem Startpunkt oder Endpunkt vorhanden ist, dann werden Einheitsvektoren us und ue der geraden Linie ausgegeben.
Die voranstehend geschilderten Daten werden von dem Befehlseingabeabschnitt 1 an den Spline- Kurvenfestlegungsabschnitt 2 ausgegeben, der Daten für einen Abschnitt mit einer geraden Linie sowie für einen Spline- Kurvenabschnitt erzeugt, der sich glatt hieran anschließt (Spline-Koeffizient).
Im allgemeinen, wenn es einen Abschnitt mit einer geraden Linie gibt, in welchem die Fortschreitungsrichtung des Punktfeldes ständig gleich ist, in dem Durchgangspunktfeld Pj (j = 1, 2, . . ., n), welches eine Spline-Kurve wie in Fig. 16A bildet, tritt es nicht auf, daß die Spline-Kurve eine gerade Linie wird, da der Abschnitt mit einer geraden Linie durch den ihm folgenden Kurvenabschnitt beeinflußt wird, so daß eher eine Störung oder Verzerrung erzeugt wird.
Bei der vorliegenden Erfindung werden folgende Abschnitte als Abschnitt mit einer geraden Linie erkannt:
  • (1) Ein Abschnitt, in welchem zwei oder mehr Blöcke von einem Startpunkt eines Punktfeldes in dieselbe Richtung zeigen,
  • (2) ein Abschnitt, in welchem zwei oder mehr Blöcke bis zu einem Endpunkt eines Punktfeldes in dieselbe Richtung zeigen;
  • (3) ein Abschnitt, der in einem mittleren Abschnitt eines Punktfeldes liegt, und in welchem drei oder mehr Blöcke in dieselbe Richtung zeigen,
und ein Startpunkt, ein Endpunkt und ein Punktefeld, die in diesen Abschnitten mit einer geraden Linie enthalten sind, werden als Punktfeld angesehen, das eine Spline-Kurve bildet. Tangentenvektoren für den Startpunkt P₁ und den Endpunkt Pn eines Punktfeldes, das eine Spline-Kurve bildet, werden berechnet, wenn kein Abschnitt mit einer geraden Linie vor dem Startpunkt und auch nicht hinter dem Endpunkt ist, und zwar über die folgenden Ausdrücke, unter der Annahme, daß die Krümmung an dem Endpunkt gleich 0 ist, wie durch die Ausdrücke (9) und (10) bei der Ausführungsform 1 ausgedrückt.
Im Gegensatz hierzu werden, unter der Annahme, daß ein Einheitsvektor dann, wenn ein Abschnitt mit einer geraden Linie vor dem Startpunkt vorhanden ist, die Richtung der geraden Linie durch us anzeigt, oder ein Einheitsvektor dann, wenn eine gerade Linie nach dem Endpunkt vorhanden ist, die Richtung der geraden Linie als ue anzeigt, die Tangentenvektoren q₁[k+1] und qn [k+1] für einen Startpunkt bzw. einen Endpunkt durch die Ausdrücke (3a), (3b) erhalten.
q₁[k+1] = us (48a)
qn [k+1] = ue (48b)
Nachstehend erfolgt eine Beschreibung der Berechnungen in dem Befehlseingabeabschnitt 1 und in dem Spline- Kurvenfestlegungsabschnitt 1 unter Bezugnahme auf das voranstehend geschilderte Prinzip der Ermittlung einer Spline-Kurve.
Fig. 17 zeigt allgemein den Ablauf der Verarbeitung in dem Befehlseingabeabschnitt 1, und wenn ein Befehl zur Spline- Interpolation in dem Befehlseingabeabschnitt 1 eingegeben wird, beginnt dieser Bearbeitungsablauf.
Zuerst wird im Schritt S601 j anfänglich auf 1 eingestellt, und im Schritt S602 wird die Marke VFLAG, die das Vorhandensein eines Abschnitts mit einer geraden Linie anzeigt, anfangs auf OFF (AUS) eingestellt. Die Marke VFLAG zeigt an, daß kein Abschnitt mit einer geraden Linie vorhanden ist, wenn sie OFF ist, und daß ein Abschnitt mit einer geraden Linie vorhanden ist, wenn sie ON (EIN) ist.
Im Schritt S603 werden Koordinatenwerte für die drei Befehlspunkte P₁, P₂ und P₃ vom Startpunkt aus eingegeben, dann erhält man eine Entfernung c2,von dem Befehlspunkt P₁ zum Befehlspunkt P₂ sowie eine Entfernung c₃ von dem Befehlspunkt P₃, und erhält man den jeweiligen Einheitsvektor u₂ bzw. u₃ aus dem Ausdruck (7). Dann wird u₂ mit u₃ verglichen, um die Linearität zu überprüfen.
Wenn u₂ gleich u₃ ist, wird im Schritt S604 festgestellt, daß die Linearität vorhanden ist, dann geht die Systemsteuerung zum Schritt S605 über, die Marke VFLAG wird auf ON geschaltet, und der Einheitsvektor us, der die Richtung der geraden Linie angibt, wird auf u₂ eingestellt.
Wenn im Gegensatz hierzu u₂ nicht gleich u₃ ist, so wird festgestellt, daß keine Linearität vorhanden ist, und die Systemsteuerung geht zum Schritt S614 über. In diesem Fall behält die Marke VFLAG den OFF-Zustand bei.
Wenn die Systemsteuerung zum Schritt S605 übergeht, dann wird im Schritt S606 die Identifizierungsmarke FLAG auf FLAG (gleich einer geraden Linie) eingestellt, und werden ein Startpunkt P₁, ein Endpunkt P₂, eine Entfernung c₂, ein Einheitsvektor u₂ (eine Zone von P₁ bis P₂), sowie ein Startpunkt P₂, ein Endpunkt P₃, eine Entfernung c₃, ein Einheitsvektor u₃ (eine Zone von P₂ nach P₃) an den Spline- Kurvenfestlegungsabschnitt 2 ausgegeben.
Dann wird im Schritt S607 j + 2 auf j aktualisiert (momentan ist j gleich 3 (j = 3)) . Im Schritt S608 wird überprüft, ob der Befehlspunkt Pj ein Endpunkt ist oder nicht, und wenn der Befehlspunkt Pj ein Endpunkt ist, so wird die Bearbeitung beendet, und wenn der Befehlspunkt Pj kein Endpunkt ist, geht die Systemsteuerung zum Schritt S609 und den folgenden Schritten über.
Im Schritt S609 wird j + 1 auf j aktualisiert, und im Schritt S610 wird ein Koordinatenwert für den Befehlswert Pj eingegeben, und es werden eine Entfernung cj von dem Befehlspunkt Pj-1 zum Befehlspunkt Pj sowie ein Einheitsvektor uj erhalten. Dann wird im Schritt S611 überprüft, ob der Einheitsvektor uj gleich dem Einheitsvektor us ist, der die Richtung der geraden Linie bis zu diesem Punkt anzeigt, oder nicht, und wird überprüft, ob Linearität vorhanden ist oder nicht, entsprechend dem Ergebnis der voranstehenden Ermittlung.
Im Schritt S611 wird, wenn uj gleich us ist, festgestellt, daß die Linearität weitergeht, und die Systemsteuerung geht zum Schritt S612 über, die Identifizierungsmarke FLAG wird auf FLAG (gleich einer geraden Linie) eingestellt, und der Startpunkt Pj-1, der Endpunkt Pj, die Entfernung cj, der Einheitsvektor uj (eine Zone von Pj-1 bis Pj) werden an den Spline-Kurvenfestlegungsabschnitt 2 ausgegeben, und dann verzweigt die Systemsteuerung zum Schritt S608.
Bei der voranstehend geschilderten Bearbeitung werden durch die Schleife mit dem Schritt S608 und den folgenden Vorgängen Zonen herausgezogen, in welchen zwei oder mehr Blöcke von einem Startpunkt des Punktfeldes aus in dieselbe Richtung zeigen, und solange Zonen, die in dieselbe Richtung zeigen, weitergehen, wird jeder Block als eine Zone mit einer geraden Linie angesehen, und wird an den Spline- Kurvenfestlegungsabschnitt 2 ausgegeben.
In der Schleife wird im Schritt S611, wenn jj nicht gleich us ist, im Schritt S613 j-1 auf j aktualisiert, und die Systemsteuerung verzweigt zum Schritt S603, und es wird erneut das Herausziehen eines Abschnitts mit einer geraden Linie durchgeführt, unter Annahme des Befehlspunktes Pj als Startpunkt.
Wenn bei der Ermittlung im Schritt S604 festgestellt wird, daß keine Linearität vorhanden ist (wenn uj+1 nicht gleich uj+2 ist), so geht die Systemsteuerung zur Bearbeitung eines Spline-Kurvenabschnitts im Schritt S614 und den folgenden Schritten über.
Im Schritt S614 wird j + 1 auf j aktualisiert, und im Schritt 615 wird die Ausgabebearbeitung für den Spline- Kurvenabschnitt durchgeführt. In der Schleife vom Schritt S614 bis zum Schritt S620 werden Befehlspunkte nacheinander eingegeben, die jeweils eine Spline-Kurve bilden, jedoch werden im Schritt S615 Daten, die den folgenden Inhalt aufweisen, an den Spline-Kurvenabschnitt 2 ausgegeben.
  • (1) Wenn der Befehlspunkt Pj der vierte Punkt von einem Startpunkt der Spline-Kurve aus ist:
    FLAG = (eine den Startpunkt enthaltende Spline-Kurve)
    Koordinaten für die Befehlspunkte: Pj-3, Pj-2, Pj-1 und Pj
    Entfernung zwischen den Befehlspunkten: Cj-2, cj-1, cj
    Einheitsvektor zwischen Befehlspunkten: uj-2, uj-1, uj
    VFLAG (ON/OFF): Tangentenvektor us, wenn VFLAG gleich ON ist.
  • (2) Wenn der Befehlspunkt Pj der fünfte Punkt oder ein späterer Punkt gegenüber dem Startpunkt der Spline-Kurve ist:
    FLAG = (Spline-Kurve)
    Koordinate für den Befehlspunkt: Pj
    Entfernung zwischen Befehlspunkten: cj
    Einheitsvektor zwischen Befehlspunkten: uj.
Im Schritt S616 wird überprüft, ob der Befehlspunkt Pj der vierte Punkt gegenüber einem Startpunkt der Spline-Kurve ist oder nicht, und wenn dies der Fall ist, also mit anderen Worten eine Spline-Kurve, die einen Startpunkt enthält, im Schritt S615 ausgegeben wurde, so wird die Marke VFLAG auf OFF gesetzt.
Im Schritt S618 wird überprüft, ob der Befehlspunkt Pj ein Endpunkt eines eingegebenen Punktfeldes ist oder nicht, und wenn der Befehlspunkt Pj ein Endpunkt ist, werden FLAG = (Endpunkt einer Spline-Kurve) und VFLAG (= OFF) an den Spline-Kurvenfestlegungsabschnitt 2 ausgegeben, und die Bearbeitung wird beendet.
Ist der Befehlspunkt Pj kein Endpunkt eines eingegebenen Punktfeldes, so wird im Schritt S619 die Linearität des Befehlspunktes Pj und folgender Punkte überprüft. Hierbei werden bis zu drei Befehlspunkte für Pj und folgende Punkte eingegeben, und wenn eine der nachstehenden Bedingungen (1) oder (2) erfüllt ist, so wird festgestellt, daß Linearität existiert.
  • (1) Einheitsvektor uj+1 = uj+2 = uj+3
  • (2) Einheitsvektor uj+1 = uj+2,
und gleichzeitig ist der Befehlspunkt Pj+2 ein Endpunkt eines eingegebenen Punktfeldes.
Im Schritt S620 wird überprüft, ob Linearität bei dem Befehlspunkt Pj und den folgenden Punkten vorhanden ist, und wenn keine Linearität vorhanden ist, geht die Systemsteuerung zum Schritt S614 über, und es wird die Ausgabe an den Spline- Kurvenabschnitt fortgesetzt. Wenn im Gegensatz hierzu Linearität vorhanden ist, wird im Schritt S621 die Marke VFLAG auf ON geschaltet, und wird der Einheitsvektor us, der die Richtung der geraden Linie anzeigt, auf uj+1 eingestellt.
Dann werden im Schritt S622 die Identifizierungsmarke FLAG = (Endpunkt einer Spline-Kurve), die Marke VFLAG (= ON), und der Tangentenvektor us an den Spline- Kurvenfestlegungsabschnitt 2 ausgegeben, und die Bearbeitung wird beendet. Dann geht das Steuersystem zum Schritt S606 über.
Im Schritt S606 und in den folgenden Schritten werden, wenn der herausgezogene geradlinige Abschnitt sich bis zum Endpunkt erstreckt, im Schritt S606 und im Schritt S612 sämtliche geradlinigen Blöcke ausgegeben, im Schritt S608 wird ein Endpunkt festgestellt, und die Bearbeitung wird beendet. Wenn der geradlinige Abschnitt auf seinem Weg eine Unterbrechung zeigt und erneut ein Kurvenabschnitt beginnt, verzweigt die Systemsteuerung vom Schritt S611 zum Schritt S615, und im Schritt S603 und den folgenden Schritten wird die Ausgabeverarbeitung für eine neue Kurve durchgeführt.
Nachstehend erfolgt unter Bezugnahme auf die Fig. 18 bis 22 eine Beschreibung der Bearbeitung in dem Spline- Kurvenfestlegungsabschnitt 2.
Wie voranstehend geschildert, gibt es folgende vier Formen von Daten, die von dem Befehlseingabeabschnitt 1 in den Spline-Kurvenfestlegungsabschnitt 2 eingegeben werden.
  • (A) FLAG = (gerade Linie) Startpunkt Pj-1, Endpunkt Pj, Entfernung cj, Einheitsvektor uj.
  • (B) FLAG = (Spline-Kurve mit einem Startpunkt) Koordinate für den Befehlspunkt: P₁, P₂, P₃, P₄ Entfernung zwischen Befehlspunkten: c₂, c₃, c₄ Einheitsvektor zwischen Befehlspunkten: u₂, u₃, u₄ VFLAG (ON/OFF): Tangentenvektor us, wenn VFLAG gleich ON ist.
  • (C) FLAG = (Spline-Kurve) Koordinate für den Befehlspunkt: Pj Entfernung zwischen Befehlspunkten: cj Einheitsvektor zwischen Befehlspunkten: uj.
  • (D) FLAG = (Endpunkt einer Spline-Kurve) VFLAG (= ON, OFF): Tangentenvektor us, wenn VFLAG gleich ON ist.
Wie aus dem Flußdiagramm von Fig. 18 hervorgeht, verzweigt die Systemsteuerung zu einem der Verarbeitungsvorgänge A bis D in dem Spline-Kurvenfestlegungsabschnitt 2 entsprechend der Art der eingegebenen Marke FLAG.
Fig. 19 zeigt den Bearbeitungsfluß A im Falle von FLAG = (gerade Linie).
Bei der Verarbeitung A werden im Schritt S801 ein Startpunkt Pj-1, ein Endpunkt Pj, eine Entfernung cj und ein Einheitsvektor uj eingegeben, und im Schritt S802 wird ein Spline-Kurvenkoeffizient wie nachstehend angegeben, festgelegt.
K₀ = Pj-1 (49a)
K₁ = cj uj (49b)
K₂ = 0 (49c)
K₃ = 0 (49d)
Dann wird die Spline-Kurve P(t) in der Zone von Pj-1 bis pj = K₃ t³ + K₂ t² + K₁ t und K₀ (Ausdruck 18) wie nachstehend angegeben geändert:
P(t) = cjuj + Pj-1 (0≦t≦1) (50)
und wenn t seinen Wert von 0 auf 1 ändert, wird eine gerade Linie von dem Befehlspunkt Pj-1 bis zum Befehlspunkt Pj erhalten.
Fig. 20 zeigt den Fluß der Bearbeitung B im Falle von FLAG = (Spline-Kurve, die einen Startpunkt enthält).
Bei der Verarbeitung B werden im Schritt S901 Koordinaten für Befehlspunkte P₁, P₂, P₃, P₄; Entfernungen zwischen Befehlspunkten c₂, c₃, c₄; Einheitsvektoren zwischen Befehlspunkten u₂, u₃, u₄; VFLAG; und der Tangentenvektor us eingegeben.
Dann wird im Schritt S902 ein Tangentenvektor q₂[1] aus dem Ausdruck (8) durch den nachstehenden Ausdruck (60) erhalten.
Dann wird ein Tangentenvektor q₁[1] für den Startpunkt P₁ erhalten, jedoch wird im Schritt S903 die Marke VFLAG überprüft, und wenn VFLAG gleich OFF ist, wird aus dem Ausdruck (8) und mit Hilfe des folgenden Ausdrucks
q₁¹ erhaltenen (Schritt S904).
Wenn VFLAG gleich ON ist, so wird q₁[1] auf us eingestellt, unter Verwendung des eingegebenen Tangentenvektors us, aus dem Ausdruck (48a).
Im Schritt S906 wird ein Tangentenvektor q₁[1]] für den Befehlspunkt P₃ durch den Ausdruck (62) zu erhalten, und im Schritt S907 wird ein Tangentenvektor q₂[2] für den Befehlspunkt P₂ aus dem Tangentenvektor q₃[1] und dem Tangentenvektor q₁[1] über den Ausdruck (63) erhalten.
Dann wird ein Tangentenvektor q₁[2]] für den Startpunkt P₁ erhalten, aber ebenso wie in dem Falle, in welchem q₁[1] erhalten wird, wird die Marke VFLAG überprüft (im Schritt S908), und wenn VFLAG gleich OFF ist, ergibt sich aus folgendem Ausdruck
q₁[2] (Schritt S909), wogegen dann, wenn VFLAG gleich ON ist, q₁[2] auf us eingestellt wird (Schritt S910).
Durch die voranstehend geschilderte Bearbeitung werden, da Tangentenvektoren q₁[2], q₂[2] für die beiden Durchgangspunkte P₁, P₂ von einem Startpunkt der Spline-Kurve aus festgelegt wurden, im Schritt S911 Koeffizienten K₀, K₁, K₂ und K₃ für jeden Term in der Spline-Kurve P(t) = K₃t³ + K₂t² + K₁t + K₀ durch die Ausdrücke (17a) bis (17d) zu erhalten, wobei j in jedem Ausdruck durch 4 ersetzt wird, um eine Spline-Kurve in einer Zone von dem Durchgangspunkt P₁ zum Durchgangspunkt P₂ festzulegen.
Fig. 21 zeigt den Ablauf der Bearbeitung C in einem Fall, in welchem gilt: FLAG = (Spline-Kurve).
Bei der Bearbeitung C wird, mit der Bearbeitung bis zum vorherigen Zyklus, da die Bearbeitung für den mit A in Fig. 23A bezeichneten Abschnitt begonnen hat, bei dieser Bearbeitung C jeder Term im Abschnitt B in Fig. 23A berechnet, und wird eine Spline-Kurve für eine Zone festgelegt, die von Pj-3 bis Pj-2 reicht.
Zuerst wird im Schritt S1001 ein Koordinatenwert Pj für den Befehlspunkt, eine Entfernung cj zwischen Befehlspunkten, und ein Vektor uj zwischen Befehlspunkten eingegeben.
Im Schritt S1002 wird ein Tangentenvektor qj-1 [1] für den Befehlspunkt Pj-1 durch den Ausdruck (65) eingegeben.
Weiterhin erhält man im Schritt S1003 einen Tangentenvektor qj-2 [2] für den Befehlspunkt Pj-2 durch den folgenden Ausdruck (66):
Durch die voranstehend geschilderte Bearbeitung werden, da Tangentenvektoren qj-3 [2], qj-2 [2] für die Durchgangspunkte Pj-3, Pj-2 festgelegt sind, im Schritt S1004 Spline-Koeffizienten K₀, K₁, K₂ und K₃ durch die Ausdrücke (17a) bis (17d) berechnet, um eine Spline-Kurve in einer Zone von Pj-3 bis Pj-2 festzulegen.
Fig. 22 zeigt den Ablauf der Bearbeitung D in einem Fall, in welchem FLAG = (Endpunkt der Spline-Kurve) ist. Bei dieser Bearbeitung D -wird kein Durchlaufpunkt eingegeben, und da der durch A in Fig. 23B bezeichnete Abschnitt durch den vorherigen Zyklus festgelegt wurde, wird eine Spline-Kurve festgelegt, die Zonen von Pn-2 bis Pn-1 und von Pn-1 bis Pn entspricht.
Zuerst wird im Schritt S1101 eine Marke VFLAG sowie ein Tangentenvektor us eingegeben.
Dann wird ein Tangentenvektor qn [1] für den Endpunkt Pn erhalten, jedoch wird die Marke VFLAG überprüft (Schritt S1102), und wenn VFLAG gleich OFF ist, wird der Tangentenvektor qn [1] aus dem Ausdruck (10) über den Folgenden Ausdruck (67) berechnet (Schritt 1103).
und wenn VFLAG gleich ON ist, wird qn [1]] auf us eingestellt, unter Verwendung des Tangentenvektors us, über den Ausdruck (48b) (Schritt S1104).
Dann wird im Schritt S1105 ein Tangentenvektor qn-1 [2] für den Befehlspunkt Pn-1 erhalten.
Im Schritt S1106 wird eine Spline-Kurve P(t) für eine Zone von dem Befehlspunkt Pj-3 zum Befehlspunkt Pj-2 durch den Ausdruck (18) erhalten, in dem j in den Ausdrücken (17a) bis (17b) durch n+1 ersetzt wird.
Schließlich wird eine Spline-Kurve für die letzte Zone von dem Befehlspunkt Pn-1 bis zum Befehlspunkt Pn berechnet. Um einen Tangentenvektor qn [2] für den Endpunkt Pn zu erhalten, wie in dem Falle, in welchem qn [1] berechnet wird, wird die Marke VFLAG überprüft (Schritt S1107), und wenn VFLAG gleich OFF ist, ergibt sich aus dem folgenden Ausdruck:
qn [2] (Schritt S1108), und wenn VFLAG gleich ON ist, wird qn [2] auf us eingestellt (Schritt S1109).
Dann wird im Schritt S1110 eine Spline-Kurve P(t) für eine Zone von dem Befehlspunkt Pj-3 zum Punkt Pj-2 durch den Ausdruck (18) berechnet, durch Ersetzen j in den Ausdrücken (17a) bis (17d) durch n+2.
Wie deutlich aus der voranstehenden Beschreibung der Bearbeitung hervorgeht, wird bei der Ausführungsform 3 ein Abschnitt, in welchem die Ausbreitungsrichtung identisch ist, als ein geradliniger Abschnitt von einem Befehlspunktfeld abgetrennt, das eine Kurve bildet, und werden ein Ausdruck für eine gerade Linie als Ausdruck für eine erste Dimension, in welcher ein Koeffizient für die dritte Dimension und jener für die zweite Dimension in der Spline-Kurve auf Null (0) gesetzt werden, an den geradlinigen Abschnitt gegeben, um eine Verzerrung der Form zu entfernen.
In bezug auf einen Kurvenabschnitt wird die Verbindung zwischen geraden Abschnitten glatt ausgebildet, und zwar dadurch, daß ein Tangentenvektor an einem Endpunkt so ausgebildet wird, daß er mit einem Richtungsvektor in dem benachbarten geradlinigen Abschnitt übereinstimmt.
Zwar wurde die Erfindung unter Bezugnahme auf eine spezifische Ausführungsform zum Zwecke einer vollständigen und klaren Offenbarung beschrieben, jedoch sollen die beigefügten Patentansprüche hierauf nicht beschränkt sein, sondern sollen sämtliche Modifikationen und alternativen Konstruktionen umfassen, die einem Fachmann auf diesem Gebiet angesichts des Wesens und der Umfang der vorliegenden Erfindung auffallen, die sich aus der Gesamtheit der vorliegenden Anmeldeunterlagen ergeben.

Claims (17)

1. Numerische Steuervorrichtung mit einer Spline- Interpolationsfunktion, mit:
einer Spline-Kurvenfestlegungsvorrichtung zur Festlegung einer Spline-Kurve, welche glatt sämtliche Durchgangspunkte verbindet, die diskret auf einer gewünschten, gekrümmten Bearbeitungsbahn vorhanden sind, durch Ausführung approximativer Berechnungen für einen Tangentenvektor jedes Durchgangspunkts eine frei wählbare Anzahl an Malen;
einer Geschwindigkeitssteuervorrichtung zur Berechnung einer Bewegungsgeschwindigkeit eines Werkzeugs auf solche Weise, daß dann, wenn sich das Werkzeug entsprechend der Spline-Kurve bewegt, die von der Spline-Kurvenfestlegungsvorrichtung festgelegt wurde, die Normalbeschleunigung innerhalb eines zulässigen Bereichs liegt; und
einer Interpolationsvorrichtung zur Berechnung des Ausmaßes der Bewegung auf der Spline-Kurve pro Zeiteinheit für die Interpolation.
2. Numerische Steuervorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Geschwindigkeitssteuervorrichtung den maximalen Abstand zwischen einer geraden Linie und einer Spline-Kurve entsprechend einer maximalen Krümmung in einer Spline- Kurvenzone erfaßt, und die Bewegungsgeschwindigkeit eines Werkzeugs entsprechend der maximalen Krümmung berechnet wird, so daß ein maximaler Abstand zwischen der geraden Linie und der Spline-Kurve innerhalb eines zulässigen Bereichs liegt.
3. Numerische Steuervorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Spline- Kurvenfestlegungsvorrichtung einen Tangentenvektor für jeden Durchgangspunkt dadurch erhält, daß Approximationsberechnungen eine frei wählbare Anzahl an Malen für einen Tangentenvektor eines mittleren zweiten Punkts wiederholt werden, aus einer Positionsbeziehung zwischen aufeinander folgenden drei Durchgangspunkten, und auch aus Tangentenvektoren für den ersten und dritten Punkt.
4. Numerische Steuervorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Interpolationsvorrichtung das Ausmaß der Bewegung berechnet, wenn eine Änderungsrate eines Spline-Parameters pro Zeiteinheit für die Interpolation berechnet wird, und zwar dadurch, daß zuerst Koordinatenwerte bezüglich der Spline-Kurve unter Verwendung einer Parameteränderungsrate während der vorherigen Zeiteinheit für die Interpolation als temporäre Parameteränderungsrate erhalten werden, dann eine Berechnung bezüglich der Konvergenz durchführt, so daß dieses Ausmaß der Bewegung mit einem Sollausmaß für die Bewegung übereinstimmt, und eine echte Parameteränderungsrate durch die Berechnung bezüglich der Konvergenz berechnet.
5. Numerische Steuervorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Interpolationsvorrichtung das Ausmaß der Bewegung berechnet, wenn eine Änderungsrate eines Spline-Parameters pro Zeiteinheit für die Interpolation berechnet wird, und zwar dadurch, daß zuerst Koordinatenwerte bezüglich der Spline-Kurve unter Verwendung einer Parameteränderungsrate während der vorherigen Zeiteinheit für die Interpolation als temporäre Parameteränderungsrate erhalten wird, dann die Berechnung für eine Parameteränderungsrate eine frei wählbare Anzahl an Malen wiederholt, so daß das Ausmaß der Bewegung mit einem Sollausmaß der Bewegung übereinstimmt, und eine echte Parameteränderungsrate durch diese Wiederholung der Berechnung berechnet.
6. Numerische Steuervorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Spline- Kurvenfestlegungsvorrichtung in Beziehung auf Durchgangspunkte, die diskret auf der gewünschten, gekrümmten Bearbeitungsbahn vorhanden sind, eine Zone eines Punktfeldes erkennt, in welchem eine festgelegte Anzahl an Blöcken oder mehr von einem Startpunkt aus in einer Richtung weitergehen, eine Zone eines Punktfeldes, in welchem eine vorbestimmte Anzahl an Blöcken oder mehr vor einem Endpunkt in einer Richtung weitergehen, oder eine Zone eines Punktfeldes, in welchem eine festgelegte Anzahl an Blöcken oder mehr, die nicht den Startpunkt oder einen Endpunkt enthalten, in einer Richtung als geradlinige Zone weitergehen, sowie eine andere Zone eines Punktfeldes als eine Spline-Kurvenzone.
7. Numerische Steuervorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß die Spline- Kurvenfestlegungsvorrichtung dann, wenn sie eine Spline- Kurve in einer Spline-Kurvenzone festlegt, die als geradlinige Zone abgetrennt ist, einen Tangentenvektor für eine Spline-Kurve an einem Grenzpunkt zwischen einer geradlinigen Zone und einer Spline-Kurvenzone als einen Einheitsvektor angibt, der die Richtung der geradlinigen Zone angibt.
8. Numerische Steuervorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß die Spline- Kurvenfestlegungsvorrichtung eine gerade Linie dadurch angibt, daß sie einen tertiären Koeffizienten und einen sekundären Koeffizienten einer Spline-Kurve in einer geradlinigen Zone jeweils auf Null setzt.
9. Numerische Steuervorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Geschwindigkeitssteuervorrichtung eine Bewegungsgeschwindigkeit eines Werkzeugs in einer Spline-Kurvenzone so einstellt, daß die Normalbeschleunigung an Randpunkten der Spline- Kurvenzone innerhalb eines zulässigen Bereichs liegt.
10. Numerische Steuervorrichtung mit einer Spline- Interpolationsfunktion, mit:
einer Spline-Kurvenfestlegungsvorrichtung zur Festlegung einer Spline-Kurve, welche sämtliche Durchgangspunkte glatt verbindet, die diskret auf einer gewünschten, gekrümmten Bearbeitungsbahn angeordnet sind, durch Ausführung von Approximationsberechnungen für einen Tangentenvektor jedes Durchgangspunkts eine frei wählbare Anzahl an Malen;
einer Geschwindigkeitssteuervorrichtung zur Berechnung einer Bewegungsgeschwindigkeit eines Werkzeugs auf solche Weise, daß dann, wenn sich das Werkzeug auf einer geraden Linie entsprechend der Spline-Kurve bewegt, die von der Spline-Kurvenfestlegungsvorrichtung festgelegt wurde, ein maximaler Abstand zwischen der geraden Linie und der Spline-Kurve innerhalb eines zulässigen Bereichs bleibt; und
einer Interpolationsvorrichtung zur Berechnung des Ausmaßes der Bewegung auf der Spline-Kurve pro Zeiteinheit für die Interpolation.
11. Numerische Steuervorrichtung nach Anspruch 10, dadurch gekennzeichnet, daß die Geschwindigkeitssteuervorrichtung den maximalen Abstand zwischen einer geraden Linie und einer Spline-Kurve entsprechend einer maximalen Krümmung in einer Spline- Kurvenzone erfaßt, und daß eine Bewegungsgeschwindigkeit eines Werkzeugs entsprechend der maximalen Krümmung berechnet wird, so daß ein maximaler Abstand zwischen der geraden Linie und der Spline-Kurve innerhalb eines zulässigen Bereichs liegt.
12. Numerische Steuervorrichtung nach Anspruch 10, dadurch gekennzeichnet, daß die Spline- Kurvenfestlegungsvorrichtung einen Tangentenvektor für jeden Durchgangspunkt dadurch erhält, daß sie Approximationsberechnungen eine frei wählbare Anzahl an Malen für einen Tangentenvektor eines mittleren zweiten Punkts aus einer Positionsbeziehung zwischen aufeinanderfolgenden drei Durchgangspunkten wiederholt, und auch aus Tangentenvektoren für den ersten und dritten Punkt.
13. Numerische Steuervorrichtung nach Anspruch 10, dadurch gekennzeichnet, daß die Interpolationsvorrichtung das Ausmaß der Bewegung berechnet, wenn sie eine Änderungsrate eines Spline-Parameters pro Zeiteinheit für die Interpolation berechnet, indem sie zuerst Koordinatenwerte auf der Spline-Kurve unter Verwendung einer Parameteränderungsrate während einer vorherigen Zeiteinheit für die Interpolation als temporäre Parameteränderungsrate erhält, dann die Berechnung bezüglich der Konvergenz durchführt, so daß dieses Ausmaß der Bewegung mit einem Sollausmaß der Bewegung übereinstimmt, und eine echte Parameterrate durch die Berechnung bezüglich der Konvergenz berechnet.
14. Numerische Steuervorrichtung nach Anspruch 10, dadurch gekennzeichnet, daß die Interpolationsvorrichtung das Ausmaß der Bewegung berechnet, wenn sie eine Änderungsrate eines Spline-Parameters pro Zeiteinheit für die Interpolation berechnet, indem sie zuerst Koordinatenwerte auf der Spline-Kurve unter Verwendung einer Parameteränderungsrate während einer vorherigen Zeiteinheit für die Interpolation als eine zeitweilige Parameteränderungsrate erhält, dann die Berechnung für eine Parameteränderungsrate eine frei wählbare Anzahl an Malen wiederholt, so daß das Ausmaß der Bewegung mit einem Sollausmaß der Bewegung übereinstimmt, und eine echte Parameteränderungsrate durch diese Wiederholung der Berechnung berechnet.
15. Numerische Steuervorrichtung nach Anspruch 10, dadurch gekennzeichnet, daß die Spline- Kurvenfestlegungsvorrichtung in Beziehung auf Durchgangspunkte, die diskret auf der gewünschten, gekrümmten Bearbeitungsbahn liegen, eine Zone eines Punktfeldes erkennt, in welchem eine vorbestimmte Anzahl an Blöcken oder mehr von einem Startpunkt aus in einer Richtung weitergehen, eine Zone eines Punktfeldes, in welchem eine festgelegte Anzahl an Blöcken oder mehr vor einem Endpunkt in einer Richtung weitergehen, oder eine Zone eines Punktfeldes, in welchem eine festgelegte Anzahl an Blöcken oder mehr, welche weder den Startpunkt noch einen Endpunkt enthalten, in einer Richtung als geradlinige Zone weitergehen, und eine andere Zone eines Punktfeldes als eine Spline-Kurvenzone.
16. Numerische Steuervorrichtung nach Anspruch 15, dadurch gekennzeichnet, daß die Spline- Kurvenfestlegungsvorrichtung dann, wenn sie eine Spline- Kurve in einer Spline-Kurvenzone festlegt, die als geradlinige Zone abgetrennt ist, einen Tangentenvektor für eine Spline-Kurve an einem Grenzpunkt zwischen einer geradlinigen Zone und einer Spline-Kurvenzone als einen Einheitsvektor ausgibt, der die Richtung der geradlinigen Zone anzeigt.
17. Numerische Steuervorrichtung nach Anspruch 15, dadurch gekennzeichnet, daß die Spline- Kurvenfestlegungsvorrichtung eine gerade Linie dadurch angibt, daß sie einen tertiären Koeffizienten und einen sekundären Koeffizienten einer Spline-Kurve in einer geradlinigen Zone jeweils auf Null einstellt.
DE19618332A 1995-07-17 1996-05-07 Numerische Steuervorrichtung mit Spline-Interpolationsfunktion Withdrawn DE19618332A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18040995A JP3396342B2 (ja) 1995-07-17 1995-07-17 スプライン補間機能を有する数値制御装置

Publications (1)

Publication Number Publication Date
DE19618332A1 true DE19618332A1 (de) 1997-01-23

Family

ID=16082752

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19618332A Withdrawn DE19618332A1 (de) 1995-07-17 1996-05-07 Numerische Steuervorrichtung mit Spline-Interpolationsfunktion

Country Status (3)

Country Link
US (1) US5723961A (de)
JP (1) JP3396342B2 (de)
DE (1) DE19618332A1 (de)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19960965A1 (de) * 1999-12-17 2001-07-05 Bosch Gmbh Robert Verfahren zur Erzeugung von Sollwerten für eine numerisch gesteuerte Maschine
DE19960957A1 (de) * 1999-12-17 2001-08-02 Bosch Gmbh Robert Vorrichtung und Verfahren zur Generierung eines Sollwerts
US6609045B1 (en) 1998-05-28 2003-08-19 Mitsubishi Denki Kabushiki Kaisha File conversion apparatus for machining program of numerical control system and computer readable recording medium for storing program for computer to execute file conversion process
DE19725461B4 (de) * 1996-06-17 2004-07-08 Toyota Jidosha K.K., Toyota Verfahren zum Erzeugen abgesonderter Punkte, die eine Schneideeinrichtungsbahn definieren, wobei durch die Berücksichtigung einer Fähigkeit einer individuellen Maschine ein Bearbeitungswirkungsgrad erhöht wird
DE102005027437A1 (de) * 2005-06-14 2006-12-28 Siemens Ag Verfahren zur Bewegungsführung eines bewegbaren Maschinenelements einer Maschine
DE102005060967A1 (de) * 2005-12-20 2007-06-28 Technische Universität München Verfahren und Vorrichtung zum Einrichten einer Bahnkurve einer Robotervorrichtung
DE19930087B4 (de) * 1999-06-30 2007-08-30 Inos Automationssoftware Gmbh Verfahren und Vorrichtung zur Regelung der Vorhalteposition eines Manipulators eines Handhabungsgeräts
DE102009023307A1 (de) * 2009-05-29 2010-12-02 Kuka Roboter Gmbh Verfahren und Vorrichtung zur Steuerung eines Manipulators
DE10047928B4 (de) * 1999-11-18 2011-03-31 Siemens Ag Simulationssystem
DE102009049172A1 (de) * 2009-10-13 2011-06-16 Kuka Roboter Gmbh Verfahren und Vorrichtung zur Steuerung eines Manipulators

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6242880B1 (en) 1998-09-08 2001-06-05 Cimplus, Inc. Tolerance based motion control system
JP2000330617A (ja) * 1999-05-17 2000-11-30 Toshiba Mach Co Ltd 数値制御装置および数値制御装置の送り制御処理方法
US6922606B1 (en) 1999-11-19 2005-07-26 Siemens Energy & Automation, Inc. Apparatus and method for smooth cornering in a motion control system
US6782306B2 (en) * 1999-12-16 2004-08-24 Siemens Energy & Automation Motion control system and method utilizing spline interpolation
JP3352986B2 (ja) * 1999-12-17 2002-12-03 スター精密株式会社 工作機械の駆動制御装置
JP3662799B2 (ja) * 2000-03-09 2005-06-22 三菱電機株式会社 数値制御装置及び数値制御方法
DE10065422A1 (de) * 2000-12-27 2002-07-18 Siemens Ag Verfahren und Steuerung zur Erstellung und Optimierung flexibler, hochwertiger Kurvenscheibenfunktionen direkt über das Steuerungsprogramm / Anwenderprogramm
DE10242710A1 (de) * 2002-09-13 2004-04-08 Daimlerchrysler Ag Verfahren zum Herstellen eines Verbindungsbereiches auf einem Werkstück
US7450127B2 (en) * 2005-03-23 2008-11-11 Hurco Companies Inc. Method of tolerance-based trajectory planning
JP4736607B2 (ja) * 2005-08-05 2011-07-27 株式会社デンソーウェーブ ロボット制御装置
TWI353496B (en) * 2006-08-04 2011-12-01 Hurco Co Inc System and method and computer readable medium for
US8725283B2 (en) * 2006-08-04 2014-05-13 Hurco Companies, Inc. Generalized kinematics system
US8024068B2 (en) 2006-08-04 2011-09-20 Hurco Companies, Inc. Machine tool control system
US7933677B2 (en) * 2006-08-04 2011-04-26 Hurco Companies, Inc. System and method for surface finish management
JP5151686B2 (ja) * 2008-05-26 2013-02-27 株式会社ジェイテクト 非真円形状の工作物を加工するためのプロフィールデータの作成方法
EP2264529A3 (de) * 2009-06-16 2011-02-09 ASML Netherlands B.V. Lithografische Vorrichtung, Verfahren zum Steuern der Vorrichtung und Verfahren zur Herstellung eines Artikels unter Anwendung einer lithografischen Vorrichtung
JP4813616B1 (ja) * 2010-07-12 2011-11-09 ファナック株式会社 円弧動作時の速度制御機能を有する工作機械の数値制御装置
CN102073301B (zh) * 2011-01-21 2012-07-25 陈良骥 具有刀具长度补偿功能的五轴样条插补器
JP5896789B2 (ja) * 2012-03-07 2016-03-30 キヤノン株式会社 ロボット制御装置、ロボット装置、ロボット制御方法、プログラム及び記録媒体
DE112012006583B4 (de) 2012-07-26 2021-07-08 Mitsubishi Electric Corporation Numerische Steuervorrichtung
CN103513612B (zh) * 2013-09-12 2015-09-30 上海新时达电气股份有限公司 控制工业机器人与变位机协调运动的系统及方法
US9513623B2 (en) * 2014-01-21 2016-12-06 Mitsubishi Electric Research Laboratories, Inc. Method for generating trajectory for numerical control process
JP6267156B2 (ja) 2015-05-29 2018-01-24 ファナック株式会社 微小ブロックのコーナ制御を行うワイヤカット放電加工機用数値制御装置
JP6386511B2 (ja) * 2016-10-28 2018-09-05 ファナック株式会社 工具経路生成装置、工具経路生成方法及び工具経路生成プログラム
JP7037457B2 (ja) * 2018-09-05 2022-03-16 オークマ株式会社 数値制御装置および数値制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0236406A (ja) * 1988-07-26 1990-02-06 Toyoda Mach Works Ltd スプライン補間機能を有するnc装置
JPH02113305A (ja) * 1988-10-24 1990-04-25 Fanuc Ltd スプライン補間方法
ES2077941T3 (es) * 1992-07-21 1995-12-01 Siemens Ag Procedimiento para el frenado optimo en el tiempo, acorde con la trayectoria de los accionamientos axiales de maquinas de control numerico.
US5438522A (en) * 1992-12-18 1995-08-01 Cincinnati Milacron Inc. Method and apparatus for sub-span interpolation
JP2805119B2 (ja) * 1993-02-26 1998-09-30 オークマ株式会社 非円形ワーク加工用数値制御装置

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19725461B4 (de) * 1996-06-17 2004-07-08 Toyota Jidosha K.K., Toyota Verfahren zum Erzeugen abgesonderter Punkte, die eine Schneideeinrichtungsbahn definieren, wobei durch die Berücksichtigung einer Fähigkeit einer individuellen Maschine ein Bearbeitungswirkungsgrad erhöht wird
US6609045B1 (en) 1998-05-28 2003-08-19 Mitsubishi Denki Kabushiki Kaisha File conversion apparatus for machining program of numerical control system and computer readable recording medium for storing program for computer to execute file conversion process
DE19930087B4 (de) * 1999-06-30 2007-08-30 Inos Automationssoftware Gmbh Verfahren und Vorrichtung zur Regelung der Vorhalteposition eines Manipulators eines Handhabungsgeräts
DE19930087C5 (de) * 1999-06-30 2011-12-01 Inos Automationssoftware Gmbh Verfahren und Vorrichtung zur Regelung der Vorhalteposition eines Manipulators eines Handhabungsgeräts
DE10047928B4 (de) * 1999-11-18 2011-03-31 Siemens Ag Simulationssystem
DE19960957A1 (de) * 1999-12-17 2001-08-02 Bosch Gmbh Robert Vorrichtung und Verfahren zur Generierung eines Sollwerts
DE19960957C2 (de) * 1999-12-17 2003-12-24 Bosch Rexroth Ag Vorrichtung und Verfahren zur Generierung eines Sollwerts
DE19960965A1 (de) * 1999-12-17 2001-07-05 Bosch Gmbh Robert Verfahren zur Erzeugung von Sollwerten für eine numerisch gesteuerte Maschine
DE102005027437A1 (de) * 2005-06-14 2006-12-28 Siemens Ag Verfahren zur Bewegungsführung eines bewegbaren Maschinenelements einer Maschine
DE102005027437B4 (de) * 2005-06-14 2013-11-21 Siemens Aktiengesellschaft Verfahren zur Bewegungsführung eines bewegbaren Maschinenelements einer Lade- und Entladevorrichtung eines Hochregals oder eines Kranes
US7818087B2 (en) 2005-06-14 2010-10-19 Siemens Aktiengesellschaft Method and control device for guiding the movement of a movable machine element of a machine
DE102005060967B4 (de) * 2005-12-20 2007-10-25 Technische Universität München Verfahren und Vorrichtung zum Einrichten einer Bahnkurve einer Robotervorrichtung
DE102005060967A1 (de) * 2005-12-20 2007-06-28 Technische Universität München Verfahren und Vorrichtung zum Einrichten einer Bahnkurve einer Robotervorrichtung
DE102009023307A1 (de) * 2009-05-29 2010-12-02 Kuka Roboter Gmbh Verfahren und Vorrichtung zur Steuerung eines Manipulators
EP2255931A3 (de) * 2009-05-29 2014-04-30 KUKA Laboratories GmbH Verfahren und Vorrichtung zur Steuerung eines Manipulators
US8774965B2 (en) 2009-05-29 2014-07-08 Kuka Laboratories Gmbh Method and device for controlling a manipulator
DE102009049172A1 (de) * 2009-10-13 2011-06-16 Kuka Roboter Gmbh Verfahren und Vorrichtung zur Steuerung eines Manipulators
DE102009049172B4 (de) * 2009-10-13 2019-07-25 Kuka Roboter Gmbh Verfahren und Vorrichtung zur Steuerung eines Manipulators

Also Published As

Publication number Publication date
JPH0935054A (ja) 1997-02-07
JP3396342B2 (ja) 2003-04-14
US5723961A (en) 1998-03-03

Similar Documents

Publication Publication Date Title
DE19618332A1 (de) Numerische Steuervorrichtung mit Spline-Interpolationsfunktion
DE102013002516B4 (de) Numerische Steuerung mit Bearbeitungskurvenerzeugungsfunktion
EP0384925B1 (de) Steuerungsverfahren bei einer numerischen Werkzeugmaschine oder einem Roboter
DE69826808T2 (de) Maschinensteuerung
DE102013011684B4 (de) Numerische Steuervorrichtung, die eine Einfügeeinheit für Ecken mit mehreren Kurven umfasst
DE102005015810B4 (de) Bearbeitungszeit-Berechnungsvorrichtung
DE10118477C5 (de) Verfahren zum Bestimmen von Geschwindigkeit und Beschleunigung eines Motors, Verfahren zum Parametrieren einer Beschleunigungs/Verzögerungskurve eines Motors, Verfahren zum Durchführen einer Beschleunigungs/Verzögerungssteuerung eines Motors, Beschleunigungs/Verzögerungssteuervorrichtung und Motorsteuervorrichtung
DE102009024130B4 (de) Verfahren zur echtzeitfähigen Bahnplanung kontinuierlicher, rucksprungfreier Sollwerttrajektorien
EP0762250A1 (de) Verfahren zur Steuerung von Koordinatenmessgeräten
DE69634034T2 (de) Verfahren zur kurveninterpolation bei einer geschwindigkeitssteuerung eines roboters während eines überschleifvorganges
DE19963414A1 (de) Numerisch gesteuertes System und für das System zu verwendende Totgang-Kompensationsvorrichtung
DE102012010408A1 (de) Numerische Steuervorrichtung mit einer Funktion zum Korrigieren des Bewegungswegs eines Maschinenprogramms
EP0530401B1 (de) Verfahren zum Auslösen von positionsbezogenen Schaltvorgängen während eines von einem Roboter oder einer Werkzeugmaschine ausgeführten Bearbeitungsvorganges
EP0165436B1 (de) Verfahren zur speicherplatzsparenden Programmierung von Roboterbewegungen
EP0419705A1 (de) Verfahren zur Ruckbegrenzung von numerischen Antriebssystemen
DE112012006583T5 (de) Numerische Steuervorrichtung
EP3818420B1 (de) Zeitoptimierte bewegungsführung zwischen bahnabschnitten
EP0477397A1 (de) Verfahren zur Ermittlung von Werkzeugbahnkonturen bei numerisch gesteuerten Maschinen
EP1421452B1 (de) Anordnung zur erzeugung von führungsgrössen für regelkreise einer numerisch gesteuerten maschine
DE112020000656T5 (de) Bearbeitungsprogrammumwandlungsvorrichtung, numerische Steuerung, Bearbeitungsprogrammumwandlungsverfahren und Vorrichtung für maschinelles Lernen
DE10357650A1 (de) Verfahren zur Glättung von Polygonzügen in NC-Programmen
EP0706103B1 (de) Verfahren und Vorrichtung zur numerischen Bahnsteuerung von Werkzeugmaschinen oder Robotern
DE1588093A1 (de) Anordnung zum automatischen Steuern von Werkzeugmaschinen
DE102014015278B4 (de) Bearbeitungskurven-Erzeugungsvorrichtung und dazu gehöriges Bearbeitungskurven-Erzeugungsverfahren
DE102016012042A1 (de) Numerische Steuerung mit Positionierung zur Vermeidung einer Kollision mit einem Werkstück

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee