DE19618332A1 - Numerische Steuervorrichtung mit Spline-Interpolationsfunktion - Google Patents
Numerische Steuervorrichtung mit Spline-InterpolationsfunktionInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical 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/41—Numerical 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/4103—Digital interpolation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34093—Real time toolpath generation, no need for large memory to store values
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34135—Spline
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/43—Speed, acceleration, deceleration control ADC
- G05B2219/43009—Acceleration deceleration for each block of data, segment
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/43—Speed, acceleration, deceleration control ADC
- G05B2219/43062—Maximum acceleration, limit
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/43—Speed, acceleration, deceleration control ADC
- G05B2219/43203—Limitation 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.
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.
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.
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)
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.
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)
Δ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.
Die Position P(ti+1) für einen Interpolationspunkt wird aus
dem Wert ti+1 berechnet, der wie voranstehend geschildert
zeitweilig festgelegt wird.
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:
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)
Δ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)
Δ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.
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)
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)
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.
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.
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.
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)
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)
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)
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 | オークマ株式会社 | 非円形ワーク加工用数値制御装置 |
-
1995
- 1995-07-17 JP JP18040995A patent/JP3396342B2/ja not_active Expired - Fee Related
-
1996
- 1996-04-10 US US08/630,765 patent/US5723961A/en not_active Expired - Lifetime
- 1996-05-07 DE DE19618332A patent/DE19618332A1/de not_active Withdrawn
Cited By (18)
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 |