MOTOR HAVING INTEGRATED ACTUATOR WITH ABSOLUTE ENCODER AND METHODS OF USE
20210257943 · 2021-08-19
Inventors
Cpc classification
H02K11/215
ELECTRICITY
H02K29/08
ELECTRICITY
H02K1/146
ELECTRICITY
H02P7/025
ELECTRICITY
International classification
Abstract
A DC electric motor having a stator mounted to a substrate, the stator having a coil assembly having a magnetic core, a rotor mounted to the stator with a first set of permanent magnets distributed radially about the rotor to facilitate rotation of the rotor and a second set of permanent magnets on the rotor to facilitate determination of an absolute position of the rotor. The motor further includes first and second set of sensors for detection of the magnets of the inner and outer rings. During operation of the motor passage of the permanent magnets over the sensors produces a substantially sinusoidal signal of varying voltage substantially without noise and/or saturation, allowing an absolute position of the rotor relative the substrate to be determined from the sinusoidal signals without requiring use of an encoder or position sensors and without requiring noise-reduction or filtering of the signal.
Claims
1. A DC electric motor system comprising: a stator mounted to a substrate, the stator comprising a coil assembly having a core of magnetic material and electrical windings; a rotor mounted to the stator, the rotor comprising: an inner magnet ring having a first set of permanent magnets adjacent to the core of magnetic material, the first set of permanent magnets being arranged to facilitate rotation of the rotor; an outer magnet ring having a second set of permanent magnets, the second set of permanent magnets arranged to facilitate determination of a displacement of the rotor based on relative positions of the first and second set of permanent magnets; one or more sensors mounted on the substrate and disposed about the circumference of the rotor, wherein the one or more sensors are arranged to obtain voltage signals from the first and second set of magnets during rotation of the rotor, the voltage signals corresponding to positions of the first and second set of permanent magnets.
2. The system of claim 1, wherein the rotor comprises a common ring wherein the first set of magnets are mounted on an inside surface of the common ring thereby defining the inner magnet ring, and the second set of magnets are mounted on an outside surface of the common ring thereby defining the outer magnet ring.
3. The system of claim 1, wherein the rotor comprises any of: a ring having magnetized poles that defines the inner magnet ring, while the outer magnet ring is defined by the second set of magnets mounted on the ring; a ring having magnetized poles that define the outer magnet ring, while the inner magnet ring is defined by the first set of magnets mounted on the ring.
4. The system of claim 1, wherein the rotor comprises: a first ring having magnetized poles that define the inner magnet ring, and a second ring concentric with the first ring and having magnetized poles that define the outer magnet ring.
5. The system of claim 1, wherein the inner and outer magnets each comprise an even number of magnets.
6. The system of claim 5, wherein the inner magnet ring comprises a different number of magnets than the outer magnet.
7. The system of claim 6, wherein the inner magnet ring comprises fewer magnets than the outer magnet ring.
8. The system of claim 6, wherein the outer magnet ring comprises fewer magnets than the inner magnet ring.
9. The system of claim 1, wherein each of the inner and outer magnet rings comprises one or more pole pairs, wherein the number of pole pairs of the inner and outer magnet rings do not share a common denominator.
10. The system of claim 1, wherein the stator is mounted on a substrate, and the one or more sensors are mounted on the substrate and arranged along the path of the magnets of the inner and/or outer magnet ring.
11. The system of claim 1, wherein the one or more sensors comprise: a first set of sensors arranged for detection of the inner magnet ring, and a second set of sensors arranged for detection of the outer magnet ring.
12. The system of claim 11, wherein the first set of sensors comprises two or more sensor disposed along or adjacent a path of the inner magnets of the inner magnet ring
13. The system of claim 11, wherein the first set of sensors comprises at least three sensors spaced apart and disposed within one quadrant of rotation of the rotor, and the second set of sensors comprises at least three sensors that are spaced apart and disposed within one quadrant of rotation of the rotor.
14. The system of claim 11, wherein the inner magnet ring has an even number of magnets with two or more pole pairs.
15. The system of claim 14, wherein the first set of sensors are spaced apart, wherein the spacing=120/P where P is the number of pole pairs.
16. The system of claim 11, wherein the second set of sensors comprises two or more sensors disposed along or adjacent a path of the outer magnets of the inner magnet ring.
17. The system of claim 11, wherein the outer magnet ring has an even number of magnets with two or more pole pairs.
18. The system of claim 17, wherein the second set of sensors are spaced apart, wherein the spacing =120/P, where P is the number of pole pairs of the outer magnet ring.
19. The system of claim 11, further comprising: a controller configured for operation of the motor based on an absolute position of the rotor, wherein the controller is further configured to determine displacement by: obtaining a first set of sinusoidal signals from the first set of sensors; obtaining a second set of sinusoidal signals from the second set of sensors; analyzing the first and second set of signals to determine an absolute position.
20. The system of claim 19, wherein the controller is further configured to: receive, with the controller, a desired position of the rotor; compare the desired position with the absolute position or displacement determined; and adjust pulse width modulation and drive direction of the motor based on the comparison to achieve the desired position of the rotor.
21. The system of claim 19, wherein the controller is a proportional-integral-derivative (PID) controller.
22. The system of claim 19, wherein the control unit is further configured with programmable instructions recorded on a memory thereof, the instructions configured to apply in algorithm to analyze the linear portions of the first and second set of signals.
23. The system of claim 22, wherein the control unit is further configured such that the algorithm utilizes a center-of-mass interpolation.
24. The system of claim 22, wherein the control unit is further configured such that the algorithm utilizes a centroid interpolation.
25. The system of claim 19, wherein the substrate is a printed circuit board (PCB) comprising circuitry enabling analog-to-digital conversion (ADC) of voltage values in the defined linear portions of the signals from the first and second set of sensors.
26. The system of claim 19, wherein the circuitry is implemented in a programmable, system-on-a-chip (PSOC).
27. The system of claim 1, wherein the outer magnet ring has a single pole pair and the inner magnet ring has two or more pole pairs.
28. The system of claim 27, wherein the outer magnet ring is a continuous ring with each half being magnetized to a pole of the single pole pair.
29. A method for encoding a DC electric motor, the method comprising: operating a motor by powering a coil assembly of a stator of the motor, the coil assembly having a core of magnetic material and electrical windings, thereby rotating a rotor having an inner magnet ring having a first set of permanent magnets adjacent to the core of magnetic material, wherein the rotor further includes an outer magnet ring having a second set of permanent magnets; and determining an absolute position of the rotor by: obtaining, with one or more sensors of the motor, a first signal from the first set of permanent magnets passing by the one or more sensors during rotation of the rotor; obtaining, with one or more sensors of the motor, a second signal from the second set of permanent magnets passing by the one or more sensors during rotation of the rotor; analyzing the first and second signal and correlating to a position of the rotor.
30.-41. (canceled)
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
DETAILED DESCRIPTION OF THE INVENTION
[0030] In the foregoing specification, the invention is described with reference to specific embodiments thereof, but those skilled in the art will recognize that the invention is not limited thereto. As used throughout, the term “about” can refer to the ±10% of the recited value. Various features and aspects of the above-described invention can be used individually or jointly. It is appreciated that any of the aspects or features of the embodiments described herein could be modified, combined or incorporated into any of the embodiments described herein, as well as in various other types and configurations. Further, the invention can be utilized in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of the specification.
[0031]
[0032] Substrate 3 can include sets of sensors arranged for detection of the magnets of the inner and outer magnet rings during operation of the motor. In this embodiment, the PCBA substrate 3 include a series of three outer sensors 11a, 11b, 11c and a series of three inner sensors 12a, 12b, 12c distributed along a partial arc around the central opening through which the rotatable shaft 9 extends for detection of the inner and outer magnets, respectively. Additional outer sensors 13a, 13b, 13c (partly visible), can be included on the opposite side of the opening as well, although such sensors are optional. The optional additional sensors compensate the rotor runout, hysteresis, and the placement tolerance of the outer magnets which in turn enhance the position accuracy.
[0033] Rotor assembly engages physically with stator by drive shaft 9, which engages the bearing assembly 2 of the stator to guide rotation of the rotor with precision. Bearing 2 assembly includes two parts that rotatably engage the shaft from opposite sides of the PCB substrate. Details of the bearings are not shown, although it is appreciated that there are many conventional ways such bearings can be implemented. Drive shaft 9 passes through an opening in cover 10 and can be engaged to drive mechanical devices or torque transfer mechanism. The rotor rotates in either direction depending on details of commutation. It is appreciated that the approaches described herein can be used regardless of the direction of rotation of the rotor.
[0034] Individual components can be understood further by referring to
[0035] Ring 5 is calculated to an appropriate thickness to accommodate the flux density of the inner and outer magnets. As shown, the inner and outer magnets are mounted on the ring 5. It is appreciated however, that the inner and outer magnets can be included on separate rings that interface, or can be integral with one or more rings. In some embodiments, the outer magnet ring 6 and inner magnet ring 7 each includes magnets of any even number. In some embodiments, the number of magnets in inner magnet ring 7 is different from that of the outer magnet ring. In this embodiment, the outer magnet ring has twenty magnets, while the inner magnet ring has fourteen magnets. The combination of the outer magnet and inner magnet is central to generating an absolute encoder as described herein.
[0036] Also shown is stator core 4. In some embodiments, the stack length (e.g., height of the stator) of the stator including the winding is smaller or equal to the length of the magnets of the inner ring 6. This dimension allows for generating a noise free sine wave. In some embodiments, the sensors are separated from the magnets by a small distance. In small-scale devices, this separation is typically less than 5 mm, such as 4 mm, 3 mm, 2 mm or 1 mm or less depending on the overall size of the device and the strength of the magnetic fields. It is advantageous for the space between the sensors and the permanent magents to be minimized in order to substantially eliminiate noise in the detection signal. It is appreciated that any of the aspects described in U.S. patent application Ser. No. 15/217,893 entitled “Encoderless Motor with Improved Granularity and Methods of Use,” for example, in regard to arrangement and dimensioning of magnets relative the rotor or magnetic core, can be utilized for either inner or outer magnet rings to provide noise free signals.
[0037] One or more sensors are disposed adjacent the path of the magnets during operation of the rotor. The rotor includes one or more inner sensor rings to detect a signal from the inner magnets and one or more outer sensors to detect the signal from the outer magnets. Typically, the rotor includes sets of multiple sensors disposed along the paths of the inner and outer rings, which are spaced apart and can be offset to provide improved resolution. In some embodiments, spacing within the sensors is calculated as follows:
S=120/P
[0038] where [0039] S: Spacing between hall sensors, in degree. [0040] P: Pole pair
[0041] In one aspect, the inner sensor(s) is the coarse encoder signal and also serves as the motor commutation, while the outer sensor(s) is the fine encoder signal which incorporates with the coarse signal to allow determination of an absolute position. This embodiment includes two sets of three sensors each. The two sets are placed 90° electrical and 180° mechanical apart to improve the resolution and position accuracy. It is appreciated that additional sensors or sensor arrangements could be used.
[0042] The above-noted sensors are typically mounted on the PCB substrate 3 for detection of the magnets, but can be placed on any suitable surface. The PCB also implements a silicon device with integrated ADC and microcontroller, which can be used to perform the motion control, measurement, calculation and communication to a host system.
[0043] In accordance with the applications noted above, it is noted that the absolute encoder features described herein allows the entire motor to be of a considerably small size. For example, the embodiment described herein can be of a dimension of about less than 4″ square (length and width, as shown in
[0044] In another aspect, a control unit (not shown in
[0045] It is appreciated that this embodiment is a non-limiting exemplary prototype. It should be noted that the number of pole teeth and poles, and indeed the disclosure of an internal stator and an external rotor are exemplary, and not limiting in the invention, which is operable with motors of a variety of different designs. For example, while an internal stator and external rotor are described here, it is appreciated that this approach can also be used in a motor having an internal rotor and external stator as well.
[0046] Such a motor could be used in a wide variety of applications, and is of particular use for operation of a small-scale mechanical mechanism requiring a high level of accuracy and granularity. Some embodiments include a motor system having improved resolution in the determination of rotor position and/or displacement without use of hardware encoders and/or noise-filtering, for example, a resolution of about 0.1 degrees of mechanical rotation, or preferably about 0.01 degrees mechanical rotation, or even about 0.001 degrees of mechanical rotation or less. One such application is operation of a syringe drive to effect highly precise fluid metering, or operation of a valve assembly of a diagnostic assay system that interfaces with a sample cartridge in order to facilitate a complex sample processing and/or analysis procedure upon fine-tuned movement of the valve assembly. Examples of such applications can be found in U.S. patent application Ser. No. 15/217,893 entitled “Molecular Diagnostic Assay System”; U.S. Pat. No. 8,048,386 entitled “Fluid Processing and Control;” and U.S. Pat. No. 6,374,684 entitled “Fluid Control and Processing System,” which are incorporated herein by reference.
[0047]
[0048] For a motor with 12 poles, for example, the Hall-effect Sensors are spaced at: [0049] A (degrees) [0050] A+20+(N*60) (degrees) [0051] A+40+(M*60) (degrees) [0052] where: [0053] A is an arbitrary position about the circumference of the magnetic rotor [0054] N is some number of “electrical cycles” to offset the Hall-effect sensor [0055] M is a second number of electrical cycles to offset the Hall-effect sensor
[0056] In some embodiments, for a motor rotor with any number of poles, it is advantageous if the three sensors (e.g. Hall-effect sensors) are placed as follows about the circumference of the rotor magnets: [0057] A (degrees) [0058] A+120/P+(N*180/P) (degrees) [0059] A+240/P+(M*180/P) (degrees) [0060] where P is the number of Poles in the Rotor
[0061] In some embodiments, for a motor rotor with any number of poles and any number of sensors (e.g. Hall-effect Sensors), the sensors are placed as follows (angles in degrees):
where: [0062] N is number of iteration [0063] H is number of Hall-effect Sensors [0064] A is some starting angle (degrees) [0065] P is the number of total magnetic poles (pole pairs/2) [0066] X is an arbitrary value to allow the Hall-effect sensors to be spaced (this could be equal to N, but could be larger if required for very large Hall-effect sensors or very many poles. [0067] If the Hall-effect sensors are sufficiently small and the poles sufficiently large, then X could be zero. X=N in the exemplary case).
[0068] In one aspect, an added benefit of using the same number of sensors on the inner ring and outer ring is that a commutation cycle will match the electrical cycle of the Hall-effect sensors. For example, as the rotor moves, the electrical angle at which one drives the motor windings cycles at the same rate as the Hall-effect sensors. This reduces processing power needed for the purpose of commutation as described further below.
[0069] Orientation of Hall-effect Sensors
[0070] In another aspect, it is advantageous to orient the sensors (e.g. Hall-effect sensors) relative the rotor so that the locations of adjacent sensors corresponds to adjacent magnets, as shown in
[0071]
[0072] In one aspect, commutation of the BLDC motor 500 can be performed using only three sensors. The specific embodiment described here is for a three-phase, fourteen-pole, brushless, direct-current, motor. It is appreciated that the concepts of the invention described herein are not limited to this specific embodiment. This same approach can be utilized for encoder interpolation and commutation of many different kinds of motors as well as many different motor poles. In some embodiments, the magnets used for encoding/position detection can be the same magnets that are used for motor drive, which reduces total number of magnets needed in the system thereby allowing for additional integration.
[0073] Hall-effect Waveforms
[0074]
[0075] In this embodiment, for analog Hall-effect sensors that are powered off of 5 V, zero crossing (where the Hall-effect sensor is not experiencing a magnetic induced Hall-effect) is very close to 2.5V, which is typical for most Hall-effect sensors. Zero crossings can be utilized to divide up the sampled Hall-effect sensor data. In one aspect, additional algorithms can be used to interpolate rotor position with even finer granularity than zero-crossing, for example, a “Center of mass” or “Centroid” algorithm.
[0076] In one aspect, the control unit can utilize operating instructions recorded on a readable memory thereof, which include such an algorithm. For example, in some embodiments, the control unit is configured to perform the centroid based interpolation, which can be firmware that is programmed into the ASIC in the exemplary motor system.) An example of such an algorithm is provided in the following code, which is written in ANSI C:
TABLE-US-00001 InterruptServiceRoutine(commutationHandler) { commutationState = 0; if(ADC_SAR_Seq_finalArray[0] > 0) commutationState |= 0b001; if(ADC_SAR_Seq_finalArray[1] > 0) commutationState |= 0b010; if(ADC_SAR_Seq_finalArray[2] > 0) commutationState |= 0b100; switch(commutationState) { case 0b101: firstParam = 0; secondParam = 2; //signage = 0; adder = 2 << extraResolutionForEncoder; break; case 0b001: firstParam = 2; secondParam = 1; //signage = 1; adder = 3 << extraResolutionForEncoder; break; case 0b011: firstParam = 1; secondParam = 0; //signage = 0; adder = 4 << extraResolutionForEncoder; break; case 0b010: firstParam = 0; secondParam = 2; //signage = 1; adder = 5 << extraResolutionForEncoder; break; case 0b110: firstParam = 2; secondParam = 1; //signage = 0; adder = 6 << extraResolutionForEncoder; break; case 0b100: firstParam = 1; secondParam = 0; //signage = 1; adder = 7 << extraResolutionForEncoder; break; default: break; } temp = ADC_SAR_Seq_finalArray[firstParam] + ADC_SAR_Seq_finalArray[secondParam] + ADC_SAR_Seq_finalArray[secondParam]; //assuming zero point of 0... May need to eventually calibrate.. temp <<= extraResolutionForEncoder; //12 bits of centroid algorithm temp /= ADC_SAR_Seq_finalArray[firstParam] + ADC_SAR_Seq_finalArray[secondParam]; temp −= (2{circumflex over ( )}extraResolutionForEncoder); //remove offset from centroid algorithm. // we get two clock pulses per ZC if(ADC_SAR_Seq_finalArray[firstParam] == 0) //if the first parameter is zero, then keep track of boundary condition... temp −= 1; adder −= temp; //FW based quaderature decoder if((adder < 768) && (commutationWheel_last > 2304)) hwEncoder += 3072; else if((adder > 2304) && (commutationWheel_last < 768)) hwEncoder −= 3072; commutationWheel_last = adder; encoder = hwEncoder + adder−encoderOffset; //end FW based quad decoder adder /= 6; commutationWheel = adder;
It is appreciated that such algorithms could utilize the same or similar approach by use of any suitable programming languages.
[0077] The above routine is performed at a sampling rate of 1/Δt.sub.s. where Δt.sub.s is the time interval between samples in the discrete-time implementation. All three channels of Hall-effect sensor are sampled in this period. In an exemplary case, the three Hall-effect sensors are sampled at 100 ksps rate and are run through an analog mux. On-chip DMA resources can be used to transfer the samples from the ADC to the processor's SRAM memory, which end up in an array called: “ADC_SAR_Seq_final Array”. In the exemplary case, the Δt.sub.s is programmable down to 100 μs. This function provides two different outputs. One output is a parameter called “Commutation Wheel”. Commutation wheel is a 512 count (9 bit) representation of where the rotor is located within the A-F electrical commutation cycle. The other output is a parameter called “encoder”. “Encoder” is a continuous encoder (64-bits in this case) which continues to increment with each electrical cycle. “Encoder” in this case has 3072 counts of resolution per electrical cycle and billions of counts of integrated resolution.
[0078] Simple Centroid Approach
[0079] In some embodiments, the control unit can be configured to utilize the “Simple Centroid” approach to interpolate the hardware encoders utilizing the analog levels of each AH waveform individually. For example, in Commutation state 100, note that waveforms B and C cross each other in a near-linear fashion within this commutation section. The following algorithm is used in this section to add additional encoder resolution to the hardware encoder already running. The hardware encoder already has six (6) counts of resolution per pole: any additional resolution (AR) may be used to augment this resolution with the “Simple Centroid” algorithm.
EP=((HE)*(AR)/2)+{[(B*AR)+(C*AR*2)]/AR}−AR
[0080] where: [0081] EP=Encoder Position [0082] HE=Hardware Encoder [0083] AR=Additional Resolution [0084] B=ADC of Analog B phase AH waveform [0085] C=ADC of Analog C phase AH waveform
[0086] Additional Functionality
[0087] In addition to commutation and encoding, this specific embodiment performs closed loop PID control of rotor position, current measurement and command and control. In this embodiment, control can include a floating point rotation translation for a worm drive with 284 rotor revolutions per revolution over a UART interface.
[0088] The hardware system described above allows the firmware to be somewhat isolated from the low-level motor driving functionality. It is appreciated that PID control can be used to control the motor, as would be readily understood by one of skill in the art. However, suffice it to say that the firmware may simply drive the direction and PWM of the instantiated hardware system. An example of such a PID control is shown in
[0089] “Outer Magnet Ring”
[0090] In order to include an absolute encoder in the design, a secondary “outer ring” can be utilized. In some embodiments, the outside ring of magnets utilizes Hall-effect sensors for measurement that are spaced with the same calculations as the inside ring described above.
[0091] The outer ring can utilize the same ADC techniques and algorithms to generate a “Commutation Wheel” and “Encoder” parameter for the outside ring. In some embodiments, the same mathematical approach that was used with the inner ring, described above, can be used with the outer ring.
[0092] The mechanical placement of the magnets on the rotor and the vertical relationship of the magnets to the Hall-effect sensors are precisely controlled. In this embodiment, the outer ring magnets are placed 20 mils closer to the Hall-effect sensors in the vertical direction.
[0093] The relationship between the number of poles in the inner and outer rings is another factor to consider. In one aspect, the number of pole pairs for the inner ring and the number of pole pairs for the outer ring must not share a common denominator. In one aspect of some embodiments, the magnets position on the inner ring and outer ring should not repeat over one revolution, which means the value of the outer pole pairs divided by the inner pole pairs is not a whole number. In the exemplary embodiment, the inner ring has seven pole pairs and the outer ring has ten pole pairs.
[0094] Absolute Encoder Calculations
[0095]
[0096] The electrical cycle relationships for an entire revolution of two exemplary motor embodiments are illustrated in
[0097] For each value of the inner Commutation wheel there is an IPP number of outer commutation wheel values possible as shown here:
[0098] where: [0099] N=Number of iteration [0100] IW=“Commutation Wheel” Value corresponding to electrical position on inner ring [0101] OW=“Commutation Wheel” Value corresponding to electrical position on outer ring [0102] IPP=number of inner ring pole pairs [0103] OPP=number of outer ring pole pairs
[0104] In one aspect, the inner and outer rings must NOT have a common denominator of pole pairs of each ring. If the inner and outer ring have a common denominator then the series OW[N] will have two or more values of equal magnitude. It will then be impossible to make the determination of location around the absolute rotation. Therefore, the set of all valid inner and outer ring pole pair combinations is the infinite set where IPP % OPP !=0
[0105] The above series could be calculated with each iteration of measurement given enough processing power. However, it is advantageous to accelerate this equation for the benefit of absolute encoder output. This is accomplished through the following ANSI C equation.
TABLE-US-00002 #define INNER_POLE_PAIRS 7 #define RESOLUTION_OF_COMM_WHEEL 512 int modulationValueTable[INNER POLE PAIRS +1] = { 37 , 110 , 183 , 256 , 329 , 402 , 475 , 549 , };
[0106] The values in the modulationValueTable table are given by:
[0107] where: [0108] IPP is the Pole Pairs in the inner ring. [0109] R is the Resolution of the commutation wheels [0110] N is the number of iteration
TABLE-US-00003 int modulationIndexTable[8] = { 0 , // 5 ,// 3 ,// 1 ,// 6 ,// 4 ,// 2 ,// 0 ,// };
[0111] The values in the modulationIndexTable table are given by:
[0112] where: [0113] IPP is the Pole Pairs in the inner ring. [0114] R is the Resolution of the commutation wheels [0115] N is the number of iteration [0116] i is the modulation index table value [0117] int absBotTable[512]=. . . . [0118] The values in the absBotTable table are given by:
[0119] where: [0120] IPP is the Pole Pairs in the inner ring. [0121] OPP is the Pole Pairs in the outer ring. [0122] R is the Resolution of the commutation wheels [0123] N is the number of iteration
TABLE-US-00004 int32 absoluteEncoderFunction(void) { int i; int32 temp; if(commutationWheelOutside < 0) commutationWheelOutside += 512; if(commutationWheelOutside >= 512) commutationWheelOutside −= 512; if(commutationWheelInside <0) commutationWheelInside += 512; if(commutationWheelInside >= 512) commutationWheelInside −= 512; temp = commutationWheelOutside − absBotTable[commutationWheelInside] ; while(temp < 0) temp += 512; for(i=0;i<8;i++) { if( temp < modulationValueTable[i] ) { temp = 12288; temp *= modulationIndexTable[i]+1; temp −= extremeAbsoluteResolution; return(temp); } } return(0xffffffff); }
[0124] Where commutationWheelOutside and commutationWheelInside are the inside and outside commutation wheel parameters and “extremeAbsoluteResolution” is a higher resolution version of the inside commutation wheel (12288 counts to be exact) given by the same simple centroid algorithm as before. If the inside and outside rings are not perfectly aligned, then an alternate table can be utilized to compensate for the offset between rings. This can be performed by adding an offset which is proportional to the offset between inner and outer ring commutation wheels. The offset between outside and inside commutation wheel counts can be measured in outside commutation wheel counts. These counts can then be subtracted from the line above as shown:
TABLE-US-00005 ... temp = commutationWheelOutside − absBotTable[commutationWheelInside]− OFFSET; while(temp < 0) temp += 512; ...
[0125] As described above in the non-limiting exemplary embodiments, an ADC is used to produce the division of the straight, linear portions of the phase-separated waveforms and motor 100, which can be driven by any suitable driver circuitry (for example, a DRV83 13 Texas Instruments motor driver circuit). It is understood that there are other arrangements of circuitry that might be used while still falling within the scope of this approach. In some embodiments the circuitry and coded instructions for sensing the Hall-effect sensors and providing motor encoding may be implemented in a programmable system on a chip (PSOC) on the PCB.
[0126] The above-described approach is one way of determining the absolute encoder value by looking at the phase-shift in the substantially linear portions of the Hall-effect sine waves. However, it is appreciated that the matrix transformation approach can also be used. Using the matrix transformation method, the absolute position is calculated on each of the inner-ring and outer ring respectively and then an absolute position can be determined within one rotor revolution using the Vernier effect. This is the same concept as described above in that the phase-shift between the inner and outer ring provides an unambiguous way of determining the absolute position.
[0127] It is appreciated that a variety of alterations can be made in the embodiments described herein without departing from the scope of the invention. For example, electric motors of different designs might be incorporated and controlled in alternative embodiments of the invention by placement of sensors to generate substantially sinusoidal phase-separated waveforms in a manner that the circuitry takes into account only the substantially straight, linear portions of the resulting, intersecting curves, with additional resolution provided by dividing the straight portions into equal length segments, effectively dividing the voltage increments into equal known segments to be associated with fractions of rotor or stator rotation, depending on mechanical design of the motor.
[0128] Some non-limiting exemplary uses and applications for a DC electric motor according to the invention include the following:
[0129] Diagnostic applications: With increasing use of robotics for use in high-throughput processing of fluid samples and performing of diagnostic assays, high resolution control of mechanical mechanisms has become extremely useful. Particularly, as diagnostic devices have trended toward small-scale and microdevices, which are more efficient and require smaller sample sizes, control over small-scale movements is of particular interest.
[0130] Medical applications: With increasing use of robotics for remote surgery techniques, extremely well controlled movement of remotely controlled implements have become essential. For example, in ophthalmology or neurology procedures where manipulation of retinal cells or nerve endings require movements with microscopic resolution. In order to effect these movements, which are far finer than is possible with a human hand with eye coordination, computers are used to move actuators in concert with feedback from suitable sensors. A motor with high resolution positional encoding capabilities as disclosed herein can assist the computer, and therefore the surgeon, in performing these delicate procedures.
[0131] Semiconductor fabrication: Systems for fabrication of semiconductor devices rely on fine movement of the silicon wafer and manipulator arms. These movements are regulated by means of positional feedback. A motor with high resolution positional encoding capabilities as disclosed herein suitable in these applications.
[0132] Aerospace and satellite telemetry: High resolution angular position feedback can be used for precise targeting and for antenna positioning. In particular, satellite communication antenna dishes need to precisely track orbiting satellites. Satellite trajectory combined with precise angle feedback from a motor as described herein mounted to the antenna and power spectrum from the antenna can assist precise tracking. In addition, because the motor as described herein is small, inexpensive and robust, it is an ideal choice for use on satellites and in other extra-terrestrial applications that will be well known to persons of skill in the art.
[0133] Remote controlled vehicles: the small size and reduced cost of the motor disclosed herein makes it desirable for use in remote controlled vehicle applications, including drones. In particular the high resolution positional encoding features of the motor make it ideal for steering (directional control) and acceleration (power control) in both commercial and recreational uses of remote controlled vehicles. Additional uses will be apparent to persons of ordinary skill in the art.
[0134] Further to the above, the skilled person will be aware that there are a variety of ways that circuitry may be arranged to provide granular control for a motor thusly equipped and sensed. The invention is limited only by the claims that follow.