This invention relates generally to controlling mechanical systems and more particularly to reducing vibrations in mechanical systems driven by a rotating motor.
To increase precision in mechanical systems, such as automated factory systems and machine tools, vibration isolation and suppression is required to maximize performance. With a machine tool, in particular, it is required to minimize vibrations that affect a base that support the tool.
If the tool mounted on the base produces structural resonance vibrations, by external disturbances from the environment or from servo-motor torques that drive the tool, and a sufficient damping is not ensured, then the resonance vibrations must minimized to maximize the performance, e.g., a low settling time, and a high tracking bandwidth.
Therefore, it is desired to position a load with precision and settling time, minimize the base vibrations, and minimize the effect of external disturbances on the load positioning and the base vibration.
Typically, conventional solutions rely on direct measurement or estimation of the base vibration amplitude and frequency, e.g., U.S. Patent Publications 20070061047, U.S. Pat. No. 7,532,951, and U.S. Pat. No. 7,275,627. Those solutions have the drawback of being subject to the well known problem of frequency spill-over, which is the destabilizing effect of unmodeled frequencies. Furthermore, those solutions may require sensors to detect and measure the base vibration, which can increases the fabrication and maintenance costs.
The embodiments of the invention can used to control mechanical systems, such as a machine tool. The tool includes a servo-motor that drives a load via a linear ball-screw transmission. Typically the tool is arranged on a flexible base, which is fixed to the ground. The motor includes an position angular sensor.
The controller controls the servo motor that drives the load to a position within a desired precision, and settling time. The controller also minimizes the base vibration induced by motion of the load, and minimizes the effect of external disturbances on the system.
The controller includes an optimal feedforward module designed according to a model of the system, a linear feedback module, and a nonlinear feedback module. The feedback modules use measurements of the angular position and the angular velocity.
The controller applies a sum of the outputs of the modules to control the torque of the servo-motor such that vibrations are reduced.
A linear sensor 8 is mounted on the load to measure its position relative to the base in real time. The measurement of the position is not used for feedback control, it is only used for performance evaluation.
One or more vibration sensor 9 are mounted on the base to measure an amplitude of the vibrations. The measurement is not used for feedback control, it is only used for performance evaluation.
Using Newton law, the model of the system as shown in on
where {dot over (x)} and {umlaut over (x)} are the first and second derivative of x with respect to time t.
The controller is designed according to
where
x
load-p(t)
is the desired trajectory of the load time-motion planned off-line such that
x
load-p(t)
relates the desired motion initial point
(t0,xL-initial), and
the desired final motion point
(tf,xL-final)
cancels the transient solution of the internal dynamics given by
(mB+mL){umlaut over (x)}B(t)+dB{dot over (x)}B(t)+kBxB(t)=−mL{umlaut over (x)}load-p(t), (3)
where sign (x)=1 if x>0, sign(x)=−1 if x<0 and k_p, k_v are the linear quadratic regulator (LQR) gains determined to stabilize the dynamics
m
L({umlaut over (x)}load-p(t)−{umlaut over (x)}L(t))+dL({dot over (x)}load-P(t)−{dot over (x)}L(t))+v(kp,kv)=0. (4)
Using the virtual input
v(kp,kv)=kp(xload-p(t)−xL(t))+kv({dot over (x)}load-p(t)−{dot over (x)}L(t)), (5)
where the constants d_max and eps are predetermined, and defined in greater detail below.
The controller according to Eqn. 2 has three main terms:
a feedforward term
u1(t)=mL{umlaut over (x)}load-p(t)+dL{dot over (x)}load-p(t)
based on a planned load trajectory
x
load-p(t)
a linear collocated feedback term
u2(t)=kp(xload-p(t)−xL(t))+kv({dot over (x)}load-p(t)−{dot over (x)}L(t))
based on the linear-quadratic-regulator (LQR) method; and a nonlinear collocated feedback term
u3(t)=−sign(−mL({dot over (x)}load-p(t)−{dot over (x)}L(t)))(d_max+eps),
based on a disturbance rejection method, e.g. a Lyapunov reconstruction technique.
The sign function can be replaced by the following saturation function (sat)
where eps_tilde is predetermined, and defined below.
Note that the position and the velocity of the load are not directly measured; they are computed from the angular position and velocity of the motor, using a simple gain equation obtained from the geometrical characteristics, i.e. radius, of the ball-screw system.
The main idea behind our controller is that the base natural frequencies are not excited due to the proper off-line planning of the desired load time motion, and the base vibration is decoupled from the load acceleration by the disturbance rejection nonlinear term. This implies that transmission of the vibration from the base to the load and back from the load to the base is rejected, and thus the base vibrations are natural damped.
To describe the best mode of the invention, an example embodiment of the computation of the feedforward term u1(t) is described below.
We select a desired load time-trajectory of a polynomial form:
where ai are coefficients solved as described below.
Then in closed form, we solve the linear differential Eqn. 3. The solution is
x
B(t)=A(ai)er1t+B(ai)er2t+{tilde over (x)}B(ai,t),
where A and B are linear functions of the coefficients ai obtained by solving the linear differential Eqn. 3 and factorizing the terms er1t and er2t, r1, r2 are the roots of the characteristic associated with the differential Eqn. 3 without the right-hand side, and {tilde over (x)}B(ai,t) is the non-homogeneous solution of Eqn, 3, which is function of the coefficients ai.
We determine the coefficients ai by solving the algebraic constraints
x
load
p(tO)=xl_initial, xload
{dot over (x)}
load
p(tf)=0, {umlaut over (x)}load
{dot over (x)}
B(t0)={tilde over ({dot over (x)}B(t0), xB(tf)=0, {dot over (x)}B(tf)=0. (7)
We determine a closed-from feedforward term
u1(t)=mL{dot over (x)}load
To test the operation of the above controller, a more realistic model of the system 100 is described. This model shown in
J
M
{umlaut over (x)}
M
+D({dot over (x)}M−{dot over (x)}L)+K(xM−xL)=u−JM{umlaut over (x)}B
J
L
{umlaut over (x)}
L
+D({dot over (x)}L−{dot over (x)}M)+K(xL−xM)=−JL{umlaut over (x)}B
J
B
{umlaut over (x)}+D
B
{dot over (x)}
B
+K
B
x
B
=−u
y=x
M (8)
The main difference with respect to the 2-mass model given by Eqn. 1, is the introduction of a linear damping D 301 and a linear spring K 302 to model the flexibility of the transmission between the motor and the load. In this case, there can be a difference between the position of the load xL, and the position of the motor xM. In
The angular sensor 7 provides the angular position 10 of the motor 1. The angular position is used for the feedback control. The angular position is fed to a numerical differentiation 404 to measure the motor angular velocity 405, i.e., the first derivative of the angular position.
Outputs of the modules 401-403 are summed 406, and the sum 407 is used to control the angular velocity of the motor during operation so that vibration is reduced.
Step 501 initializes various variables:
Step 502 determines determine the closed-form expression of the feed-forward term u1(t)
Step 503 determines the LQR gains k_p_i, k_v_i, defined as the proportional and the derivative gain obtained by the LQR algorithm.
Step 504 sets tf_i=tf.
Step 505 test the controller according Eqn. 2 either on the simulation model given by Eqn. 8, or in the system 100.
Step 506 determines a settling time T_settling, which is defined as the first instant after which the load position remains within a desired interval around a desired final load position. The interval can be predefined, e.g., by a user of the system. Step 506 also determines Max_vib, which is the maximum base vibration amplitude after the settling time.
Step 507 tests if T_settling<settling_th, and Max_vib<vibrations_th.
If true, then step 508 sets tf=tf_i.
Otherwise, if false, step 509 set s tf_i=tf_i+delta_tf, and repeats beginning at step 504.
Although the invention has been described by way of examples of preferred embodiments, it is to be understood that various other adaptations and modifications can be made within the spirit and scope of the invention. Therefore, it is the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the invention.