Automatic calibration of encoder

Through moving average algorithm and rotary cycle division technology, the encoder realizes automatic calibration on the user side, solving the problem of reference encoder and only performing calibration in the factory in the prior art, improving the flexibility and scalability of calibration.

CN119618286APending Publication Date: 2025-03-14AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411075708.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-09-13
Filing Date
2024-08-07
Publication Date
2025-03-14

AI Technical Summary

Technical Problem

The existing encoder calibration process requires a reference encoder and is only performed once in the factory, and automatic calibration on the user side cannot be achieved.

Method used

Through moving average algorithm and rotation cycle division technology, the encoder can automatically detect the rotation position and speed changes of the exciter and perform self-calibration.

Benefits of technology

Automatic calibration of the encoder on the user side is realized, reducing dependence on the reference encoder, and improving calibration flexibility and scalability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119618286A_ABST
    Figure CN119618286A_ABST
Patent Text Reader

Abstract

The invention relates to automatic calibration of an encoder. Novel tools and techniques are provided for implementing an encoder capable of performing a self-calibration process, and more particularly, methods, systems, and apparatus are provided for implementing an encoder capable of performing a process of calibrating itself using a moving average algorithm. In various embodiments, the encoder includes an exciter and a sensor capable of detecting a position of the exciter and generating a signal based on the position of the exciter. The encoder can then perform one or more steps to calibrate itself using a moving average algorithm to address variations in the rotational speed of the encoder.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS REFERENCE TO RELATED APPLICATIONS

[0002] This application is related to U.S. application No. 18 / 466,811, filed on September 13, 2023, entitled “Automatic Stabilization of Encoders” (attorney file number 1317.230050US01) and U.S. application No. 18 / 466,817, filed on September 13, 2023, entitled “Automatic Calibration of Encoder based on Temperature” (attorney file number 1317.230022US01), which are jointly owned and incorporated herein by reference for all purposes.

[0003] Copyright Notice

[0004] A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. Technical Field

[0005] The present disclosure relates generally to methods, systems, and apparatus for implementing encoder calibration, and more particularly to methods, systems, and apparatus for implementing encoder calibration by dividing the rotation of an actuator into two or more segments. Background Art

[0006] Most types of encoders require calibration before using the encoder. Calibration of an encoder is usually performed only once in the life of the encoder (for example, when the encoder is first set up). In order to calibrate the encoder, a reference encoder is usually required. A reference encoder is an additional encoder that has already been calibrated. The signal of the reference encoder is compared with the signal from the encoder. The signal of the encoder is then corrected based on the comparison of the signal of the encoder with the signal of the reference encoder to determine the angular position of the encoder. However, this calibration process using a reference encoder can usually only be performed once at the factory, because once the encoder is calibrated, the reference encoder is removed, and the encoder is then shipped from the factory to the customer.

[0007] Therefore, a more robust and scalable solution is needed for implementing encoder calibration.Accordingly, methods, systems, and apparatus for implementing encoder calibration using a moving average algorithm are provided. Summary of the invention

[0008] In one aspect, the present disclosure relates to an encoder comprising: an actuator; a sensor configured to detect a position associated with the actuator and generate a signal based on the position; and a controller configured to run a process for calibrating the encoder, the process comprising: detecting rotation of the actuator; receiving the signal from the sensor; detecting a first position of the actuator and a second position of the actuator based on the signal for a first rotation cycle; after completing the first rotation cycle, dividing the first rotation cycle into two or more first segments and determining a first time for the actuator to rotate through the first segment for a first segment of the two or more first segments; detecting a third position of the actuator and a fourth position of the actuator for a second rotation cycle based on the signal; after completing the second rotation cycle, dividing the second rotation cycle into two or more second segments and determining a second time for the actuator to rotate through the corresponding first segment for a corresponding first segment of the two or more second segments, wherein the corresponding first segment corresponds to the first segment of the first rotation cycle; determining that the first time is within a first predetermined threshold of the second time; and calibrating the signal of the sensor based on determining that the first time is within the first predetermined threshold of the second time.

[0009] On the other hand, the present disclosure relates to a method for calibrating an encoder, the method comprising: detecting rotation of an exciter of the encoder; detecting a signal from a sensor of the encoder, wherein the sensor detects a position associated with the exciter and generates the signal based on the position; detecting a first position of the exciter and a second position of the exciter based on the signal for a first rotation cycle; after completing the first rotation cycle, dividing the first rotation cycle into two or more first segments and determining a first time for the exciter to rotate through the first segment for a first segment of the two or more first segments; detecting a third position of the exciter and a fourth position of the exciter for a second rotation cycle based on the signal; after completing the second rotation cycle, dividing the second rotation cycle into two or more second segments and determining a second time for the exciter to rotate through the second segment for a corresponding first segment of the two or more second segments, wherein the corresponding first segment corresponds to the first segment; determining that the first time is within a first predetermined threshold of the second time; and calibrating the signal of the sensor based on determining that the first time is within the first predetermined threshold of the second time.

[0010] On the other hand, the present disclosure relates to an encoder, comprising: an actuator; a sensor configured to detect a position associated with the actuator and generate a signal based on the position; and a processor configured to: detect rotation of the actuator; receive the signal from the sensor; determine that one or more changes in the rotation speed of the actuator exceed a first predetermined threshold; divide the rotation cycle of the actuator into two or more segments based on determining that the one or more changes exceed the first predetermined threshold; detect a first position of the actuator for a first segment of the two or more segments based on the signal; determine a first time to rotate the actuator from the first position of the first segment to a second position ... position of the actuator for a first segment of the two or more segments based on the signal; determine a first position of the actuator for a first segment of the two or more segments based on the signal; determine a first position of the actuator for a first segment of the two or more segments detecting that the actuator has reached a third position between the first position and the second position of the first segment, wherein the third position of the first segment is determined using a moving average algorithm; determining a second time for the actuator to rotate to the third position, wherein the second time is the actual time for the actuator to rotate to the third position; calculating a third time for the actuator to rotate to the third position between the first position and the second position based on the first time, wherein the third time is the expected time for the actuator to rotate to the third position; and calculating a first value for correcting the signal generated by the sensor for the third position based on a deviation between the second time and the third time. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The nature and advantages of certain embodiments may be further understood by reference to the remainder of the specification and drawings, wherein the same reference numerals are used to denote similar components. In some instances, a sub-label is associated with a reference numeral to denote one of multiple similar components. When a reference numeral is referenced without specifying the existing sub-label, it is intended to refer to all such multiple similar components.

[0012] Figure 1 is a perspective view of a system having an encoder according to various embodiments;

[0013] Figure 2A is a perspective view of an actuator of a magnetic encoder according to various embodiments;

[0014] Figure 2B is a top view of an actuator of an optical encoder according to various embodiments;

[0015] Figures 3A to 3E is a flow chart of a method of calibrating an encoder according to various embodiments;

[0016] Figure 4 is a graph illustrating application of a moving average algorithm to a signal received from a sensor of an encoder according to various embodiments;

[0017] Figure 5 is a graph illustrating correction of a signal of an encoder using one or more correction values ​​according to various embodiments;

[0018] Figure 6 is a graph illustrating correction values ​​for multiple rotation cycles of a signal of a combined encoder according to various embodiments;

[0019] Figure 7 is a graph illustrating determining a signal correction of an encoder for one or more segments of a rotation cycle according to various embodiments; and

[0020] Figure 8 is a diagram illustrating the division of a rotation cycle into one or more segments according to various embodiments. DETAILED DESCRIPTION

[0021] Various embodiments provide tools and techniques for implementing an encoder that is capable of calibrating itself. More particularly, methods, systems, and apparatus are provided for implementing encoder calibration using a moving average algorithm.

