Iterative spline function controlled positioning mechanism
AssigneeMTS Systems Corporation
InventorsYevsey Gutman, William J. Langer
Life of this patent
Estimating the term…
Abstract
An iterative spline function controlled positioning mechanism such as a machine tool. A movable element of the machine tool is driven about a plurality of axes under computer control along a path formed by a plurality of sections. Each of the path sections is represented in parametric form by spline functions. The element is driven through a plurality of intermediate positions approximating positions on the path sections. An iterative algorithm implemented by the computer permits efficient computation of the intermediate positions.
Claims30
Apparatus for driving a movable element in space about N axes of movement, as a function of an independent variable t having a first value t.sub.1 and a second value t.sub.2, between a first position P.sub.1 and a second position P.sub.2 along a first path section represented in parametric form as a function of the independent variable t by a first set of M-order polynomial equations p.sub.n (t)=a.sub.n,0 +a.sub.n,1 t+a.sub.n,2 t.sup.2 + . . . a.sub.n,M t.sup.M for each axis n=1 . . . N by computing I intermediate positions PI.sub.i =[p.sub.1,i, p.sub.2,i, . . . p.sub.N,i ] for each i=1, 2, . . . I, separated by subintervals .DELTA.t and approximating positions along the path intermediate the first position p.sub.1 =[p.sub.1 (t.sub.1), p.sub.2 (t.sub.1), . . . p.sub.N (t.sub.1)] and the second position P.sub.2 =[p.sub.1 (t.sub.2), p.sub.2 (t.sub.2), . . . p.sub.N (t.sub.2)] during an interval t.sub.1 .ltoreq.t.ltoreq.t.sub.2, and moving the element from the first position through the intermediate positions to the second position comprising:
- input means for receiving:
- data representative of the first position, p.sub.n (t.sub.1), and the second position, p.sub.n (t.sub.2), of the element on each of the N axes;
- data representative of at least M-1 derivatives of the polynomial equations for each of the N axes at the first and second element positions, the data representative of the at least M-1 derivatives and the first and second positions characterizing at least M+1 initial condition values of element position and motion along each axis;
- data representative of the interval (t.sub.2 -t.sub.1);
- and
- data representative of the number, I, of intermediate positions PI.sub.i ;
- computer means responsive to the input means for computing and producing signals representative of:
- polynomial coefficients a.sub.n,0, a.sub.n,1, a.sub.n,2, . . . a.sub.n,M for each of the N axes by simultaneously solving, for each axis, a set of at least M+1 equations describing one of the at least M+1 initial condition values in terms of the polynomial coefficients;
- initial difference values Dm.sub.n,0 for each of the M orders of each of the N axes, the difference values approximating an average value of the derivatives of the polynomial equations over a first subinterval .DELTA.t, wherein the difference values Dm.sub.n,0 can be determined and evaluated in terms of the polynomial coefficients by recursively evaluating an equation:
- Dm.sub.n,s.DELTA.t =D(m-1).sub.n,(s+1).DELTA.t -D(m-1).sub.n,s.DELTA.t,
- where:
- s is a number;
- DO.sub.n,s.DELTA.t =p.sub.n (s.DELTA.t);
- and .DELTA.t=(t.sub.2 -t.sub.1)/I;
- first position P.sub.1 and second position P.sub.2 ;
- and
- intermediate positions PI.sub.i where for each of the N axes;
- p.sub.n,i =p.sub.n,(i-1) +Dl.sub.n,(i-1) ;
- Dm.sub.n,i =Dm.sub.n,(i-1) +D(m+1).sub.n,(i-1) for each order m=1, 2, . . . M-2;
- and
- D(M-1).sub.n,i =D(M-1).sub.n,(i-1) +DM.sub.n,0 ;
- and
- actuator means responsive to the computer means for continuously moving the element from the first position, through the intermediate positions, and to the second position, as a function of the signals representative thereof.
Apparatus for driving a movable element in space about N axes of movement, as a function of an independent variable t having a first value t.sub.1 and a second value t.sub.2, between a first position P.sub.1 and a second position P.sub.2 along a first path section described in parametric form as a function of the independent variable t by a 5th-order polynomial equation of the form p.sub.n (t)=a.sub.n,0 +a.sub.n,1 t+a.sub.n,2 t.sup.2 +a.sub.n,3 t.sup.3 +a.sub.n,4 t.sup.4 +a.sub.n,5 t.sup.5 for each axis n=1 . . . N by computing I intermediate positions PI.sub.i =[p.sub.1,i p.sub.2,i . . . p.sub.N,i ] for each i=1, 2, . . . I, separated by subintervals .DELTA.t and approximating positions on the path intermediate the first position p.sub.1 =[p.sub.1 (t.sub.1), p.sub.2 (t.sub.1), . . . p.sub.N (t.sub.1)], and the second position P.sub.2 =[p.sub.1 (t.sub.2), p.sub.2 (t.sub.2) . . . p.sub.N (t.sub.2)] during an interval t.sub.1 .ltoreq.t.ltoreq.t.sub.2, and moving the element through the first, intermediate, and second positions, comprising:
- input means for receiving:
- data representative of the initial position, p.sub.n (t.sub.1), and the final position, p.sub.n (t.sub.2), of the element on each of the N axes;
- data representative of at least four derivatives of the polynomial equations for each of the N axes at the first and second element positions, the data representative of the at least four derivatives and the first and second positions characterizing at least six initial condition values of the element position and motion along each axis;
- data representative of the interval (t.sub.2 -t.sub.1);
- and
- data representative of the number, I, of intermediate positions PI.sub.i ;
- computer means for computing and producing signals representative of:
- polynomial coefficients a.sub.n,0, a.sub.n,1, a.sub.n,2, a.sub.n,3, a.sub.n,4, and a.sub.n,5 for each of the N axes by simultaneously solving, for each axis, a set of at least six equations decribing one of the at least six initial condition values in terms of the polynomial coefficients;
- and
- initial difference values D1.sub.n,0 D2.sub.n,0, D3.sub.n,0, D4.sub.n,0, and D5.sub.n,0 for each of the N axes where:
- D1.sub.n,0 =a.sub.n,1 ((t.sub.2 -t.sub.1)/I)+a.sub.n,2 ((t.sub.2 -t.sub.1)/I).sup.2
- +a.sub.n,3 ((t.sub.2 -t.sub.1)/I).sup.3 +a.sub.n,4 ((t.sub.2 -t.sub.1)/I.sup.4 +a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- D2.sub.n,0 =2a.sub.n,2 ((t.sub.2 -t.sub.1)/I).sup.2 +6a.sub.n,3 ((t.sub.2 -t.sub.1)/I).sup.3
- +14a.sub.n,4 ((t.sub.2 -t.sub.1)/I).sup.4 +30a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- D3.sub.n,0 =6a.sub.n,3 ((t.sub.2 -t.sub.1)/I).sup.3 +36a.sub.n,4 ((t.sub.2 -t.sub.1)/I).sup.4
- +150a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- D4.sub.n,0 =-8a.sub.n,4 ((t.sub.2 -t.sub.1)/I).sup.4 +176a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- and
- D5.sub.n,0 =184a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- and
- intermediate positions PI.sub.i for i=1, 2, . . . I, where for each of the N axes;
- p.sub.n,i =p.sub.n,(i-1) +D1.sub.n,(i-1) ;
- D1.sub.n,i =D1.sub.n,(i-1) +D2.sub.n,(i-1) ;
- D2.sub.n,i =D2.sub.n,(i-1) +D3.sub.n,(i-1) ;
- D3.sub.n,i =D3.sub.n(i-1) +D4.sub.n,(i-1) ;
- and
- D4.sub.n,i =D4.sub.n,(i-1) +D5.sub.n,0 ;
- and
- actuator means responsive to the computer means for progressively moving the element through the first, intermediate, and second positions, as a function of the signals representative thereof.
Apparatus for driving a movable element in space about N axes of movement, as a function of an independent variable t having a first value t.sub.1 and a second value t.sub.2, between a first position P.sub.1 and a second position P.sub.2 along a first path section represented in parametric forms as a function of the independent variable t by a first set of M-order polynomial equations p.sub.n (t)=a.sub.n,0 +a.sub.n,1 t+a.sub.n,2 t.sup.2 + . . . a.sub.n,M t.sup.M for each axis n=1 . . . N by computing I intermediate positions PI.sub.i =[p.sub.1,i, p.sub.2,i, . . . p.sub.N,i ] for each i=1, 2, . . . I, separated by subintervals .DELTA.t and approximating positions along the path intermediate the first position P.sub.1 =[p.sub.1 (t.sub.1), p.sub.2 (t.sub.1), . . . p.sub.N (t.sub.1)] and P.sub.2 =[p.sub.1 (t.sub.2), p.sub.2 (t.sub.2), . . . p.sub.N (t.sub.2)] during an interval t.sub.1 .ltoreq.t.ltoreq.t.sub.2), and moving the element from the first position through the intermediate positions to the second position, comprising:
- input means for receiving:
- data representative of the first position, p.sub.n (t.sub.1), and the second position, p.sub.n (t.sub.2), of the element on each of the N axes;
- polynomial coefficients a.sub.n,0, a.sub.n,1, . . . a.sub.n,M for each of the N axes;
- data representative of the interval (t.sub.2 -t.sub.1);
- and
- data representative of the number, I, of intermediate positions PI.sub.i ;
- computer means responsive to the input means for computing and producing signals representative of:
- initial difference values Dm.sub.n,0 for each of the M orders of each of the N axes, the difference values approximating an average value of the derivatives of the polynomial equations over a first subinterval .DELTA.t, wherein the difference values Dm.sub.n,0 can be determined and evaluated in terms of the polynomial coefficients by recursively evaluating an equation:
- Dm.sub.n,s.DELTA.t =D(m-1),.sub.n,(s+1).DELTA.t -D(m-1).sub.n,s.DELTA.t,
- where:
- s is a number;
- DO.sub.n,s.DELTA.t =p.sub.n (s.DELTA.t);
- and .DELTA.t=(t.sub.2 -t.sub.1)/I;
- first position P.sub.1 and second position P.sub.2 ;
- and
- intermediate positions PI.sub.i ;
- where for each of the N axes:
- p.sub.n,i =p.sub.n,(i-1) +D1.sub.n,(i-1) ;
- Dm.sub.n,i =Dm.sub.n,(i-1) +D(m+1).sub.n,(i-1) for each order m=1, 2, . . . M-2;
- and
- D(M-1).sub.n,i =D(M-1).sub.n,(i-1) +DM.sub.n,0 ;
- and
- actuator means responsive to the computer means for progressively moving the element through the first, intermediate, and second positions, as a function of the signals representative thereof.
Apparatus for driving a movable element in space about N axes of movement, as a function of an independent variable t having a first value t.sub.1 and a second value t.sub.2, between a first position P.sub.1 and a second position P.sub.2 along a first path section represented in parametric form as a function of the independent variable t by a first set of fifth-order polynomial equations p.sub.n (t)=a.sub.n,0 +a.sub.n,1 t+a.sub.n,2 t.sup.2 + . . . a.sub.n,5 t.sup.5 for each axis n=1 . . . N by computing I intermediate positions PI.sub.i =[p.sub.1,i, p.sub.2,i, . . . p.sub.N,i ] for each i=1, 2, . . . I, separated by subintervals .DELTA.t and approximating positions along the path intermediate the first position P.sub.1 =[p.sub.1 (t.sub.1), p.sub.2 (t.sub.1), . . . p.sub.N (t.sub.1)] and P.sub.2 =[p.sub.1 (t.sub.2), p.sub.2 (t.sub.2), . . . p.sub.N (t.sub.2)] during an interval t.sub.1 .ltoreq.t.ltoreq.t.sub.2, and moving the element from the first position through the intermediat positions to the second position, comprising:
- input means for receiving:
- data representative of the first position, p.sub.n (t.sub.1), and the second position, p.sub.n (t.sub.2), of the element on each of the N axes;
- data representative of polynomial coefficients a.sub.n,0 . . . a.sub.n,5 for each of the N axes;
- data representative of the interval (t.sub.2 -t.sub.1);
- and
- data representative of the number, I, of intermediate positions PI.sub.i ;
- computer means for computing and producing signals representative of:
- initial difference values D1.sub.n,0 D2.sub.n,0, D3.sub.n,0, D4.sub.n,0, and D5.sub.n,0 for each of the N axes where:
- D1.sub.n,0 =a.sub.n,1 ((t.sub.2 -t.sub.1)/I)+a.sub.n,2 ((t.sub.2 -t.sub.1)/I).sup.2 +a.sub.n,3 ((t.sub.2 -t.sub.1)/I).sup.3
- +a.sub.n,4 ((t.sub.2 -.sub.1)/I).sup.4 +a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- D2.sub.n,0 =2a.sub.n,2 ((t.sub.2 -t.sub.1)/I).sup.2 +6a.sub.n,3 ((t.sub.2 -t.sub.1)/I).sup.3
- +14a.sub.n,4 ((t.sub.2 -t.sub.1)/I.sup.4 +30a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- D3.sub.n,0 =6a.sub.n,3 ((t.sub.2 -t.sub.1)/I).sup.3 +36a.sub.n,4 ((t.sub.2 -t.sub.1)/I).sup.4
- +150a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- D4.sub.n,0 =-8a.sub.n,4 ((t.sub.2 -t.sub.1)/I).sup.4 +176a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- and
- D5.sub.n,0 =184a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- and
- intermediate positions PI.sub.i for i=1, 2, . . . I, where for each of the N axes:
- p.sub.n,i =p.sub.n,(i-1) +D1.sub.n,(i-1) ;
- D1.sub.n,i =D1.sub.n,(i-1) +D2.sub.n,(i-1) ;
- D2.sub.n,i =D2.sub.n,(i-1) +D3.sub.n,(i-1) ;
- D3.sub.n,i =D3.sub.n(i-1) +D4.sub.n,(i-1) ;
- and
- D4.sub.n,i =D4.sub.n,(i-1) +D5.sub.n,0 ;
- and
- actuator means responsive to the computer means for progressively moving the element through the first, intermediate, and second positions, as a function of the signals representative thereof.
A method for operating a digital computer and controlling the motion of a movable element being driven in space about N axes of movement, as a function of an independent variable t having a first value t.sub.1 and a second value t.sub.2, between a first position P.sub.1 and a second position P.sub.2 along a first path section represented in parametric form as a function of the independent variable t by a first set of M-order polynomial equations p.sub.n (t)=a.sub.n,0 +a.sub.n,1 t+a.sub.n,2 t.sup.2 + . . . a.sub.n,M t.sup.M for each axis n=1 . . . N by computing I intermediate positions PI.sub.i =[p.sub.1,i, p.sub.2,i, . . . p.sub.N,i ] for each i=1, 2, . . . I, separated by subintervals .DELTA.t and approximating positions along the path intermediate the first position P.sub.1 =[p.sub.1 (t.sub.1), p.sub.2 (t.sub.1), . . . p.sub.N (t.sub.1)], and the second position P.sub.2 =[p.sub.1 (t.sub.2), p.sub.2 (t.sub.2), . . . p.sub.N (t.sub.2)] during an interval t.sub.1 .ltoreq.t.ltoreq.t.sub.2, comprising:
- inputting data representative of the first position, p.sub.n (t.sub.1), and the second position, p.sub.n (t.sub.2), of the element on each of the N axes;
- inputting data representative of at least M-1 derivatives of the polynomial equations for each of the N axes at the first and second element positions, the data representative of the at least M-1 derivatives and the first and second positions characterizing at least M+1 initial condition values of element position and motion along each axis;
- inputting data representative of the interval (t.sub.2 -t.sub.1);
- inputting data representative of the number, I, of intermediate positions PI.sub.i ;
- computing data representative of polynomial coefficients a.sub.n,0, a.sub.n,1, a.sub.n,2, . . . a.sub.n,M for each of the N axes by simultaneously solving, for each axis, a set of at least M+1 equations describing one of the at least M+1 initial condition values in terms of the polynomial coefficients;
- computing data representative of initial difference values Dm.sub.n,0 for each of the M orders of each of the N axes, the difference values approximating an average value of the derivatives of the polynomial equations over a first subinterval .DELTA.t, wherein the difference values Dm.sub.n,0 can be determined and evaluated in terms of the polynomial coefficients by recursively evaluating an equation:
- Dm.sub.n,s.DELTA.t =D(m-1).sub.n,(s+1).DELTA.t -D(m-1).sub.n,s.DELTA.t,
- where:
- s is a number;
- D0.sub.n,s.DELTA.t =p.sub.n (s.DELTA.t);
- and .DELTA.t=(t.sub.2 -t.sub.1)/I;
- computing data representative of first position P.sub.1 and second position P.sub.2 ;
- computing data representative of intermediate positions PI.sub.i where for each of the N axes:
- p.sub.n,i =p.sub.n,(i-1) +D1.sub.n,(i-1) ;
- Dm.sub.n,i =Dm.sub.n,(i-1) +D(m+1).sub.n,(i-1) for each order m=1, 2, . . . M-2;
- and
- D(M-1).sub.n,i =D(M-1).sub.n,(i-1)+DM.sub.n,0 ;
- and
- driving the element between the first and second positions through the intermediate positions as a function of the data representative thereof.
A method for operating a digital computer and cntrolling the motion of a movable element being driven in space about N axes of movement, as a function of an independent variable t having a first value t.sub.1 and a second value t.sub.2, between a first position P.sub.1 and a second position P.sub.2 along a first path section described in parametric form as a function of the independent variable t by a 5th-order polynomial equation of the form p.sub.n (t)=a.sub.n,0 +a.sub.n,1 t+a.sub.n,2 t.sup.2 +a.sub.n,3 t.sup.3 +a.sub.n,4 t.sup.4 +a.sub.n,5 t.sup.5 for each axis n=1 . . . N by computing I intermediate positions PI.sub.i =[p.sub.1,i p.sub.2,i . . . p.sub.N,i ] for each i=1, 2, . . . I, separated by subintervals .DELTA.t and approximating positions on the path intermediate the first position P.sub.1 =[p.sub.1 (t.sub.1), p.sub.2 (t.sub.1), . . . p.sub.N (t.sub.1)], and the second position P.sub.2 =[p.sub.1 (t.sub.2), p.sub.2 (t.sub.2), . . . p.sub.N (t.sub.2)] during an interval t.sub.1.ltoreq.t.ltoreq.t.sub.2, comprising:
- inputting data representative of the initial position, p.sub.n (t.sub.1), and the final position, p.sub.n (t.sub.2), of the element on each of the N axes;
- inputting data representative of at least four derivatives of the polynomial equations for each of the N axes at the first and second element positions, the data representative of the at least four derivatives and the first and second positions characterizing at least six initial condition values of the element position and motion along each axis;
- inputting data representative of the interval (t.sub.2 -t.sub.1);
- and
- inputting data representative of the number, I, of intermediate positions PI.sub.i ;
- computing data representative of polynomial coefficients a.sub.n,0, a.sub.n,1, a.sub.n,2, a.sub.n,3, a.sub.n,4, and a.sub.n,5 for each of the N axes by simultaneously solving, for each axis, a set of at least six equations describing one of the at least six initial condition values in terms of the polynomial coefficients;
- computing data representative of initial difference values D1.sub.n,0 D2.sub.n,0, D3.sub.n,0, D4.sub.n,0, and D5.sub.n,0 for each of the N axes where:
- D1.sub.n,0 =a.sub.n,1 ((t.sub.2 -t.sub.1)/I)+a.sub.n,2 ((t.sub.2 -t.sub.1)/I).sup.2 +a.sub.n,3 ((t.sub.2 -t.sub.1)/I).sup.3
- +a.sub.n,4 ((t.sub.2 -t.sub.1)/I.sup.4 +a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- D2.sub.n,0 =2a.sub.n,2 ((t.sub.2 -t.sub.1)/I).sup.2 +6a.sub.n,3 ((t.sub.2 -t.sub.1)/I).sup.3
- +14a.sub.n,4 ((t.sub.2 -t.sub.1)/I).sup.4 +a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- D3.sub.n,0 =6a.sub.n,3 ((t.sub.2 -t.sub.1)/I).sup.3 +36a.sub.n,4 ((t.sub.2 -t.sub.1)/I).sup.4 +150a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- D4.sub.n,0 =-8a.sub.n,4 ((t.sub.2 -t.sub.1)/I).sup.4 +176a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- and
- D5.sub.n,0 =184a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- and
- computing data representative of intermediate positions PI.sub.i for i=1, 2, . . . I, where for each of the N axes:
- p.sub.n,i =p.sub.n,(i-1) +D1.sub.n,(i-1) ;
- D1.sub.n,i =D1.sub.n,(i-1) +D2.sub.n,(i-1) ;
- D2.sub.n,i =D2.sub.n,(i-1) +D3.sub.n,(i-1) ;
- D3.sub.n,i =D3.sub.n(i-1) +D4.sub.n,(i-1) ;
- and
- D4.sub.n,i =D4.sub.n,(i-1) +D5.sub.n,0 ;
- and
- driving the element between the first and second positions through the intermediate positions as a function of the data representative thereof.
A method for operating a digital computer and controlling the motion of a movable element being driven in space about N axes of movement, as a function of an independent variable t having a first value t.sub.1 and a second value t.sub.2, between a first position P.sub.1 and a second position P.sub.2 along a first path section represented in parametric form as a function of the independent variable t by a first set of M-order polynomial equations p.sub.n (t)=a.sub.n,0 +a.sub.n,1 t+a.sub.n,2 t.sup.2 + . . . a.sub.n,M t.sup.M for each axis n=1 . . . N by computing I intermediate positions PI.sub.i =[p.sub.1,i, p.sub.2,i, . . . p.sub.N,i ] for each i=1, 2, . . . I, separated by subintervals .DELTA.t and approximating positions along the path intermediate the first position P.sub.1 =[p.sub.1 (t.sub.1), p.sub.2 (t.sub.1), . . . p.sub.N (t.sub.1)], and a second position P.sub.2 =[p.sub.1 (t.sub.2), p.sub.2 (t.sub.2), . . . p.sub.N (t.sub.2)] during an interval t.sub.1 .ltoreq.t.ltoreq.t.sub.2, comprising:
- inputting data representative of the first position, p.sub.n (t.sub.1), and the second position, p.sub.n (t.sub.2), of the element on each of the N axes;
- inputting polynomial coefficients a.sub.n,0, a.sub.n,1, . . . a.sub.n,M for each of the N axes;
- inputting data representative of the interval (t.sub.2 -t.sub.1);
- inputting data representative of the number, I, of intermediate positions PI.sub.i ;
- computing data representative of initial difference values Dm.sub.n,0 for each of the M orders of each of the N axes, the difference values approximating an average value of the derivatives of the polynomial equations over a first subinterval .DELTA.t, wherein the difference values Dm.sub.n,0 can be determined and evaluated in terms of the polynomial coefficients by recursively evaluating an equation:
- Dm.sub.n,s.DELTA.t =D(m-1),.sub.n,(s+1).DELTA.t -D(m-1).sub.n,s.DELTA.t
- where
- D0.sub.n,s.DELTA.t =p.sub.n (s.DELTA.t);
- and .DELTA.t=(t.sub.2 -t.sub.1)/I;
- computing data representative of first position P.sub.1 and second position P.sub.2 ;
- computing data representative of intermediate positions PI.sub.i ;
- where for each of the N axes:
- p.sub.n,i =p.sub.n,(i-1) +D1.sub.n,(i-1) ;
- Dm.sub.n,i =Dm.sub.n,(i-1) +D(m+1).sub.n,(i-1) for each order m=1, 2, . . . M-2;
- and
- D(M-1).sub.n,i =D(M-1).sub.n,(i-1) +DM.sub.n,0 ;
- and
- driving the element between the first and second positions through the intermediate positions as a function of the data representative thereof.
A method for operating a digital computer and controlling the motion of a movable element being driven in space about N axes of movement, as a function of an independent variable t having a first value t.sub.1 and a second value t.sub.2, between a first position P.sub.1 and a second position P.sub.2 along a first path section represented in parametric form as a function of the independent variable t by a first set of fifth-order polynomial equations p.sub.n (t)=a.sub.n,0 +a.sub.n,1 t+a.sub.n,2 t.sup.2 + . . . a.sub.n,5 t.sup.5 for each axis n=1 . . . N by computing I intermediate positions PI.sub.i =[p.sub.1,i, p.sub.2,i, . . . p.sub.N,i ] for each i=1, 2, . . . I, separated by subintervals .DELTA.t and approximating positions along the path intermediate the first position P.sub.1 =[p.sub.1 (t.sub.1), p.sub.2 (t.sub.1), . . . p.sub.N (t.sub.1)], and a second position P.sub.2 =[p.sub.1 (t.sub.2), p.sub.2 (t.sub.2), . . . p.sub.N (t.sub.2)] during an interval t.sub.1 .ltoreq.t.ltoreq.t.sub.2, comprising:
- inputting data representative of the first position, p.sub.n (t.sub.1), and the second position, p.sub.n (t.sub.2), of the element on each of the N axes;
- inputting data representative of polynomial coefficients a.sub.n,0 . . . a.sub.n,5 for each of the N axes;
- inputting data representative of the interval (t.sub.2 -t.sub.1);
- inputting data representative of the number, I, of intermediate positions PI.sub.i ;
- computing date represenative of initial difference values D1.sub.n,0 D2.sub.n,0, D3.sub.n,0, D4.sub.n,0, and D5.sub.n,0 for each of the N axes where:
- D1.sub.n,0 =a.sub.n,1 ((t.sub.2 -t.sub.1)/I)+a.sub.n,2 ((t.sub.2 -t.sub.1)/I).sup.2 +a.sub.n,3 ((t.sub.2 -t.sub.1)/I).sup.3
- +a.sub.n,4 ((t.sub.2 -t.sub.1)/I).sup.4 +a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- D2.sub.n,0 =2a.sub.n,2 ((t.sub.2 -t.sub.1)/I).sup.2 +6a.sub.n,3 ((t.sub.2 -t.sub.1)/I).sup.3
- +14a.sub.n,4 ((t.sub.2 -t.sub.1)/I).sup.4 +30a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- D3.sub.n,0 =6a.sub.n,3 ((t.sub.2 -t.sub.1)/I).sup.3 +36a.sub.n,4 ((t.sub.2 -t.sub.1)/I).sup.4 +150a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- D4.sub.n,0 =-8a.sub.n,4 ((t.sub.2 -t.sub.1)/I).sup.4 +176a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- and
- D5.sub.n,0 =184a.sub.n,5 ((t.sub.2 -t.sub.1)/I).sup.5 ;
- computing data representative of intermediate positions PI.sub.i for i=1, 2, . . . I, where for each of the N axes:
- p.sub.n,i =p.sub.n,(i-1) +D1.sub.n,(i-1) ;
- D1.sub.n,i =D1.sub.n,(i-1) +D2.sub.n,(i-1) ;
- D2.sub.n,i =D2.sub.n,(i-1) +D3.sub.n,(i-1) ;
- D3.sub.n,i =D3.sub.n,(i-1) +D4.sub.n,(i-1) ;
- and
- D4.sub.n,i =D4.sub.n,(i-1) +D5.sub.n,0 ;
- and
- driving the element between the first and second positions through the intermediate positions as a function of data representative thereof.
Dependencies are inferred from the claim text.