The invention relates to haptics, robotics and motor control. In particular, the invention relates to motor control amplifiers exploiting the inate motor dynamics of DC motors.
Haptic interfaces allow users to feel virtual or remote environments by interacting with a robotic master device coupled to a computer simulation or robotic slave. The effective rendition of interactions ranging from free motion to rigid contact with a virtual surface is a central goal in haptic simulation. Two types of interfaces are commonly discussed, admittance and impedance, describing the causality of the user interaction. The invention is concerned with impedance-type haptic devices which try to accomplish this by producing forces in response to contacts in the virtual environment as a result of motion caused by the user. In the case of free motion, these devices work very well, since they are generally designed to be easily back-driven by the user. Stable simulation of high-stiffness contact, on the other hand, remains a challenge. The present invention addresses this challenge.
The present invention pertains to methods of controlling an haptic device with particular attention to motor control amplifiers exploiting the inate motor dynamics of DC motors (linear or rotary motors). The control method encompasses a digital and analog circuit. In the digital circuit, a command voltage is determined by a digital controller utilizing sensed motion information of the haptic device and a motion command signal. In the analog circuit, an amplifier applies a voltage to an electrical DC motor. The applied voltage incorporates the determined command voltage from the digital controller and a to voltage to reduce the electrical dynamics of the electrical DC motor (i.e. resistance and/or inductance). The electrical dynamics of the DC motor can be reduced by a voltage according to (i) a positive current feedback voltage, (ii) a positive feedback compensator, or (iii) a negative impedance convertor. Exemplary descriptions are included pertaining to rotary motor, but are not limited to these type of motors as they can also be applied to linear motors.
The use of a voltage motor drive with resistive or resistive and inductive load compensation, which we will refer to as a spring drive for brevity, improves the haptic rendering of rigid contact when compared to standard current drive motor amplifiers. The key idea underlying this improvement is slowing the electrical dynamics and allowing the inductance to be utilized as a high-stiffness haptic coupling. This concept and the corresponding notation are covered briefly in this section.
The electrical dynamics of a typical brushed dc motor are
with coupling equations:
e
B(t)=kT{dot over (θ)}(t) (2)
τ(t)=kTi(t), (3)
where eA is the applied voltage, eB is the back-EMF, kT is the torque/speed constant, τ is the motor torque, i is the winding current, {dot over (θ)} is the rotor velocity, and R and L are the winding resistance and inductance, respectively. To pursue a haptic perspective on the effects of driving a motor with the spring drive, it is useful to interpret R and L as an equivalent mechanical spring KL
and damper BR,
where KL and BR are connected in series. The spring drive approach couples the haptic device to the virtual environment through KL, which is available at all frequencies, inherently stable, and very stiff for small L. It does this by eliminating the series BR through cancellation the winding resistance.
Resistance cancellation is accomplished by setting
e
A
={circumflex over (R)}i+e
W (6)
where {circumflex over (R)} is a conservative estimate of R. This effectively cancels the voltage drop across the winding resistance, while allowing additional voltage inputs eW. Since the motor resistance R varies with temperature and brush commutation, a residual uncancelled resistance
dR(T,θ)=R(T,θ)−{circumflex over (R)}, (7)
will remain. It corresponds to the residual series damper
e
W
=k
TθW. (9)
Therefore, the spring drive operates the dc motor as an approximate motion source. This is in contrast with the current drive motor amplifiers typically used in haptic devices, which speed up the electrical dynamics and operate the motor as a torque source. By recasting the motor as a motion source, it becomes necessary to design the digital controller as a motion controller, again in contrast to the impedance control typically paired with the current drive.
It is important to note that L may be canceled in addition to R, effectively increasing the stiffness KL. In this case (Equation 6) becomes
where {circumflex over (L)} is an estimate of L.
Implementation of Equation 6 may be realized via various analog circuit architectures. One option is to use a sense resistor to measure current through the motor, apply a gain of {circumflex over (R)} to the resulting voltage signal, and use a positive feedback loop to route this signal to the input of a suitable voltage amplifier that drives the motor. The command signal eW is summed with the current feedback signal to produce eA, which is the input to the voltage amplifier. To add cancellation of L, the derivative term
is added to the positive current feedback path.
Another option is to employ a negative impedance converter (NIC). A NIC is an analog op-amp circuit that acts like a negative load. Here, a power op-amp NIC with an effective impedance of −{circumflex over (R)} or −({circumflex over (R)}+{circumflex over (L)}S) is used to drive the motor.
The compensation of brushed DC motor dynamics described above utilizes a single-value model of R. Brushed DC motors, however, experience resistance discontinuities due to commutation, and this can cause discontinuities in the haptic force experienced by the user during. Here, we extend the idea of utilizing the natural motor dynamics through resistance compensation to brushless DC (BLDC) motors, in part to address this issue. More generally, however, BLDC motors out-perform brushed DC motors, exhibiting higher power density, reliability, and efficiency. They also have lower rotor inertia and torque ripple (with sinusoidal commutation). This section will review the operation and dynamics of BLDC motors before a description of BLDC resistance compensation in the next section.
Brushless DC motors are constructed with the permanent magnet located on the rotor and several (usually three) windings on the stator. By moving the permanent magnet to the rotor, there is no need to supply current to the rotating element, and brushes or slip rings are unnecessary. In the case of the three phase BLDC motor, the windings are each separated by an angle of 120 degrees. Each winding experiences a sinusoidal back-EMF voltage. External circuitry and control is necessary to commutate a BLDC motor, and several methods are available, most notably six-step block commutation and sinusoidal commutation. The former is inexpensive, requiring only three Hall sensors, which are usually integrated into the motor. Sinusoidal commutation requires position feedback via an encoder or resolver, but theoretically has no torque ripple and can be used for positioning applications.
The electrical dynamics of a three-phase BLDC are,
with the back-EMF voltages,
e
B
=k
T{dot over (θ)} sin(θ) (14)
e
B
=k
T{dot over (θ)} sin(θ−120°) (15)
e
B
=k
T{dot over (θ)} sin(θ+120°) (16)
Note that by definition the three currents add to zero
i
1
+i
2
+i
3=0 (17)
and each winding contributes a torque in a sinusoidal fashion
τ1=kTi1 sin(θ) (18)
τ2=kTi2 sin(θ−120°) (19)
τ3=kTi2 sin(θ+120°) (20)
with the total torque
τ=τ1+τ2+τ3. (21)
Sinusoidal commutation is used to provide constant torque versus the rotor angle and allow for position control. This means that for a given voltage command, eW, the commutated voltage commands to each winding are,
e
W
=e
W sin(θ) (22)
e
W
=e
W sin(θ−120°) (23)
e
W
=e
W sin(θ+120°) (24)
Utilizing the natural dynamics of a BLDC motor to couple a user to the virtual environment is conceptually identical to the approach taken for brushed DC motors. However, now the resistances of three separate windings must be canceled by a trio of compensators. For the following analysis an ideal case is considered where the resistances and inductances of each of the three windings are identical and equal to R and L, respectively. As a consequence, by adding Equations 11-13 the common node voltage is the mean of the three terminal voltages,
All three drivers cancel the resistance, while allowing sinusoidally commutated voltage input eW
e
A
(t)={circumflex over (R)}i1(t)+eW sin(θ) (26)
e
A
(t)={circumflex over (R)}i2(t)+eW sin(θ−120°) (27)
e
A
(t)={circumflex over (R)}i3(t)+eW sin(θ+120°) (28)
such that from Equation 25 and Equation 17 the common node voltage en=0. Substituting Equations 26-28 into Equations 11-13 yields,
Integrating and substituting each i into Equations 18-20, 21 provides the result,
where θ0=θ(0) with τ(0)=0. This simplifies to
Thus, over small angles the equivalent inductive spring for a BLDC motor is
In the case where the current feedback gain of the controller is not exactly R, a small resistance dR remains uncancelled leading to an equivalent resistive damper:
It is important to note that BR causes drift at low frequencies, while KL dominates at high frequencies. The cutoff frequency between the two effects is
As in Equation 10 the BLDC drivers may also compensate for L to produce a higher inductive stiffness.
Before any high-level controller can be successfully implemented, the fact that a residual damper BdR exists between the commanded location θW and the output must be addressed. Without compensation, BdR will allow θS and θ to drift unboundedly under low frequency external loads. In haptic applications this drift will degrade the simulation by making sustained rigid contacts feel like dampers. Therefore, position feedback with PD compensation is added digitally to combat drift and yields the control law
e
W
=k
T{dot over (θ)}S
where KP and KD are the error gains and θS
the stiffness transfer function is
The corresponding BLDC motor stiffness transfer function may be found similarly.
The magnitude Bode plot of Equation 38 shown in
while the derivative term boosts stiffness at midrange frequencies before the filter rolls it off to the high frequency stiffness
As described earlier, KL may be increased by electrically reducing L in addition to R, replacing L in the equations above with a residual inductance dL.
Thus, for a given motor the spring drive approach calls for the robustly stable minimization of dR and maximization of KP and KD to achieve the highest possible maximum stiffness at all frequencies. This tuning is then locked in place and the resulting Kθ(s) is treated as a passive coupling between the rotor angle θ and the setpoint θS
By treating the spring driven DC motor and the mid-level drift compensator as a black-boxed motion source that accepts setpoint motion commands θS
As noted, θS
{dot over (θ)}S
where θ0 is the location of the contact constraint. Freespace is accomplished by setting the desired motion to track the user
{dot over (θ)}S
A slight lag in filtering the velocity may cause the system to create slight non-zero forces, equivalent to an added mass. Given the low bandwidth of human actions compared to the speed of filtering, however, any added mass tends to fall far below perceptible levels.
Finally, compliant contact is achieved by setting the desired motion to a fraction of the user motion. The full dynamic range of the VE can be represented by
θS
where 0≦η≦1, and η=0 and η=1 correspond to rigid contact and freespace, respectively. The low-frequency output stiffness is reduced by the factor η.
As a motion-based VE, no absolute force values are available, either explicitly via measurement or implicitly by commanding motor current. Output stiffnesses, therefore, may no longer be programmed exactly, but must be specified as a fraction of the device's maximum achievable stiffness. Knowledge of Kθ(s), particularly KDC, can be used to estimate values.
In extending the above approach to multi-DOF haptics, we recognize the application's requirements. Though we wish to display the maximum achievable stiffness, force directions need to be rendered accurately to convey proper geometric surface properties. For example, forces should always fall perpendicular to frictionless surfaces. To support this requirement, perceived output stiffnesses need to be spatially uniform.
Given an n-DOF device, one drift-compensated spring drive is used to drive each joint motor. Thus, each joint independently replicates the one-DOF system previously described, acting as a joint motion source with a stiffness described by Equation 38. We assume here that all joints exhibit the same stiffness, though relative scaling between joints could be incorporated if necessary.
We define a desired Cartesian location {right arrow over (x)}S
{right arrow over (q)}
S
=invkin({right arrow over (x)}S
obtained by inverting the mechanism's kinematics, where J is the Jacobian matrix of the mechanism's forward kinematics. This will produce joint torques
{right arrow over (τ)}=KqΔ{right arrow over (q)} (45)
via a diagonal joint stiffness matrix
K
q
=K
θ(s)I, (46)
which maps to a Cartesian stiffness of
K
x
inv
=J
−T
K
q
J
−1
=K
θ(s)(JJT)−1 (47)
remembering that
{right arrow over (F)}=K
x
invΔ{right arrow over (χ)} {right arrow over (τ)}=JT{right arrow over (F)} Δ{right arrow over (χ)}=JΔ{right arrow over (q)}. (48)
Where is the Cartesian force at the end effector, Δ{right arrow over (χ)}=({right arrow over (χ)}Sd−{right arrow over (χ)}), and Δ{right arrow over (q)}=({right arrow over (q)}Sd−{right arrow over (q)}). We denote the stiffness matrix with ‘inv’ to indicate the joint values were set by an inverse Jacobian kinematic algorithm. Unfortunately, this Cartesian stiffness is non-spherical such that forces are not necessarily generated along displacement vectors.
{right arrow over (q)}
Sd
={right arrow over (q)}+αJ
T({right arrow over (x)}Sd−{right arrow over (x)}) (49)
where α is a scalar, and approximate the set-point derivative as
{right arrow over ({dot over (q)}
Sd
={right arrow over ({dot over (q)}+αJ
T({right arrow over ({dot over (x)}Sd−{right arrow over ({dot over (x)}), (50)
where we ignore the Jacobian's derivative. By construction this simplification only affects forces rendered at high velocities and high frequencies with minimal impact on user perception as discussed at the end of this section. This delivers a Cartesian force vector {right arrow over (F)} of
{right arrow over (F)}=J
−T
K
q
αJ
T
Δ{right arrow over (x)} (51)
and the Cartesion stiffness
K
x
trans
=αJ
−T
K
q
J
T. (52)
Since Kq is the scaled identity matrix, Kxtrans collapses to the diagonal
K
x
trans
=αK
θ(s)I. (53)
Effectively, the transpose equation 49 has reshaped the ellipsoid into a sphere and restored the force directions to parallel any deflections.
Having resolved the force direction problem, there is now the issue of what value to select for α. To address this, first recall that each joint is tuned for a maximum joint stiffness Kθ(s). Also note that locking each joint results in the Cartesian stiffness Kxinv. Thus, Kxinv represents the maximum achievable Cartesian stiffness for a given configuration, limited by the stability of each joint. Using the Jacobian transpose solution to the inverse kinematics has reshaped Kxinv into the Cartesian stiffness ball Kxtrans, which must now be appropriately scaled by α. Intuitively, Kxtrans cannot be scaled arbitrarily large, as this would allow the effective Cartesian stiffness to be increased without bound. Indeed, if the magnitude of Kxtrans exceeds that of Kxinv in any direction, we would be asking for a stiffness beyond the stable maximum. Doing this would effectively increase the gains of one or more joint controllers and compromise their stability. Therefore, taking Kxinv as the upper bound to maintain stability, the eigenvalues of Kxtrans must satisfy
λmax(Kxtrans)≦λmin(Kxinv). (54)
Substituting (53) and (47), this condition simplifies to
α≦λmin[(JJT)−1], (55)
where λmin[(JJT)−1] may be computed on the fly to maximize Kxtrans independently for each configuration, or computed over the entire workspace offline to select the global minimum for a consistent Kxtrans at all configurations.
The stiffness shape compensation performed by this multi-DOF VE does not have infinite bandwidth. As a result Kxinv will still exist at high frequencies, and impulsive force vectors may be directed incorrectly. Since these direction discrepancies exist only at high frequency, however, the user will likely be unable to detect them kinesthetically, due to a low perceptual bandwidth of 20 Hz to 30 Hz. Tactile detection of the discrepancy may fare better, the direction discrimination threshold is only about 25 degrees, determined for perception of low frequency forces. Experience with a multi-DOF implementation on a PHANTOM 1.0 suggests that these discrepancies are not perceptible, and certainly not disruptive to the haptic simulation. Similar to the one-DOF case, compliant surfaces and free space may be obtained by setting
{right arrow over ({dot over (x)}
Sd
=η{right arrow over ({dot over (x)} {right arrow over (x)}
Sd
=η{right arrow over (x)}+(1−η){right arrow over (x)}0, (56)
with 0≦η≦1.
This application claims priority from U.S. Provisional Patent Application 61/338,271 filed Feb. 16, 2010, which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61338271 | Feb 2010 | US |