[0022] In a first aspect, an encoder includes: an actuator; a sensor configured to detect a position associated with the actuator and generate a signal based on the position; and a controller. The controller is further configured to run a process of calibrating the encoder. The process may include: detecting rotation of the actuator; receiving the signal from the sensor; and detecting a first position of the actuator and a second position of the actuator based on the signal for a first rotation cycle. After completing the first rotation cycle, the method continues by dividing the first rotation cycle into two or more first segments and determining a first time for the actuator to rotate through the first segment for a first segment of the two or more first segments; and detecting a third position of the actuator and a fourth position of the actuator for a second rotation cycle based on the signal. After completing the second rotation cycle, the process of calibrating the encoder continues by dividing the second rotation cycle into two or more second segments and determining a second time for the actuator to rotate through the corresponding first segment for a corresponding first segment of the two or more second segments. The corresponding first segment corresponds to the first segment of the first rotation cycle. Next, the process of calibrating the encoder includes determining that the first time is within a first predetermined threshold of the second time; and calibrating the signal of the sensor based on determining that the first time is within the first predetermined threshold of the second time.

[0023] In some embodiments, the first position, the second position, the third position, and the fourth position are the same position.

[0024] In some examples, calibrating the signal of the sensor includes: detecting a starting position and an ending position of the actuator for at least one of the first segment or the corresponding first segment; detecting that the actuator has reached an intermediate position between the starting position and the ending position; determining a third time for rotating the actuator to the intermediate position, wherein the third time is an actual time for rotating the actuator to the intermediate position; calculating a fourth time for rotating the actuator to the intermediate position between the starting position and the ending position based on at least one of the first time or the second time, wherein the fourth time is an expected time for rotating the actuator to the intermediate position; and calculating a first value for correcting the signal generated by the sensor for the intermediate position based on a deviation between the third time and the fourth time.

[0025] In various embodiments, the first value is added to a lookup table of the encoder to correct the signal of the encoder. In some cases, the first value is calculated for the middle position of the first segment and the corresponding first segment, and the first values ​​corresponding to the first segment and the corresponding first segment are combined and added to the lookup table of the encoder to correct the signal of the encoder. In various examples, a moving average algorithm is used to determine at least one of the middle position, the starting position, or the ending position of at least one of the first segment or the corresponding first segment.

[0026] In some examples, a moving average algorithm is used to determine the first position, the second position, the third position, and the fourth position. In some cases, the rotational speed of the actuator is non-constant during the process of calibrating the encoder, and the rotational speed of the actuator is not determined prior to the process of calibrating the encoder. In various embodiments, the ratio of the detection rate of the position of the actuator to the rotational speed of the actuator is at least 2500:1.

[0027] In various embodiments, the process further includes: detecting a fifth position of the exciter and a sixth position of the exciter based on the signal for a third rotation cycle, wherein the third rotation cycle occurs before the second rotation cycle; after completing the third rotation cycle, dividing the third rotation cycle into two or more third segments and determining a third time for the exciter to rotate through the third segment for a corresponding second segment of the two or more third segments, wherein the corresponding second segment corresponds to the first segment; determining that the first time is not within the predetermined threshold of the third time; and starting another rotation cycle based on determining that the first time is not within the predetermined threshold of the third time.

[0028] In some cases, the first rotation cycle is divided into two or more first segments based on a rotation speed of the exciter associated with each segment. In some cases, the first rotation cycle is divided into two or more first segments based on a number of harmonics of the signal, wherein a ratio of the number of segments to the number of harmonics of the signal is at least 2:1.

[0029] On the other hand, a method for calibrating an encoder may include: detecting rotation of an exciter of the encoder; detecting a signal from a sensor of the encoder, wherein the sensor detects a position associated with the exciter and generates the signal based on the position; detecting a first position of the exciter and a second position of the exciter based on the signal for a first rotation cycle; after completing the first rotation cycle, dividing the first rotation cycle into two or more first segments and determining a first time for the exciter to rotate through the first segment for a first segment of the two or more first segments; detecting a third position of the exciter and a fourth position of the exciter for a second rotation cycle based on the signal; after completing the second rotation cycle, dividing the second rotation cycle into two or more second segments and determining a second time for the exciter to rotate through the second segment for a corresponding first segment of the two or more second segments, wherein the corresponding first segment corresponds to the first segment; determining that the first time is within a first predetermined threshold of the second time; and calibrating the signal of the sensor based on determining that the first time is within the first predetermined threshold of the second time.

[0030] In some embodiments, the first position, the second position, the third position, and the fourth position are the same position.

[0031] In some examples, calibrating the signal of the sensor includes: detecting a starting position and an ending position of the actuator for at least one of the first segment or the corresponding first segment; detecting that the actuator has reached an intermediate position between the starting position and the ending position; determining a third time for rotating the actuator to the intermediate position, wherein the third time is an actual time for rotating the actuator to the intermediate position; calculating a fourth time for rotating the actuator to the intermediate position between the starting position and the ending position based on at least one of the first time or the second time, wherein the fourth time is an expected time for rotating the actuator to the intermediate position; and calculating a first value for correcting the signal generated by the sensor for the intermediate position based on a deviation between the third time and the fourth time.

[0032] In some cases, the rotational speed of the actuator is non-constant during the process of calibrating the encoder, and the rotational speed of the actuator is not determined prior to the process of calibrating the encoder. In various embodiments, the ratio of the detection rate of the position of the actuator to the rotational speed of the actuator is at least 2500:1.

[0033] On the other hand, an encoder includes: an actuator; a sensor configured to detect a position associated with the actuator and generate a signal based on the position; and a processor. The processor is further configured to: detect the rotation of the actuator; receive a signal from the sensor; determine that one or more changes in the rotation speed of the actuator exceed a first predetermined threshold; and divide the rotation cycle of the actuator into two or more segments based on determining that the one or more changes exceed the first predetermined threshold. The processor is further configured to determine a first position of the actuator for a first segment of the two or more segments based on the signal and determine a first time to rotate the actuator from the first position of the first segment to a second position. In some cases, the first position is different from the second position. Next, the processor is further configured to determine that the actuator has reached a third position between the first position and the second position of the first segment based on the signal. The third position of the first segment is determined using a moving average algorithm. In some cases, the processor is further configured to determine a second time to rotate the actuator to the third position. The second time is the actual time to rotate the actuator to the third position. The processor is further configured to calculate a third time for rotating the actuator to the third position between the first position and the second position based on the first time. The third time is an expected time for rotating the actuator to the third position. In addition, the processor is configured to calculate a first value for correcting the signal generated by the sensor for the third position based on a deviation between the second time and the third time.

[0034] In some cases, dividing the rotation cycle into two or more segments is based on a rotation speed associated with each segment. In some embodiments, the processor is further configured to: after calculating the first value for the first segment, calculate a second value for the signal for correcting a fourth position in a second segment of the two or more segments; add the first value and the second value to a lookup table of the encoder; and use the lookup table to correct the signal received from the sensor for the third position of the first segment and the fourth position of the second segment.

[0035] In the following description, for purposes of explanation, numerous details are set forth to provide a comprehensive understanding of the described embodiments. However, it will be apparent to those skilled in the art that other embodiments may be practiced without these details. Several embodiments are described herein, and although various features are attributed to different embodiments, it should be understood that features described with respect to one embodiment may also be incorporated into other embodiments. However, by the same token, a single feature or multiple features of any described embodiment should not be considered essential to every embodiment of the invention, as other embodiments of the invention may omit such features.

[0036] Similarly, when an element is referred to herein as being "connected" or "coupled" to another element, it is understood that the element may be directly connected to the other element or that there may be intermediate elements between the elements. Conversely, when an element is referred to as being "directly connected" or "directly coupled" to another element, it is understood that there are no intermediate elements in the "direct" connection between the elements. However, the presence of a direct connection does not exclude other connections where there may be intermediate elements.

[0037] In addition, for ease of description, the methods and processes described herein may be described in a particular order. However, it should be understood that unless the context otherwise indicates, intermediate processes may occur before and / or after any portion of the described processes, and that various additional processes may be reordered, added, and / or omitted according to various embodiments.

[0038] Unless otherwise indicated, all numbers used herein to indicate quantities, dimensions, and the like are to be understood as being modified in all instances by the term "about". In this application, the use of the singular includes the plural unless expressly stated otherwise, and the use of the terms "and" and "or" means "and / or" unless otherwise indicated. In addition, the use of the term "comprising" as well as other forms, such as "includes" and "included", are to be considered non-exclusive. In addition, terms such as "element" or "component" encompass both elements and components comprising one unit and elements and components comprising more than one unit, unless expressly stated otherwise.

[0039] In addition, it should be understood that the spatial descriptions used herein (e.g., "above", "below", "upper", "left", "right", "lower", "top", "bottom", "middle", "vertical", "horizontal", etc.) are for illustrative purposes only, and actual implementations of the structures described herein may be spatially arranged in any orientation or manner. In addition, it should be understood that the numerical descriptions used herein (e.g., "first", "second", "third", etc.) are intended to distinguish one or more elements and are not intended to indicate a particular order unless otherwise specified.

[0040] In the existing encoder calibration process, a reference encoder is used to determine the angular position of the encoder. When a reference encoder is used, both the encoder and the reference encoder must transmit information to a processor or controller to calibrate the encoder. Then, the information from the encoder must be compared with the reference encoder and the signal of the encoder must be corrected based on the information comparison between the reference encoder and the encoder. This existing calibration process is time consuming and is usually performed only once in the life of the encoder (e.g., at the factory). Once calibrated, the reference encoder is usually removed and the encoder is shipped to the user without the reference encoder.

[0041] The proposed encoder does not require a reference encoder. In addition, the proposed encoder does not require the motor or exciter of the encoder to rotate at a constant speed. Instead, the proposed encoder and the proposed process for calibrating the encoder only require the encoder. In addition, in order to calibrate the proposed encoder, the motor and / or exciter of the encoder do not need to rotate at a constant speed. Instead, the encoder applies a moving average algorithm to the signal received from the sensor to account for changes in the encoder speed when the exciter and motor rotate. In addition, the rotation of the exciter of the encoder can be divided into one or more segments to account for changes in the rotational speed of the exciter and motor shaft as the exciter and motor shaft rotate.

[0042] Figure 1 1 is a perspective view of a system 100 including a rotating body 105 and an encoder or encoder system 110 according to various embodiments. The rotating body 105 includes, but is not limited to, a rotor disk, a shaft, and / or the like. In some cases, the rotating body 105 may be coupled to an optional motor 115 (e.g., an electric motor or the like). The motor 115 may be configured to rotate the rotating body 105.

[0043] In some embodiments, the encoder system 110 includes a housing 112, a processor or controller 120, an actuator 125, and a sensor 130. In some cases, the sensor 130 may be integrated within or on the housing 112 or the controller 120, or included within or on the housing 112 or the controller 120. In various examples, the encoder 110 further includes a memory (not shown), which may be a non-transitory memory. In various embodiments, the controller 120 may be implemented in a system-on-a-chip (SoC) arrangement. The controller 120 may include a microcontroller unit (MCU), an application specific integrated chip (ASIC), or other form of silicon-based embedded chip.

[0044] The encoder system 110 may be a magnetic encoder, an optical encoder, or the like. The term "magnetic encoder" refers to a type of rotary encoder that uses one or more sensors to identify changes in a magnetic field from a rotating device (e.g., a magnetized wheel or a magnetized ring, or the like) and generates a signal indicating the angular position of the rotating device. The term "optical encoder" refers to a type of rotary encoder that uses one or more sensors to identify changes in light associated with a rotating device (e.g., a code wheel, a code disk, or the like) and generates a signal indicating the angular position of the rotating device. In some embodiments, the encoder system 110 is an absolute encoder that includes a sensor that measures the absolute or true angular position of the encoder's rotating device and generates a unique position value or signal based on the absolute or true angular position of the rotating device.

[0045] In various examples, the actuator 125 is a rotating device of the encoder system 110. In some cases, the actuator 125 is coupled to the rotating body 105. When the rotating body 105 rotates, the actuator 125 also rotates. The actuator 125 can be a different rotating device depending on whether the encoder is a magnetic encoder, an optical encoder, or the like. For example, as indicated above and as Figure 2A As shown in FIG. 1 , the actuator 125a may be a magnetized wheel or a magnetized ring of a magnetic encoder or the like. Figure 2A In the case of , there are two magnetic wheels 135a and 135b that include one or more magnets. The term "magnet" may refer to a material or object that produces a magnetic field (e.g., a force field that attracts or repels certain materials, such as nickel or iron) and may include, but is not limited to, permanent magnets, temporary magnets, electromagnets, or the like. Each magnet may have one or more pole pairs. A "pole pair" may refer to a pair of north and south poles that are associated with the direction of a magnetic field.

[0046] Alternatively, as indicated above and as Figure 2B As shown in FIG. 1 , the actuator 125 b may be a code wheel or code disk 140 of an optical encoder. For an optical encoder, the encoder system 110 may further include Figure 2B 145 (e.g., a light emitting diode, a laser, or the like) and one or more openings 150 are shown in FIG. The one or more openings 150 may be of different shapes, sizes, etc. In some cases, the one or more openings 150 may be one or more sheets of transparent material. The light source 145 may be configured to emit light ( Figure 2B As the actuator 125b rotates, light from the light source 145 may be transmitted toward the sensor 130 through one or more openings 150 in the actuator 125b.

[0047] The sensor 130 is positioned and configured to detect the position of the actuator 125 and identify changes in the angular position of the actuator 125. Based on the position of the actuator 125, the sensor 130 generates one or more signals representing or indicating the angular position of the actuator 125. In some embodiments, the actuator 125 rotates relative to the sensor 130, which is stationary.

[0048] In the case of a magnetic encoder, the sensor 130 detects the position of the actuator 125a by detecting the magnetic field associated with the actuator 125a as the actuator 125a rotates. The sensor 130 may include a Hall effect sensor or other type of magnetoresistive or magnetosensitive sensor, such as anisotropic magnetoresistive (AMR) sensors, giant magnetoresistive (GMR) sensors, and tunneling magnetoresistive (TMR) sensors. Different magnetic fields may be formed at different locations along the actuator 125a. These different magnetic fields may vary based on the size of the pole pairs (e.g., width, length, etc.), the number of magnets used, etc.

[0049] In the case of an optical encoder, the sensor 130 is configured to detect changes in light emitted from the light source 145 through the opening 150 when the actuator 125b is rotated. The sensor 130 may be a photosensor, a photodetector sensor, etc. Depending on the size (e.g., width, length, etc.) of the one or more openings 150, depending on the amount of light emitted through the one or more openings 150, etc., different light patterns may be formed at different locations along the actuator 125b.

[0050] In the case of a magnetic encoder in which the sensor 130 detects the magnetic field of the actuator 125a or an optical encoder in which the sensor 130 detects light emitted from a light source through the actuator 125b, the sensor 130 generates a signal or one or more signals based on the detected magnetic field or the detected light. The difference in the magnetic field of the actuator 125a or the light emitted by the actuator 125b can be represented by different parts of the signal. The signal can include an electrical signal configured in a sinusoidal waveform. In other words, the signal generated by the sensor 130 can include at least a sine signal and a cosine signal.

[0051] The sensor 130 may then send these signals to the controller 120. Based on the signals generated by the sensor 130, the controller 120 may determine or detect the angular position of the actuator 125. In a non-limiting example, to determine or detect a first position of the actuator 125, the sensor 130 may detect a first magnetic field or a first pattern of emitted light and generate a signal based on the detected first magnetic signal or the first pattern of emitted light. Next, the controller 120 may receive the signal and determine or detect a position associated with the actuator 125 based on the signal generated by the detection of the first magnetic field or the first pattern. Based on the position of the actuator 125, the controller 120 may further determine or detect the position of the rotating body 105 of the motor.

[0052] Go to Figures 3A to 3E (collectively referred to as Figure 3), Figures 3A to 3E is a flow chart illustrating a process or method for calibrating an encoder according to various embodiments. This figure provides examples only, which should not unduly limit the scope of the claims. In some embodiments, Figure 1 The encoder system 110 shown in FIG. 3 is capable of performing the automatic calibration process 300 described in FIG. 3 . However, the process is not limited to using only Figure 1 300. In some cases, a processor or controller of an encoder (e.g., processor or controller 120) is configured to perform process 300. In some cases, multiple controllers are configured to perform one or more blocks or steps of process 300. Alternatively, a single controller is configured to perform blocks or steps of process 300.

[0053] Process 300 may begin at optional block 302 by receiving an instruction to calibrate an encoder (e.g., encoder system 110, etc.). The instruction may be received from a user selecting a calibration button on the encoder. Alternatively, the instruction may be based on determining that the encoder system 110 has been turned on for the first time. Alternatively, the instruction may occur after a predetermined amount of time (e.g., a week, a month, a year, etc.) since the first calibration of the encoder. In this case, the encoder may be recalibrated after a week, a month, a year, etc.

[0054] Once process 300 begins, process 300 may continue at box 304 by rotating an exciter of the encoder (e.g., exciter 125) and / or detecting rotation of the exciter. To rotate the exciter, the exciter may be coupled to a rotating body (e.g., rotating body 105), which may be coupled to a motor (e.g., motor 115). The motor may be turned on, causing the rotating body and the exciter to rotate. In some cases, the exciter of the encoder rotates at a speed that is not predetermined by the encoder or the motor. In some cases, the controller may rotate the exciter. In other cases, the controller may detect that the exciter is rotating. In various examples, the exciter of the encoder begins to rotate and then the controller may determine or detect the speed at which the exciter is rotating by determining a first position of the exciter and a second position of the exciter and determining the amount of time it takes to rotate the exciter from the first position to the second position.

[0055] Next, process 300 may continue at block 306 by detecting or sampling the position of the actuator with a sensor (e.g., sensor 130) of the encoder as the actuator rotates. The sensor may be configured to continuously detect the position of the actuator over one or more rotation cycles of the actuator. A rotation cycle is a rotation of the actuator from a first position to a second position. In some cases, the first position is the same as the second position. In the case where the first position is the same as the second position, a rotation cycle of the actuator represents a complete rotation (e.g., 360 degrees) of the actuator from the first position back to the first position. The sensor is configured for at least one of: detecting a magnetic field from one or more magnetic rings (e.g., magnetic ring 135) of the encoder or detecting light emitted from a light source (e.g., light source 145) through one or more openings (e.g., opening 150) of the actuator. The sensor converts the detected magnetic field or light into a signal. Then, a controller of the encoder may receive the signal and determine or detect the position of the encoder based on the signal received from the sensor.

[0056] In order to continuously detect or determine the position of the actuator over one or more rotation cycles of the actuator, a moving average algorithm may be applied to the signal. A moving average algorithm or filter is a calculation that analyzes a data point (e.g., the position of the actuator indicated by the signal generated by the sensor) by creating a series of averages of different selections of the complete data set. Given a series of numbers and a fixed subset size, the first element of the moving average is obtained by averaging an initial fixed subset of the series of numbers. The subset is then modified by "shifting forward"; that is, excluding the first number of the series and including the next value in the subset. This moving average algorithm process may be applied to the first rotation cycle of the actuator or other rotation cycles to filter out sudden angular position deviations caused by changes in the rotation speed of the actuator (e.g., jerks, accelerations, braking, etc. that affect the rotation or rotation speed of the actuator). In other words, a moving average algorithm may be applied to the signal generated by the sensor to smooth the signal and account for sudden changes in the position of the actuator.

[0057] An example of applying the moving average algorithm to a signal received from a sensor is shown in Figure 4 In the graphs 400a and 400b. Figure 4 As shown in the graph 400a of FIG. 4 , due to the variation in the rotational speed of the encoder, the position of the actuator may be irregular or deviated at different intervals (as shown by the solid line 402). For example, the irregularity or deviation may be caused by sudden irregular jerk or braking of the motor, which may change the behavior of the signal generated by the angular rotation of the actuator. By performing a moving average, as shown by Figure 4 The dashed line 404 in Graph 400b shows that the effects caused by such irregularities can be eliminated or smoothed. Graph 400b shows a zoomed in portion of the application of a moving average algorithm. Box 406 shows an area of ​​the graph where the position has been corrected based on a moving average algorithm to filter out sudden changes in the position of the actuator.

[0058] In order to more effectively apply the moving average algorithm to the signal generated by the sensor, the sampling frequency or detection frequency of the sensor for the position of the actuator can be higher than the rotation speed of the actuator. For example, the ratio of the sampling frequency or detection frequency of the sensor to the rotation speed of the actuator can be at least 2500 to 1. In other words, for each rotation cycle, the sensor can detect or sample the position of the actuator at least 2500 times.

[0059] In some cases, the controller may continuously monitor and determine the rotational speed of the actuator over one or more rotational cycles based on the detected position of the actuator. In various embodiments, the controller may monitor and determine the rotational speed of the actuator over one or more segments (e.g., segments, zones, sections, etc.) of one or more rotational cycles.

[0060] At optional block 308, process 300 continues by determining a rotation of the actuator based on the signal received from the sensor. Determining the rotation of the actuator includes continuously detecting a position of the actuator of the encoder over at least one rotation cycle.

[0061] In some embodiments, determining the rotation of the actuator further comprises detecting the rotation speed of the actuator and / or one or more changes in the rotation speed of the actuator within at least one rotation cycle or one or more segments of the rotation cycle. The one or more changes in the rotation speed of the actuator may be caused by jerkiness of the motor, the rotating body or the actuator, braking of the motor, the rotating body or the actuator, acceleration of the motor, the rotating body or the actuator, defects in the processing or manufacturing of the motor, the rotating body, the encoder, irregular operation of the motor, the rotating body or the actuator, etc. When one or more changes in the rotation speed of the actuator occur, the actuator rotates at a non-constant speed throughout the rotation cycle.

[0062] One or more changes in the rotational speed of the actuator may be detected by sampling (e.g., detecting) a magnetic field or light with a sensor to determine or detect two or more positions of the actuator as the actuator rotates. Additionally, the controller may track the amount of time it takes for the actuator to rotate to each position as the actuator rotates. The controller may determine the rotational speed of the actuator between a previous position and a next position of the actuator within a rotation cycle or rotation cycle segment based on the position of the actuator and the amount of time it takes to rotate the actuator from the previous position to the next position. The controller or processor may then track the rotational speed of the actuator as the actuator is rotating and detect one or more changes or irregularities in the rotational speed of the actuator between two or more positions of at least one rotation cycle or at least one segment of a rotation cycle.

[0063] Based on the number of changes detected, the controller may further determine whether the number of changes exceeds a first predetermined threshold. If the number of changes in the rotational speed of the exciter exceeds the first predetermined threshold for at least one rotation cycle, the controller may wait for one or more other rotation cycles to start the calibration process when the number of changes is less than the first predetermined threshold. Alternatively, based on determining that the number of changes exceeds the first predetermined threshold for at least one rotation cycle or a predetermined number of rotation cycles, the controller may pause or stop calibration of the encoder and notify the user of the encoder of the irregular rotational speed of the exciter. The controller may pause or stop the calibration cycle because the rotational speed of the exciter is so irregular that the encoder cannot be calibrated. In some cases, the notification includes the reason for pausing or stopping the calibration (e.g., one or more changes exceed the first predetermined threshold).

[0064] In some cases, the encoder may further optionally determine whether the number of changes is less than a first predetermined threshold and a second predetermined threshold. If the number of changes is less than the first predetermined threshold and less than the second predetermined threshold, the encoder may determine that the change in the rotational speed of the actuator for the corresponding rotation cycle is minimal and assume that the rotational speed of the corresponding rotation cycle is relatively constant. In this case, the process may continue to Figure 3B , indicated by circle A. Alternatively, if the number of changes is between the first predetermined threshold and the second predetermined threshold, the process may continue to Figure 3C (indicated by circle B) or Figure 3D (Indicated by circle C).

[0065] Based on determining that the number of changes is less than the first predetermined threshold and less than the second predetermined threshold, process 300 may continue the process of calibrating the encoder and determining or detecting a first position of the actuator based on the signal at optional block 310. In some cases, determining or detecting the first position of the actuator begins a first rotational cycle or another rotational cycle of the calibration process. In some cases, the calibration process of the encoder may begin at block 310 without determining the number of changes.

[0066] After determining or detecting the first position, process 300 continues at optional block 312 by determining or detecting a second position and determining a first time to rotate the actuator from the first position to the second position for a first rotation cycle or another rotation cycle. The first rotation cycle or another rotation cycle represents a rotation from the first position to the second position. In some cases, the second position is the same as the first position and the first rotation cycle or another rotation cycle represents a complete rotation of the actuator from the first position back to the first position.

[0067] As the actuator rotates the first rotational cycle or another rotational cycle, the process continues at optional block 314 by determining or detecting, based on the signal, that the actuator has reached at least one third position between the first position and the second position. Determining or detecting that the actuator has reached at least one third position between the first position and the second position may be determined by applying a moving average algorithm or filter to the signal received from the sensor. In some cases, determining or detecting the first position and the second position of the actuator may also be accomplished by applying a moving average algorithm or filter to the signal received from the sensor. This process of applying a moving average algorithm may be similar to the process described above.

[0068] Next, process 300 may continue to optional block 316 and determine a second time to rotate the actuator to at least one third position during the first rotation cycle or another rotation cycle. In some cases, determining the second time to rotate the actuator to at least one third position during the first rotation cycle includes determining the second time to rotate the actuator from a position prior to the third position to at least one third position during the first rotation cycle or another rotation cycle. In some cases, the prior position is a position immediately prior to or directly in front of the third position. In some cases, the prior position is the first position. The second time may be the actual time to rotate the actuator to the third position during the first rotation cycle or another rotation cycle.

[0069] In some embodiments, process 300 includes calculating at least one third time to rotate the actuator to at least one third position based on the first time at optional block 318. This calculation can be done based on the first time associated with the first rotation cycle or based on the first time associated with another rotation cycle. This calculation represents an ideal or expected amount of time to rotate the actuator to the third position. This calculation can be performed based on the assumption that the rotation speed of the actuator is constant to rotate the actuator from the first position to the second position. In a non-limiting example, it may take 360 ​​seconds to rotate the actuator 360 degrees from the first position to the second position (when the second position is the same as the first position). This means that under ideal or expected circumstances, it takes one second for the actuator to rotate one degree. Therefore, if the third position is 180 degrees from the first position, it ideally takes 180 seconds for the actuator to rotate from the first position to the third position. Alternatively, if the third position is located at 180 degrees from the first position, then the immediately preceding position (e.g., the position directly before the third position without any intermediate positions) may be 179 degrees. Therefore, ideally, it takes 1 second for the actuator to rotate from the immediately preceding position to the third position. [Paragraph A]

[0070] At optional block 320, process 300 may further include calculating a first value for correcting a signal generated by the sensor for at least one third position based on the second time and the third time. This calculation may be performed by comparing the ideal or expected rotation of the actuator for the third position calculated in optional block 318 with the actual rotation of the actuator determined in optional blocks 314 and 316. By comparing the ideal or expected rotation with the actual rotation of the actuator, a deviation of the actual rotation of the actuator from the ideal or expected rotation of the actuator for a respective position (e.g., the third position) may be determined. A correction value may be calculated to correct for the deviation of the actual position over time from the calculated expected position over time. In a non-limiting example, the following equation may be used to calculate the correction value.

[0071]

[0072] In some embodiments, if the actual time to reach the third position deviates from the expected time to reach the third position, the output signal of the encoder is corrected by the calculated deviation. Then, the encoder can directly output the corrected signal. The output corrected signal can be a second signal (e.g., a sinusoidal signal) generated based on the correction value and the signal of the sensor (e.g., by the controller). This correction process is Figure 5 500a and 500b. For example, line 502 represents the expected time for each position, while line 504 represents the actual time for each position. In addition, line 506 represents the position error and line 508 represents the correction value to correct the position error. Thus, when the calculated or expected time is not reached for the third position, the corresponding correction value can be added to the measured or actual position, or when the calculated time is exceeded for the third position, the corresponding correction can be subtracted from the measured or actual position. If there is no deviation, the absolute position can be generated directly by the sensor of the encoder, i.e., without any correction calculation.

[0073] In some cases, the process of optional blocks 314 to 318 includes determining and calculating a corresponding amount of time required for the actuator to rotate from the first position or previous position to each fourth position (including at least one third position) in a plurality of fourth positions. In some cases, each fourth position represents at least 1 degree out of 360 degrees. In other cases, each fourth position represents a pole of a magnet (e.g., a pole of magnetic actuator 125a). When doing so, a corresponding value of the correction signal can be calculated for each fourth position in the plurality of fourth positions (block 320). In addition, a moving average algorithm can also be used to determine or detect each fourth position in the plurality of fourth positions.

[0074] At optional block 322, the process continues by adding the correction value to a lookup table. The lookup table may be generated by a controller of the encoder and stored in a memory of the encoder. Then, when the encoder is in use, the encoder may use the lookup table to correct the signal generated by the sensor based on the actual time to rotate the actuator to a particular position and the ideal time to rotate the actuator to the particular position. To correct the signal generated by the sensor, the controller may generate a corrected signal based on one or more values ​​in the lookup table and the signal generated by the sensor.

[0075] In some cases, optional blocks 310-320 may be repeated for a plurality or a predetermined number of rotation cycles. At least one third position may be determined for each of the plurality or a predetermined number of rotation cycles. When these optional blocks 310-320 are repeated for a plurality or a predetermined number of rotation cycles, the correction values ​​corresponding to each rotation cycle may be combined (e.g., averaged) to produce a final lookup table or graph (e.g., Figure 6 For example, Figure 6 A first rotation cycle 602 , a second rotation cycle 604 , and a combination (eg, average) 606 of the first rotation cycle 602 and the second rotation cycle 604 are shown.

[0076] A combination 606 of the first rotation cycle 602 and the second rotation cycle 604 may be added to the lookup table.

[0077] In some cases, if the number of changes is between the first predetermined threshold and the second predetermined threshold, the process may continue to Figure 3C For example, if the encoder is experiencing one or more changes in the rotational speed of the actuator, but the controller determines that the encoder can still be calibrated, the method continues to optional block 324. Alternatively, in some cases, the method 300 proceeds to optional block 324 even if no number of changes are detected. Figure 3C Optional box 324.

[0078] At optional block 324, process 300 may determine whether the exciter rotates at a non-constant speed or whether there are one or more variations or irregularities in the rotational speed of the exciter within one or more segments of the exciter's rotational cycle. For example, whether the exciter exhibits a first rotational speed within a first segment of the rotational cycle and a second rotational speed within a second segment, etc. This determination of the one or more variations may be accomplished by continuously determining the rotational speed of the exciter from one position to the next within the rotational cycle. In some cases, one or more variations in the rotational cycle are repeatable. In other words, for each rotational cycle, the one or more variations are repeated at the same or substantially the same position or location. Based on determining that there are one or more variations in the rotational speed of the exciter within the exciter's rotational cycle, the process at optional block 326 may divide the rotational cycle into two or more segments and perform a calibration cycle for each segment of the rotational cycle.

[0079] In a non-limiting example, each segment of the first rotation or other rotation may correspond to at least 1 degree out of 360 degrees. In other cases, each segment represents a pole or multiple poles of a magnet (e.g., a pole of the magnetic exciter 125a). In some cases, the segments may be divided based on where the change occurs (e.g., a first segment may have a first rotation speed and a second segment may have a second rotation speed). Such a situation may occur due to the use of different types of motors (e.g., a three-phase motor may have three harmonic speed fluctuations or jitters when rotating within a single motor full circle or full revolution depending on its construction). In this case, when the segments are divided based on where the change occurs, the segments may be different lengths. In some cases, the ratio of the number of segments to the number of phases of the signal is at least 2:1. In a non-limiting example, the signal may have one, two, or three harmonics or phases, so the number of segments may be at least two, four, or six, respectively.

[0080] In some cases, process 300 may continue and determine or detect a first position of the actuator for each segment of the rotation cycle based on the signal at optional block 328. In some cases, the first position of each segment is the starting position of each segment. In some cases, the first position also represents the ending position of the previous segment.

[0081] After determining or detecting the first position, process 300 continues at optional block 330 by determining or detecting a second position and determining a first time to rotate the actuator from the first position to the second position for each segment. In some cases, the second position is the end position of each segment. In some cases, the second position also represents the start position of the next segment.

[0082] As the actuator rotates, the process continues at optional block 332 by determining or detecting, based on the signal, that the actuator has reached at least one corresponding third position between the first position and the second position of each segment. Determining or detecting that the actuator has reached at least one third position between the first position and the second position of each segment may be determined by applying a moving average algorithm or filter to the signal received from the sensor. In some cases, determining or detecting the first position and the second position of the actuator may also be accomplished by applying a moving average algorithm or filter to the signal received from the sensor. This process may be similar to Figure 3B Optional box 314.

[0083] Next, process 300 may continue to optional block 334 and determine a corresponding second time to rotate the actuator to the corresponding third position of each of the two or more segments. The corresponding second time may be the actual time to rotate the actuator to the corresponding third position in each of the two or more segments. This process may be similar to Figure 3B Frame 316.

[0084] At optional block 336, the process may further include calculating at least one corresponding third time for the actuator to rotate to at least one corresponding third position in each segment. This calculation represents an ideal or expected amount of time for the actuator to rotate to the corresponding third position in each segment. This process may be similar to Figure 3B Frame 318.

[0085] In some embodiments, process 300 may further include, at optional block 338, calculating, for each segment, a first value for correcting a signal generated by the sensor for a corresponding third position for each of the two or more segments based on the corresponding second time and the corresponding third time. This process may be similar to Figure 3B In a non-limiting example, Figure 7 Graph 700 shows the calculation of one or more correction values ​​702 for one or more positions 704 for a first segment 706 of a rotation cycle.

[0086] Once the correction values ​​for each segment of the rotation cycle or the position in each segment are determined, the correction values ​​for each segment can be added to the lookup table of optional block 340. The encoder can then look up the correction values ​​and correct the signal for each segment based on determining that the actuator rotated through a particular segment. To correct the signal generated by the sensor, the controller can generate a corrected signal based on one or more values ​​associated with each segment in the lookup table and the signal generated by the sensor.

[0087] In some cases, blocks 328 to 338 may be repeated for multiple or a predetermined number of rotation cycles. In other words, at least one third position may be determined or detected for each corresponding third position of each segment of the multiple or predetermined number of rotation cycles. When these blocks 328 to 338 are repeated for multiple or a predetermined number of rotation cycles, two or more correction values ​​corresponding to each corresponding third position of each segment of each rotation cycle may be combined (e.g., averaged) to produce a final lookup table (similar to the process described above).

[0088] In some cases, if the number of changes is between the first predetermined threshold and the second predetermined threshold, the process may continue to Figure 3D For example, if the encoder is experiencing one or more changes in the rotational speed of the actuator, but the controller determines that the encoder can still be calibrated, the method continues to optional block 342. Alternatively, in some cases, the method 300 proceeds to optional block 342 even if no number of changes are detected. Figure 3D Optional box 342.

[0089] At optional block 342, process 300 may determine or detect a first position of the actuator and a second position of the actuator based on the signal for a first rotation cycle. In some cases, the first position is a starting position of the first rotation cycle and the second position is an ending position of the first rotation cycle. In some cases, the first position is the same as the second position. In cases where the first position is the same as the second position, the rotation cycle of the actuator represents a complete rotation of the actuator from the first position back to the first position.

[0090] After completing the first rotation cycle, the method 300 may divide the first rotation cycle into two or more first segments (optional block 344) and determine a first time for rotating the actuator through at least one of the two or more first segments for at least one of the two or more first segments (optional block 346). In some cases, the method may determine a corresponding first time for rotating the actuator through each of the two or more first segments. The first time represents an actual amount of time for rotating the actuator through at least one of the first segments or a corresponding actual amount of time for rotating the actuator through each segment. In some cases, the actual amount of time for rotating the actuator through each first segment may vary from segment to segment.

[0091] In a non-limiting example, each segment of the first rotation cycle may correspond to at least 1 degree out of 360 degrees. In other cases, each segment represents a pole or multiple poles of a magnet (e.g., a pole of the magnetic exciter 125a). In some cases, the segments may be divided based on where the change occurs (e.g., the first segment may have a first rotation speed and the second segment may have a second rotation speed). In some cases, each segment may have a different length. Such a situation may occur due to the use of different types of motors (e.g., a three-phase motor may have three harmonic speed fluctuations or jitters when rotating within a single motor full circle or full revolution depending on its construction). Alternatively, in other cases, the segments may be divided based on the phase of the signal. In some cases, the ratio of the number of segments to the number of phases of the signal is at least 2:1. In a non-limiting example, the signal may have one, two, or three harmonics or phases, so the number of segments may be at least two, four, or six, respectively.

[0092] At optional block 348, process 300 may determine or detect a third position of the actuator and a fourth position of the actuator based on the signal for a second rotation cycle. In some cases, the third position is the starting position of the second rotation cycle and the third position is the ending position of the second rotation cycle. In some cases, the third position is the same as the fourth position. In some cases, the first position, the second position, the third position, and the fourth position are the same position. In the case where the first position, the second position, the third position, and the fourth position are the same position, the first rotation cycle and the second rotation cycle of the actuator represent two complete rotations of the actuator.

[0093] After completing the second rotation cycle, the method 300 may divide the second rotation cycle into two or more second segments (optional block 350) and determine a second time for rotating the actuator through at least one of the two or more second segments for at least one corresponding segment of the two or more second segments (optional block 352). In some cases, the corresponding segment corresponds to the first segment of the first rotation cycle. In other words, the corresponding segment is the same or substantially the same as the first segment of the first rotation cycle. In some cases, the method may determine a second time for rotating the actuator through each of the two or more second segments. The second time represents an actual amount of time for rotating the actuator through at least one of the second segments or a corresponding actual amount of time for rotating the actuator through each of the second segments. In some cases, the actual amount of time for rotating the actuator through each of the second segments may vary from segment to segment.

[0094] In a non-limiting example, each segment of the second rotation cycle may correspond to a segment of the first rotation cycle. In other words, the beginning segment of two or more first segments may correspond to the beginning segment of two or more second segments, and the next segment of the two or more first segments may correspond to the next segment of the two or more segments. This corresponding process may continue until the last segment of the two or more first segments corresponds to the last segment of the two or more second segments. In some cases, each second segment of the second rotation cycle has at least one of substantially the same length, substantially the same position, or substantially the same rotation speed as the corresponding segment of the first rotation cycle.

[0095] Next, at optional block 354, the method 300 may continue by determining, for at least one of the two or more first segments, whether the corresponding first time of the at least one first segment is within a first predetermined threshold of the corresponding second time of the corresponding first segment of the second rotation cycle. In other words, the method may determine whether the rotation speed through the at least one first segment is substantially the same as the rotation speed through the corresponding first segment of the second rotation cycle. This process may be performed for each of the one or more first segments. In other words, the first time of the beginning segment of the two or more first segments may be compared with the second time of the beginning segment of the two or more second segments, and the first time of the next segment of the two or more first segments may be compared with the second time of the next segment of the two or more segments. This comparison process may continue until the first time of the last segment of the two or more first segments is compared with the second time of the last segment of the two or more second segments. In some cases, the first time of each of the one or more first segments must be within a predetermined threshold of the corresponding second time of the corresponding segment of the second rotation cycle. Alternatively, in other cases, only at least one first segment must be within a first predetermined threshold of the corresponding second time of the corresponding segment of the second rotation cycle.

[0096] The predetermined threshold may be a percentage difference between the first time and the second time. The percentage difference may be less than .25%, .5%, 1%, 2%, 5%, etc. In other words, if the first time to rotate the actuator through the first segment is 5 seconds, and the second time to rotate the actuator through the corresponding first segment is 4.95 seconds, then the percentage difference is approximately 1%, which is within the predetermined threshold.

[0097] If the corresponding first time of the at least one first segment is within a first predetermined threshold of the corresponding second time of the corresponding first segment of the second rotation cycle, then the controller of the encoder can determine that the at least one first segment and the corresponding first segment rotate in a similar or substantially identical manner. This is important because if there is a significant difference between the rotation of the at least one first segment and the corresponding first segment, then the encoder is likely out of calibration because the actuator is not rotating consistently or smoothly.

[0098] Based on determining that the corresponding first time of at least one first segment is not within the first predetermined threshold of the corresponding second time of the corresponding first segment, the method may continue to optional block 356 and start another rotation cycle. Starting another rotation cycle may include determining or detecting additional start and end positions of another rotation cycle, dividing the other rotation cycle into one or more other segments, and determining another time to rotate the actuator through at least one corresponding segment of the two or more other segments. Next, the method may include determining, for at least one first segment of the two or more first segments or at least one corresponding segment of the two or more second segments, whether the corresponding first time of the at least one first segment or the corresponding second time of the at least one corresponding segment is within the first predetermined threshold of the corresponding other time of the corresponding segment of the third rotation cycle. This process may continue until two or more rotation cycles with corresponding segments within the predetermined threshold are obtained.

[0099] In a non-limiting example, the process of dividing the actuator position into one or more segments is performed in Figure 8 As shown in FIG800. Figure 8 As shown in , a first rotation cycle, a second rotation cycle and a third rotation cycle are shown. Each rotation cycle is divided into three segments. The first segment of the first rotation cycle corresponds to the first segment of the second and third rotation cycles, the second segment of the first rotation cycle corresponds to the second segment of the second and third rotation cycles, and the third segment of the first rotation cycle corresponds to the third segment of the second and third rotation cycles.

[0100] Based on determining that the corresponding first time of the at least one first segment is within the first predetermined threshold of the corresponding second time of the corresponding segment, the method may continue to optional block 358 and calibrate the at least one first segment or the corresponding segment. Figure 3E Described in and similar to Figure 3C Frames 328 to 340 of FIG.

[0101] In some cases, process 300 may continue and determine or detect a first position of an actuator of at least one first segment and / or at least one corresponding segment based on the signal at optional block 360. In some cases, the first position is a starting position of the at least one first segment and / or at least one corresponding segment. In some cases, the first position also represents an ending position of a previous segment. In some cases, a first position of each of two or more first segments and / or two or more second segments may be determined.

[0102] After determining the first position, process 300 continues at optional block 362 by determining or detecting a second position of the actuator of at least one first segment and / or at least one corresponding segment based on the signal. In some cases, the second position is the end position of at least one first segment and / or at least one corresponding segment. In some cases, the second position also represents the start position of the next segment. In some cases, the second position of each of two or more first segments and / or two or more second segments may be determined.

[0103] In some cases, process 300 continues at optional block 364 by determining a first time to rotate the actuator from the first position to the second position of at least one first segment and / or at least one corresponding segment. In some cases, the first time is determined for each of the two or more first segments and / or the two or more second segments. In some cases, this first time is the same as the time determined in blocks 346 and / or 352.

[0104] As the actuator rotates, the process continues at optional block 366 by determining or detecting that the actuator has reached at least one corresponding third position between the first position and the second position of at least one first segment and / or at least one corresponding segment. In some cases, the third position is an intermediate position (e.g., between the first position and the second position). In some cases, a third position may be determined for each of two or more first segments and / or two or more second segments. This process may be similar to Figure 3B Optional box 314 or Figure 3C Optional box 332.

[0105] Next, process 300 may continue to optional block 368 and determine a corresponding second time to rotate the actuator to a corresponding third position of at least one first segment and / or at least one corresponding segment. The corresponding second time may be the actual time to rotate the actuator to the corresponding third position in each of the two or more segments. In some cases, the second time may be determined for each of the two or more first segments and / or the two or more second segments. This process may be similar to Figure 3B Box 316 or Figure 3C Frame 334.

[0106] At optional block 370, the process may further include calculating at least one corresponding third time to rotate the actuator to at least one corresponding third position of at least one first segment and / or at least one corresponding segment. This calculation represents an ideal or expected amount of time to rotate the actuator to the corresponding third position in each segment. In some cases, a third time may be determined for each of two or more first segments and / or two or more second segments. This process may be similar to Figure 3B Box 318 or Figure 3C Box 338.

[0107] In some embodiments, process 300 may further include, at optional block 372, for at least one first segment and / or at least one corresponding segment, calculating a first value or correction value for correcting a signal generated by the sensor for a corresponding third position in the at least one first segment and / or at least one corresponding segment based on the corresponding second time and the corresponding third time. This process may be performed or repeated for multiple positions within each segment. In some cases, this process may be similar to Figure 3B In some cases, a first value may be determined for each of the two or more first segments and / or the two or more second segments and / or each position in each segment. This process may be similar to Figure 3C Box 338.

[0108] Once the correction value for at least one first segment and / or at least one corresponding segment is determined, the correction value for at least one first segment and / or at least one second segment may be added to the lookup table at optional block 374. Alternatively, once the correction value for each segment of the rotation cycle or a position in each segment is determined, the correction value for each segment may be added to the lookup table. In some cases, a lookup table may be generated for each of the one or more segments. In a non-limiting example, in Figure 8 , one or more first correction values ​​for one or more positions in a first segment may be added to a first lookup table, one or more second correction values ​​for one or more positions in a second segment may be added to a second lookup table, and one or more third correction values ​​for one or more positions in a third segment may be added to a third lookup table. The first, second, and third lookup tables may then be combined into one lookup table having correction values ​​for correcting the encoder's signal for an entire rotation cycle of the encoder. The encoder may then look up the correction values ​​and correct the signal for each segment or position in each segment based on determining that the actuator has rotated through a particular segment. This process may be similar to Figure 3C Frame 340.

[0109] In some cases, blocks 360 to 374 may be repeated for multiple or a predetermined number of rotation cycles. In other words, at least one third position may be determined for each corresponding third position of each segment of the multiple or predetermined number of rotation cycles. When these blocks 328 to 338 are repeated for multiple or a predetermined number of rotation cycles, two or more correction values ​​corresponding to each corresponding third position of each segment of each rotation cycle may be combined (e.g., averaged) to produce a final lookup table (similar to the process described in paragraph A). In a non-limiting example, the first value of the beginning segment of the first rotation cycle may be combined with the first value of the beginning segment of the second rotation cycle, the first value of the next segment of the first rotation cycle may be combined with the first value of the next segment of the second rotation cycle, until the first value of the last segment of the first rotation cycle is combined with the first value of the last segment of the second rotation cycle.

[0110] The techniques and processes described above with respect to various embodiments may be used to calibrate encoder system 110 and / or components thereof, as described herein.

[0111] Although some features and aspects have been described with respect to embodiments, those skilled in the art will recognize that many modifications may be made. For example, the methods and processes described herein may be implemented using hardware components, custom integrated circuits (ICs), programmable logic, and / or any combination thereof. In addition, although the various methods and processes described herein may be described with respect to specific structural and / or functional components for ease of description, the methods provided by the various embodiments are not limited to any specific structural and / or functional architecture, but may be implemented in any suitable hardware configuration. Similarly, although some functions are attributed to one or more system components, unless the context indicates otherwise, according to several embodiments, this functionality may be distributed among various other system components.

[0112] Again, overall reference Figure 1 and 3. For the purposes of this disclosure, the terms "controller," "processor," or "processing element" may be broadly defined to encompass any device having one or more processing or logic elements (e.g., one or more microprocessor devices, one or more application specific integrated circuit (ASIC) devices, one or more field programmable gate arrays (FPGAs), or one or more digital signal processors (DSPs)). In this sense, one or more processors may include any device configured to execute algorithms and / or instructions (e.g., program instructions stored in a memory). In addition, the memory may include any storage medium known in the art to be suitable for storing program instructions that can be executed by an associated processor. For example, the storage medium may include a non-transitory memory medium. As another example, the memory medium may include, but is not limited to, a read-only memory (ROM), a random access memory (RAM), a magnetic or optical memory device (e.g., a disk), a solid-state drive, and the like. It should also be noted that the memory medium may be housed in a common controller housing with the processor. In an embodiment, the memory medium may be remotely located relative to the physical location of the processor.

[0113] In the present disclosure, the disclosed methods, operations and / or functions may be implemented as one or more steps in a switching hardware system or as an instruction set or software readable by a device. In addition, it should be understood that the specific order or hierarchy of steps in the disclosed methods, operations and / or functions is an example of an exemplary method. Based on design preferences, it should be understood that the specific order or hierarchy of steps in the methods, operations and / or functions may be rearranged while remaining within the scope of the inventive concepts disclosed herein. The attached claims may present the elements of the various steps in a sample order and are not necessarily meant to be limited to the specific order or hierarchy presented.

Claims

1. An encoder, comprising: Exciter; a sensor configured to detect a position associated with the actuator and to generate a signal based on the position; and A controller configured to run a process for calibrating the encoder, the process comprising: detecting rotation of the actuator; receiving the signal from the sensor; detecting a first position of the actuator and a second position of the actuator based on the signal for a first rotation cycle; After completing the first rotation cycle, dividing the first rotation cycle into two or more first segments and determining, for a first segment of the two or more first segments, a first time for rotating the actuator through the first segment; detecting a third position of the actuator and a fourth position of the actuator based on the signal for a second rotation cycle; After completing the second rotation cycle, dividing the second rotation cycle into two or more second segments and determining, for a corresponding first segment of the two or more second segments, a second time for rotating the actuator through the corresponding first segment, wherein the corresponding first segment corresponds to the first segment of the first rotation cycle; determining that the first time is within a first predetermined threshold of the second time; and Based on determining that the first time is within the first predetermined threshold of the second time, the signal of the sensor is calibrated. 2 . The encoder according to claim 1 , wherein the first position, the second position, the third position, and the fourth position are the same position.

3. The encoder of claim 1 , wherein calibrating the signal of the sensor comprises: detecting a start position and an end position of the actuator for at least one of the first segment or the corresponding first segment; detecting that the actuator has reached an intermediate position between the start position and the end position; determining a third time for rotating the actuator to the intermediate position, wherein the third time is an actual time for rotating the actuator to the intermediate position; calculating a fourth time for rotating the actuator to the intermediate position between the start position and the end position based on at least one of the first time or the second time, wherein the fourth time is an expected time for rotating the actuator to the intermediate position; and Based on a deviation between the third time and the fourth time, a first value for correcting the signal generated by the sensor for the intermediate position is calculated.

4. The encoder of claim 3, wherein the first value is added to a lookup table of the encoder to correct the signal of the encoder.

5. An encoder according to claim 3, wherein the first value is calculated for the middle position of the first segment and the corresponding first segment, wherein the first value corresponding to the first segment and the corresponding first segment is combined and added to a lookup table of the encoder to correct the signal of the encoder.

6. The encoder of claim 3, wherein a moving average algorithm is used to determine at least one of the middle position, the start position, or the end position of at least one of the first segment or the corresponding first segment.

7. The encoder of claim 1, wherein a moving average algorithm is used to determine the first position, the second position, the third position, and the fourth position.

8. The encoder of claim 1, wherein a rotational speed of the actuator is non-constant during the process of calibrating the encoder, and the rotational speed of the actuator is not determined prior to the process of calibrating the encoder.

9. The encoder of claim 1, wherein a ratio of a detection rate of the position of the actuator to a rotational speed of the actuator is at least 2500:

1.

10. The encoder of claim 1, wherein the process further comprises: detecting a fifth position of the actuator and a sixth position of the actuator based on the signal for a third rotation cycle, wherein the third rotation cycle occurs before the second rotation cycle; After completing the third rotation cycle, dividing the third rotation cycle into two or more third segments and determining a third time for rotating the actuator through a corresponding second segment of the two or more third segments, wherein the corresponding second segment corresponds to the first segment; determining that the first time is not within the predetermined threshold of the third time; Based on determining that the first time is not within the predetermined threshold of the third time, another rotation cycle is initiated.

11. The encoder of claim 1 , wherein the first rotation cycle is divided into two or more first segments based on a rotational speed of the actuator associated with each segment.

12. The encoder of claim 1, wherein the first rotation cycle is divided into two or more first segments based on a number of harmonics of the signal, wherein a ratio of the number of segments to the number of harmonics of the signal is at least 2:

1.

13. A method for calibrating an encoder, the method comprising: detecting rotation of an actuator of the encoder; detecting a signal from a sensor of the encoder, wherein the sensor detects a position associated with the actuator and generates the signal based on the position; detecting a first position of the actuator and a second position of the actuator based on the signal for a first rotation cycle; After completing the first rotation cycle, dividing the first rotation cycle into two or more first segments and determining, for a first segment of the two or more first segments, a first time for rotating the actuator through the first segment; detecting a third position of the actuator and a fourth position of the actuator based on the signal for a second rotation cycle; After completing the second rotation cycle, dividing the second rotation cycle into two or more second segments and determining a second time for rotating the actuator through a corresponding first segment of the two or more second segments, wherein the corresponding first segment corresponds to the first segment; determining that the first time is within a first predetermined threshold of the second time; and Based on determining that the first time is within the first predetermined threshold of the second time, the signal of the sensor is calibrated.

14. The method of claim 13, wherein the first position, the second position, the third position, and the fourth position are the same position.

15. The method of claim 13, wherein calibrating the signal of the sensor comprises: detecting a start position and an end position of the actuator for at least one of the first segment or the corresponding first segment; detecting that the actuator has reached an intermediate position between the start position and the end position; determining a third time for rotating the actuator to the intermediate position, wherein the third time is an actual time for rotating the actuator to the intermediate position; calculating a fourth time for rotating the actuator to the intermediate position between the start position and the end position based on at least one of the first time or the second time, wherein the fourth time is an expected time for rotating the actuator to the intermediate position; and Based on a deviation between the third time and the fourth time, a first value for correcting the signal generated by the sensor for the intermediate position is calculated.

16. The method of claim 13, wherein a rotational speed of the actuator is non-constant during the process of calibrating the encoder, and the rotational speed of the actuator is not determined prior to the process of calibrating the encoder.

17. The method of claim 13, wherein the ratio of the sampling rate of the signal to the rotational speed of the actuator is at least 2500:

1.

18. An encoder comprising: Exciter; a sensor configured to detect a position associated with the actuator and to generate a signal based on the position; and A processor configured to: detecting rotation of the actuator; receiving the signal from the sensor; determining that one or more changes in the rotational speed of the actuator exceed a first predetermined threshold; dividing a rotational cycle of the actuator into two or more segments based on determining that the one or more changes exceed the first predetermined threshold; detecting a first position of the actuator for a first segment of the two or more segments based on the signal; determining a first time to rotate the actuator from the first position to a second position of the first segment; detecting, based on the signal, that the actuator has reached a third position between the first position and the second position of the first segment, wherein the third position of the first segment is determined using a moving average algorithm; determining a second time for rotating the actuator to the third position, wherein the second time is an actual time for rotating the actuator to the third position; calculating a third time for rotating the actuator to the third position between the first position and the second position based on the first time, wherein the third time is an expected time for rotating the actuator to the third position; and Based on a deviation between the second time and the third time, a first value for correcting the signal generated by the sensor for the third position is calculated.

19. The encoder of claim 18, wherein the division of the rotation cycle into two or more segments is based on a rotation speed associated with each segment.

20. The encoder of claim 18, wherein the processor is further configured to: After calculating the first value of the first segment, calculating a second value of the signal for correcting a fourth position in a second segment of the two or more segments; adding the first value and the second value to a lookup table of the encoder; and The signal received from the sensor for the third position of the first segment and the fourth position of the second segment is corrected using the lookup table.

Citation Information

Patent Citations

  • Automatic calibration of encoders based on temperature

    US20250085142A1

  • Automatic stabilization of encoders

    US20250088204A1