Calibration apparatus, calibration methods and calibration procedures
By calculating and generating correction values using a calibration device, the problem of incorrect slit numbering was solved, and accurate correction of the slit position signal was achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-06-28
- Publication Date
- 2026-03-13
AI Technical Summary
In the existing technology, a large error in the absolute angle θref leads to incorrect slit numbering, which may result in an incorrect difference being read from the calibration table.
A calibration device is provided that, by acquiring the detection position of a moving body, calculates the error between the slit position signal and the ideal slit number, determines whether there are multiple actual positions corresponding to the same detection position, generates a correction value to correct the error, and outputs the corrected slit number.
It effectively corrects slit numbering errors, ensures the accuracy of slit position signals, and avoids slit numbering errors caused by mistakes.
Smart Images

Figure CN115597650B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a calibration device, a calibration method, and a calibration procedure. Background Technology
[0002] Patent Document 1 describes "a position detection device comprising: a waveform correction unit that corrects the waveforms of a first signal detected from a first track having a predetermined period on a moving body and a second signal detected from a second track having a period less than the predetermined period on the moving body; and a position calculation unit that calculates the position of the moving body based on the corrected first signal and the second signal" (claim 1). Furthermore, Patent Document 1 describes a process where "the interpolation angle correction unit 700 corrects the uncorrected interpolation angle calculated by the interpolation angle calculation unit 250 and the interpolation angle calculation unit 260 based on the error information of the interpolation angle obtained from the correction table 510. At this time, the interpolation angle correction unit 700 calculates the slit number corresponding to the absolute angle θref sent from the angle calculation unit 310, and uses the difference recorded in the correction table 510 to correct the interpolation angle corresponding to that slit number. The corrected interpolation angle is sent to the angle calculation unit 620. The angle calculation unit (second position calculation unit) 620 calculates the absolute angle based on the corrected interpolation angle. More specifically, the angle calculation unit 620 calculates the absolute angle based on the corrected interpolation angle and the slit number corresponding to the absolute angle θref sent from the angle calculation unit 310." (Paragraph 0041).
[0003] Existing technical documents
[0004] Patent documents
[0005] Patent Document 1: International Publication No. 2018 / 190019 Summary of the Invention
[0006] The problem the invention aims to solve
[0007] In the position detection device described in Patent Document 1, the slit number corresponding to the absolute angle θref is determined, and the difference recorded in the correction table 510 is used to correct the interpolation angle corresponding to that slit number. Therefore, if the error in the absolute angle θref is large, it is possible to misread the slit number, resulting in an incorrect difference value being read from the correction table.
[0008] Solution for solving the problem
[0009] In a first aspect of the present invention, a calibration apparatus is provided. The calibration apparatus includes: an acquisition unit that acquires a detection position of a moving body for each actual position; a calculation unit that calculates, for each actual position of the moving body, an error between a slit position signal used to detect a slit position and an ideal slit number corresponding to the actual position of the moving body; a determination unit that determines whether at least two actual positions with at least a portion of slit numbers differing in units of a first slit of a predetermined size correspond to the same detection position; and a generation unit that, in response to two or more actual positions corresponding to the same detection position, generates a correction value for correcting the magnitude of the error between the positions of the two or more actual positions based on the slit position signal at that detection position.
[0010] Alternatively, the generation unit may, in response to the fact that only one actual position corresponds to a certain detection position, generate a correction value at the detection position for correcting the error at the one actual position, based on the slit position signal.
[0011] In any of the above-mentioned calibration devices, the generation unit may generate a correction value for each interval of the detection position acquired by the acquisition unit.
[0012] In any of the calibration devices described above, the generation unit may calculate, for each interval of the detection position acquired by the acquisition unit, parameters representing the correction value corresponding to the detection position.
[0013] In any of the above calibration devices, the generation unit performs a Fourier series expansion on the set of correction values corresponding to the detection position for each interval of the detection position acquired by the acquisition unit, thereby calculating the parameters of the correction function.
[0014] In any of the above-mentioned calibration devices, the generation unit may generate a correction value for correcting the magnitude obtained by averaging the errors at each of the two or more actual positions in response to two or more actual positions corresponding to the same detection position.
[0015] In any of the above-described calibration devices, the determination unit may determine the correspondence between the actual position and the detection position in such a way that a margin is maintained at the boundary of the first slit. In any of the above-described calibration devices, the generation unit may generate a correction value using at least one actual position corresponding to the detection position, which includes a correspondence between the detection position and the actual position. This detection position is obtained by at least one of adding the boundary of the first slit and a predetermined margin to the slit position signal.
[0016] Alternatively, any of the above-mentioned calibration devices may also include an output unit that outputs a correction value to an encoder, which rounds the value obtained by adding the correction value to the slit position signal to calculate the slit number in units of the first slit.
[0017] In any of the calibration devices described above, the encoder may calculate the slit number by rounding the value obtained by adding the correction value to the slit position signal to make it an integer.
[0018] In any of the above-mentioned calibration devices, the output unit may write a calibration value to a calibration table of the encoder.
[0019] Alternatively, any of the above-mentioned calibration devices may also include an inspection unit that checks whether the slit number calculated using the slit position signal corrected according to the correction value generated by the generation unit is incorrect.
[0020] In any of the above-described calibration devices, the moving body may be a rotating body having a first track and a second track. The first track includes a first slit every first cycle, the first cycle being obtained by dividing one revolution of the rotating body by a predetermined first number. The second track includes a second slit every second cycle, the second cycle being obtained by dividing one revolution of the rotating body by a second number smaller than the first number. The encoder, which is the calibration object, calculates the detection position of the moving body based on a first detection value detected from the first track and a second detection value detected from the second track.
[0021] Alternatively, the rotating body may have a third track, which contains a third slit every third cycle. The third cycle is obtained by dividing one revolution of the rotating body by a third number different from the first and second numbers. The encoder also calculates the detection position of the moving body based on a third detection value detected from the third track.
[0022] In a second aspect of the invention, a calibration method is provided. The calibration method includes: a calibration device acquiring a detection position of the moving body for each actual position; the calibration device calculating, for each actual position of the moving body and the detection position, an error between a slit position signal used to detect a slit position and an ideal slit number corresponding to the actual position of the moving body; the calibration device determining whether at least two actual positions with at least a portion of slit numbers differing in units of a first slit of a predetermined size correspond to the same detection position; and in response to at least two actual positions corresponding to the same detection position, at that detection position, generating a correction value for the slit position signal to correct the magnitude of the error between the positions of the two or more actual positions.
[0023] In a third aspect of the invention, a calibration program executed by a computer is provided. The calibration program enables the computer to function as the following units: an acquisition unit that acquires the detection position of the moving body for each actual position; a calculation unit that calculates, for each actual position of the moving body, the error between a slit position signal used to detect the slit position and an ideal slit number corresponding to the actual position of the moving body; a determination unit that determines whether at least two actual positions with at least a portion of slit numbers differing in units of a first slit of a predetermined size correspond to the same detection position; and a generation unit that, in response to two or more actual positions corresponding to the same detection position, generates a correction value at that detection position for correcting the magnitude of the error between the positions of the two or more actual positions.
[0024] Furthermore, the above summary of the invention does not list all the features of the invention. Additionally, sub-combinations of these feature groups can also constitute inventions. Attached Figure Description
[0025] Figure 1 The structure of the position detection device 10 according to this embodiment is shown.
[0026] Figure 2 This illustrates an example of the relationship between the ideal mechanical angle and the electrical interpolation angle.
[0027] Figure 3 This illustrates an example of the relationship between the ideal mechanical angle and the slit number.
[0028] Figure 4 This illustrates an example of the slit position signal error for each ideal mechanical angle.
[0029] Figure 5 Focusing on slit number 20, we can illustrate an example of the slit position signal error for each ideal mechanical angle.
[0030] Figure 6 This example focuses on the error value that should correspond to slit number 20 after correction to show the slit position signal error for each measured value of the mechanical angle.
[0031] Figure 7 The structure of the calibration device 700 according to this embodiment is shown.
[0032] Figure 8 The operation flow of the calibration device 700 involved in this embodiment is shown.
[0033] Figure 9 An example of the correction value generated by the calibration device 700 is shown.
[0034] Figure 10 An example of the corrected slit position signal error is shown.
[0035] Figure 11 An example of a gap created by the correction value is shown.
[0036] Figure 12 An example of a method for interpolating the gaps in correction values according to this embodiment is shown.
[0037] Figure 13 The structure of the position detection device 1300 according to a variation of this embodiment is shown.
[0038] Figure 14 The first slit position signal S shown in the modified example of this embodiment is illustrated. MSB An example of the ideal value.
[0039] Figure 15 The second slit position signal S shown in the modified example of this embodiment is illustrated. LSB An example of the ideal value.
[0040] Figure 16 This illustrates an example of an ideal value for the slit number involved in a variation of this embodiment.
[0041] Figure 17 Examples of computer 2200 that can be embodied in whole or in part in various ways of the present invention are shown. Detailed Implementation
[0042] The present invention will now be described through embodiments thereof; however, these embodiments are not intended to limit the scope of the invention as defined in the claims. Furthermore, not all combinations of features described in the embodiments are necessarily necessary for the solutions provided in the invention.
[0043] Figure 1 The structure of the position detection device 10 according to this embodiment is shown. The position detection device 10 includes a moving body 100 and an encoder 110. The moving body 100 is the object to be measured, which is the object whose position is detected by the encoder 110. In this embodiment, as an example, the moving body 100 is a disk-shaped rotating body arranged perpendicular to the rotation axis. Alternatively, the moving body 100 may also be a moving body that moves relative to the encoder 110 along a straight line.
[0044] The moving body 100 includes multiple tracks 105a to b (also shown as "tracks 105"). Each track 105 includes multiple slits arranged at predetermined intervals along the moving direction of the moving body 100. In this embodiment, each track 105 includes multiple slits arranged at equal intervals in a circumferential direction centered on the rotation axis in the moving body 100. Each slit is a structure that can be detected by the encoder 110 using magnetism, light, or electricity. For example, each slit may be an opening or protrusion arranged at equal intervals in the circumferential direction of the moving body 100, teeth of a gear formed on the outer periphery of the moving body 100, or a magnetized body obtained by magnetizing at equal intervals in the circumferential direction of the moving body 100.
[0045] Alternatively, multiple tracks 105 may be disposed on the surface of the movable body 100 at positions centered on the rotation axis, with different distances (i.e., radii) from the rotation axis. In this embodiment, track 105a is disposed along the circumferential direction near the outer periphery of the movable body 100, and track 105b is disposed along the circumferential direction adjacent to track 105a on the inner periphery side of track 105a.
[0046] Here, multiple tracks 105 have slits with different periods. In this embodiment, track 105a is an example of a first track, and includes a first slit every first period, the first period being one revolution of the moving body 100 at a predetermined first number N. M It is obtained by segmentation. Additionally, track 105b is an example of a second track, which includes a second slit every second cycle. The second cycle is one revolution of the moving body 100 at a second number N, which is smaller than the first number. N Obtained by division. Here, in the case where the moving body 100 has two tracks 105, the number of slits in one revolution of track 105a (first number N) M The number of slits in one cycle of orbit 105b (second number N) N They can be coprime. The first number N M Second number N N It can also be determined that the difference is 1. For example, the first number N M With the second number N N The groups can be (8, 7), (40, 39), or (128, 127), etc.
[0047] The encoder 110 calculates the detected position of the moving body 100 based on multiple detection values detected from multiple tracks 105 of the moving body 100. The encoder 110 includes multiple detection units 120a to b (also shown as "detection unit 120"), a slit position signal calculation unit 130, a slit number calculation unit 140, a calibration table 150, a slit number calibration unit 160, and a position calculation unit 170.
[0048] Each of the plurality of detection units 120 is provided corresponding to each of the plurality of tracks 105, and is used to output the detection value detected from the corresponding track 105. In this embodiment, detection unit 120a functions as a first detection unit, detecting and outputting a first detection value from track 105a, which is an example of a first track. Detection unit 120b functions as a second detection unit, detecting and outputting a second detection value from track 105b, which is an example of a second track. Here, detection units 120a and 120b respectively output an (electrical) interpolation angle θ with one period (=360 degrees) between adjacent slits in the corresponding track 105. M and θ N .
[0049] The slit position signal calculation unit 130 is connected to a plurality of detection units 120. The slit position signal calculation unit 130 uses multiple detection values from the plurality of detection units 120 to output a slit position signal SS. The slit position signal is a value representing the position of the moving body 100 detected by the encoder 110, and represents the slit number of the first slit detected by the detection units 120a to b.
[0050] The slit number calculation unit 140 is connected to the slit position signal calculation unit 130. The slit number calculation unit 140 uses the slit position signal SS output by the slit position signal calculation unit 130 to calculate the slit number S, in units of a first slit of a predetermined size. M (i.e., the slit number of the slit where the moving body 100 is located). Here, the detection position of the moving body 100 before the slit number is corrected by the slit number correction unit 160 is determined by the slit number S. M With interpolation angle θ M It is represented by a group. In this embodiment, the mechanical angle θ, as an example of the detection position, is... d This is expressed by the following formula (1).
[0051]
Number 1
[0052]
[0053] The calibration table 150 is connected to the detection unit 120a and the slit number calculation unit 140. The calibration table 150 stores the first detection signal (interpolated angle θ) detected from the first track for each slit number. M The corresponding correction values are combined. The correction table 150 outputs the slit number S received from the slit number calculation unit 140. M The corresponding combination of correction values, and the interpolation angle θ specified by the first detection signal. M The corresponding correction value S cal .
[0054] The slit numbering correction unit 160 is connected to the slit position signal calculation unit 130 and the correction table 150. The slit numbering correction unit 160 uses the correction value S received from the correction table 150. cal The slit position signal SS received from the slit position signal calculation unit 130 is corrected. Then, the slit number correction unit 160 calculates the corrected slit number S' based on the corrected slit position signal. M Here, the slit number correction unit 160 rounds the value obtained by adding a correction value to the slit position signal SS from the slit position signal calculation unit 130 to calculate the slit number in units of the first slit. When the decimal point of the slit position signal SS is in a position that corresponds to the slit number, the slit number correction unit 160 calculates the slit number obtained by rounding the value obtained by adding the correction value to the slit position signal SS to make it an integer.
[0055] The position calculation unit 170 is connected to the detection unit 120a and the slit number correction unit 160. The position calculation unit 170 uses the slit number S' received from the slit number correction unit 160. M The position (corrected position) of the moving body 100 is calculated using the first detection signal received from the detection unit 120a. In this embodiment, the position calculation unit 170 outputs a mechanical angle θ, which is one cycle of one rotation of the moving body 100, as a value representing the position of the moving body 100.
[0056] Figure 2 An example illustrating the relationship between the ideal mechanical angle and the electrical interpolation angle is shown. Here, the "ideal mechanical angle" refers to the mechanical angle without considering errors, corresponding to the actual position (actual position) of the moving body 100. Multiple detection units 120 each output an electrical interpolation angle with a cycle between adjacent slits in the corresponding track 105. As an example, each detection unit 120 has two sensors for detecting the slits in the track 105, and a phase difference of 1 / 4 cycle (90 degrees) between the slits is imparted between the two sensors. Thus, the two sensors can detect the sin voltage and cos voltage corresponding to the electrical interpolation angle relative to the slit being sensed.
[0057] Each detection unit 120 can also correct the waveforms of the sin voltage and cos voltage output from the two sensors. Specifically, each detection unit 120 corrects at least one of the bias, gain, phase, and distortion of the sin voltage and cos voltage.
[0058] Next, each detection unit 120 uses the sin voltage and cos voltage to calculate the arctangent (arctan... -1The interpolation angle is calculated from this. Each detection unit 120 can also use the distortion of the amplitude of the sin voltage and cos voltage to correct the interpolation angle.
[0059] In the example shown in the figure, track 105a has eight slits around the moving body 100, and track 105b has seven slits around the moving body 100. When the moving body 100 rotates one full revolution (0 degrees to 360 degrees), the interpolated angle θ output by the detection unit 120a from 0 degrees to 360 degrees... M Repeating for 8 cycles, from 0 degrees to 360 degrees, the interpolated angle θ output by the detection unit 120b is measured. N Repeat 7 cycles. Therefore, when... Figure 2 The difference θ of these interpolated angles when the moving body rotates 100 degrees once is shown. M -θ N The change from 0 degrees to 360 degrees corresponds to the mechanical angle θ shown in equation (1). d .
[0060] The slit position signal calculation unit 130 uses the interpolation angle θ M and θ N The slit position signal SS, representing the slit number corresponding to the detection position, is calculated. Ideally, the slit position signal SS should correspond to the slit number S output by the slit number calculation unit 140. M Consistent. Therefore, if the slit number S in equation (1) is... M Replace it with the slit position signal SS, and interpolate the difference θ of the angle. M -θ N Substituting the mechanical angle θ into equation (1) d To perform deformation, the slit position signal SS is represented by the following equation (2). Furthermore, equation (2) shows N... N =N M The case of -1.
[0061]
Number 2
[0062]
[0063] As shown in equation (2), the slit position signal calculation unit 130 calculates the difference θ of the interpolated angle. M -θ N Multiply by N M and subtract the interpolation angle θ M This cancels out the interpolation angle θ within one period of the slit in orbit 105a. M The change in the slit position signal SS is accompanied by the change in the slit position signal. The slit position signal calculation unit 130 divides it into angles (360 degrees) corresponding to one cycle, thereby ideally calculating the slit number from 0 to N corresponding to the slit number of track 105a when the moving body 100 rotates once.M The slit position signal SS is an integer value of -1.
[0064] Furthermore, in other embodiments, the slit position signal calculation unit 130 may also use a pre-correction function for calculating the correction value for correcting the slit position signal SS, and then output the corrected slit position signal SS. Such a pre-correction function may, for example, be based on the interpolation angle θ output by the detection units 120a and 120b. M and θ N Alternatively, the amplitude R of the detection values from detection units 120a and 120b can be used as a basis. M and R N The pre-correction function could be, for example, the difference θ between the interpolated angles output by detection units 120a and 120b, based on a correction amount set as the target. M -θ N It is obtained by adjusting the magnitude and phase of a sine wave (sin).
[0065] Figure 3 This figure illustrates an example of the relationship between the ideal mechanical angle and the slit number. The graph in this figure shows the value of the slit position signal SS corresponding to the mechanical angle under error-free conditions. Under error-free conditions, the slit position signal SS output by the slit position signal calculation unit 130 represents the slit number corresponding to the mechanical angle of the moving body 100 as follows: SS is 0 when the moving body 100 is at the mechanical angle corresponding to the first cycle of the track 105a; SS is 1 when the moving body 100 is at the mechanical angle corresponding to the second cycle of the track 105a; and so on.
[0066] As shown in equation (3) below, the slit number calculation unit 140 can also round the slit position signal to calculate the slit number S corresponding to the detection position (mechanical angle) of the moving body 100. M In this case, the slit position signal SS has a margin of error within a range of -0.5 to +0.5. Therefore, the slit number calculation unit 140 can calculate the correct slit number S even when the slit position signal has an error within the range of -0.5 to +0.5. M .
[0067]
Number 3
[0068] S M =round(SS) (3)
[0069] Figure 4 This figure illustrates an example of the slit position signal error for each ideal mechanical angle. In this figure, a moving body 100 is illustrated with a first number N. M =40 and the second number NN The cases of orbits 105a and 105b with a slit angle of 39. In this case, in orbit 105a, one slit cycle is equivalent to a mechanical angle of 9 degrees (360 ÷ 40 = 9).
[0070] The slit position signal error in this diagram is the slit position signal SS actually output from the slit position signal calculation unit 130 when the position of the moving body 100 is at an ideal mechanical angle, minus the ideal value S of the slit position signal SS under that ideal mechanical angle. ideal The obtained value (error). As an example, such a slit position signal error can be determined by: in order to calibrate the position detection device 10, rotating the moving body 100 while measuring the slit number S using an ideal encoder (e.g., an encoder used as a reference for calibrating the encoder 110). ideal The ideal mechanical angle is obtained, and the slit position signal SS output by the slit position signal calculation unit 130 is acquired simultaneously. In the example shown in this figure, the slit position signal error exceeds ±0.5 depending on the ideal mechanical angle.
[0071] Figure 5 This figure illustrates an example of slit position signal error for each ideal mechanical angle, focusing on slit number 20. The slit position signal error in this figure is compared to... Figure 4 Same. Slit number 20 corresponds to a machine angle of 180 to 189 degrees. An error of 500a (slit position signal error 500a) indicates that the slit number shown by the slit position signal SS is 2 less than the slit number 20 corresponding to the ideal machine angle. That is, it indicates that the value of the slit position signal SS is within the range corresponding to slit number 18 (e.g., above 17.5 and less than 18.5).
[0072] Similarly, error 500b indicates that the slit number shown by the slit position signal SS is 1 smaller than the slit number 20 corresponding to the ideal mechanical angle, but falls within the range corresponding to slit number 19. Error 500c indicates that the slit number shown by the slit position signal SS is the same as the slit number 20 corresponding to the ideal mechanical angle. Error 500d indicates that the slit number shown by the slit position signal SS is 1 larger than the slit number 20 corresponding to the ideal mechanical angle, but falls within the range corresponding to slit number 21. Error 500e indicates that the slit number shown by the slit position signal SS is 2 larger than the slit number 20 corresponding to the ideal mechanical angle, but falls within the range corresponding to slit number 22. Thus, when the slit position signal error exceeds ±0.5, the slit number shown by the slit position signal SS will differ from the ideal slit number.
[0073] Figure 6 This example focuses on the error value that should correspond to slit number 20 after correction to show the slit position signal error for each measured value of the mechanical angle. Figure 4 and Figure 5 The figure shows the slit position signal error acquired at each actual position of the moving body 100 during the calibration of the position detection device 10. In contrast, this figure shows what correction value S should be used by the calibrated position detection device 10 at each detection position of the moving body 10 for the slit position signal SS indicating the slit number. cal Specifically, it shows what correction value S the slit numbering correction unit 160 should use when the position detection device 10 is actually used. cal To correct the slit position signal SS.
[0074] The horizontal axis of this figure represents the slit number S before correction from the slit number calculation unit 140. M Add the interpolation angle θ from the detection unit 120 M The obtained value corresponds to the mechanical angle (i.e., the detection position) before correction. Here, the interpolated angle θ from the detection unit 120... M By multiplying by 1 / N M It is standardized to the range of 0 to 9 degrees.
[0075] In addition, the slit numbering correction unit 160 adds a correction value S to the slit position signal SS from the slit position signal calculation unit 130. cal Then, rounding is performed to calculate the corrected slit number S'. M (i.e., the ideal value S of the slit position signal) ideal Therefore, the slit position signal error is the slit position signal SS minus the ideal value S. ideal In contrast, the correction value S cal It is the ideal value S ideal - Slit position signal SS. Therefore, the correction value S cal It is the value obtained by reversing the sign of the slit position signal error.
[0076] Figure 5 The error of 500a is: the slit number corresponding to the slit position signal SS is 18. Therefore, when the measured value of the mechanical angle is set as the horizontal axis, Figure 5 The error 500a is shifted to slit number 18, becoming error 600a that coincides with the original error 610 existing in slit number 18. Similarly, Figure 5 The error 500b is shifted to slit number 19, becoming an error 600b that coincides with the slit position signal error originally present in slit number 19. Figure 5 The error of 500d is shifted to slit number 21, becoming an error of 600d that coincides with the slit position signal error originally present in slit number 21. Figure 5The error 500e is shifted to slit number 22, becoming error 600e that coincides with the slit position signal error that originally existed in slit number 22.
[0077] Thus, when the slit position signal SS is measured for each actual position (ideal mechanical angle) of the moving body 100 and the slit position signal error for each actual position is calculated, the slit position signal error is determined to be 1 point at each actual position. Figure 5 However, when the slit position signal error exceeds ±0.5, or when the slit number shown by the slit position signal SS differs from the slit number corresponding to the actual position of the moving body 100, when transformed to each detection position of the moving body 100 (slit number S)... M + interpolation angle θ M / N M When the slit position signal error is greater than 2, for the same detection position, there may be more than 2 corresponding actual positions. As a result, there may be more than 2 corresponding slit position signal errors.
[0078] Therefore, for the position detection device 10, which has a large error in the slit position signal and whose measured slit number differs from the ideal slit number, more than two correction values (values obtained by reversing the sign of the slit position signal error) appear for the same detection position. In this case, it becomes a problem to determine how the calibration device of the position detection device 10 should calibrate to output the correction value from the calibration table 150 inside the encoder 110.
[0079] Figure 7 The structure of the calibration apparatus 700 according to this embodiment is shown. The calibration apparatus 700 can be a computer such as a PC (personal computer), workstation, server computer, or general-purpose computer, or it can be a computer system composed of multiple connected computers. Such a computer system is still a computer in a broad sense. Furthermore, the calibration apparatus 700 can also be installed in a way that allows one or more virtual computer environments to run within the computer. Alternatively, the calibration apparatus 700 can be a dedicated computer designed for calibrating the encoder 110, or it can be dedicated hardware implemented using dedicated circuitry. When the calibration apparatus 700 is implemented using a computer, the calibration apparatus 700 functions as the structural elements shown in this figure by executing a calibration program.
[0080] The calibration device 700 is connected to the encoder 110, for example, after the position detection device 10 is manufactured and before shipment, or during the inspection or diagnosis of the position detection device 10, to calibrate the encoder 110. During this calibration, if two or more correction values appear for the same detection position of the moving body 100, the calibration device 700 sets an appropriate correction value to the encoder 110. The calibration device 700 includes an acquisition unit 710, a calculation unit 714, a determination unit 716, a generation unit 720, an inspection unit 730, and an output unit 740.
[0081] The acquisition unit 710 acquires the detected position of the moving body 100 for each actual position of the moving body 100. Here, the acquisition unit 710 acquires the slit number S, which is the ideal value of the slit position signal SS and represents the actual position, from a reference encoder installed on the moving body 100 for calibration work. ideal and θ, representing the interpolated angle of the actual position. Mideal This is used as the actual position of the moving body 100. Additionally, the acquisition unit 710 acquires from the encoder 110 the slit position signal SS output by the calculation unit 130, which detects the slit position, and the interpolation angle θ detected by the detection unit 120a. M This serves as the detection location for the moving body 100.
[0082] In addition, the acquisition unit 710 can also acquire the interpolation angle θ output by the detection units 120a to 120b within the encoder 110. M and θ N The detection position of the moving body 100 is used instead of acquiring the slit position signal SS from the encoder 110. Alternatively, the acquisition unit 710 can also acquire the sin value (representing sin voltage) and the cos value (representing cos voltage) detected by the detection units 120a-b, respectively, as the detection position of the moving body 100. In this case, the acquisition unit 710 can also calculate the slit position signal SS in the same way as the detection units 120a-b and the slit position signal calculation unit 130.
[0083] The calculation unit 714 is connected to the acquisition unit 710. For each actual position detected by the moving body 100, the calculation unit 714 uses the slit position signal SS to calculate the ideal slit number S corresponding to the actual position. ideal Error between the slit position signal SS and the error calculation unit 716. The determination unit 716 is connected to the calculation unit 714. The determination unit 716 determines whether at least two actual positions with at least a partial difference in slit numbering (based on the first slit) correspond to the same detection position. The generation unit 720 is connected to the determination unit 716. The generation unit 720 uses the calculated error to generate a correction value S for the slit position signal SS for each detection position of the moving body 100. calHere, in response to two or more actual positions with at least a portion different slit numbers (based on the first slit) corresponding to the same detection position, the generation unit 720 generates a correction value S for the slit position signal SS at that detection position to correct for the magnitude of the error between the two or more actual positions. cal .
[0084] The inspection unit 730 is connected to the generation unit 720. The inspection unit 730 checks the correction value S generated by the generation unit 720. cal Whether the slit number calculated from the corrected slit position signal is incorrect. This can be done by using the correction value S generated by the generation unit 720. cal The corrected slit position signal corresponds to the slit number S of the actual position. ideal If the difference is within a predetermined reference range, the inspection unit 730 determines that no error has occurred in the slit numbering. This reference range can be, for example, ±50% of the width equivalent to one slit number, or a smaller range. The inspection unit 730 issues an alarm based on the determination that an error has occurred in the slit numbering. Alternatively, the calibration device 700 may not have the inspection unit 730, and therefore may not have a correction value S. cal The inspection function.
[0085] The output unit 740 outputs the correction value S generated by the generation unit 720 for each inspection position. cal The output unit 740 can output the correction value S for each inspection position to the encoder 110. cal For example, the output unit 740 can write the correction value S for each inspection position to the correction table 150 of the encoder 110. cal Additionally, for example, the output unit 740 can also output the correction value S for each inspection position. cal Save to a storage device such as a memory or hard drive.
[0086] Figure 8 The operation flow of the calibration apparatus 700 according to this embodiment is shown. In step 800 (S800), the acquisition unit 710 acquires the detection position of the moving body 100 for each actual position of the moving body 100. The generation unit 720 transforms the data format of the data obtained by corresponding each actual position of the moving body 100 to the detection position to obtain data that corresponds each detection position of the moving body 100 to one or more actual positions.
[0087] The generation unit 720 repeats the processing steps S810 to S860 for each detection position of the moving body 100. In S820, the determination unit 716 determines whether at least two actual positions with at least a portion of the slit numbers (based on the first slit) differ from the same detection position. Additionally, in S820, the calculation unit 714 can calculate an ideal slit number S corresponding to the actual position for the target detection position using the slit position signal SS. ideal The error between the actual position signal SS and the slit position signal SS. In response to the condition that only one actual position corresponds to the detection position ("No" in S830), in S840, the generation unit 720 generates a correction value S for the slit position signal SS at the detection position (objective position) to correct the error at the one actual position. cal Therefore, the generation unit 720 can generate a correction value S that cancels one slit position signal error for detection positions where the slit position signal error is within ±0.5 and does not coincide with the slit position signal errors existing in other slit numbers under ideal mechanical angles. cal (For example, a correction value obtained by reversing the sign of the slit position signal error). Furthermore, the generation unit 720 generates the correction value S. cal At that time, it is possible to generate a correction value S that completely eliminates the error at a single actual location. cal It can also generate a correction value S that reduces the error by one actual position. cal For example, when the correction value of the slit position signal SS is approximated for each detection position using a correction function as described later, the correction amount for each detection position is approximately the same as the error amount at one actual position of that detection position, but not necessarily identical.
[0088] In response to two or more actual positions with at least a portion different slit numbers corresponding to the detection position as the target ("Yes" in S830), the generation unit 720 generates a correction value S at the detection position for the slit position signal SS, which is used to correct the magnitude of the error between the two or more actual positions. cal Therefore, when there are more than two errors (e.g., slit position signal error) for the same detection position, the generation unit 720 can unify these errors to generate an appropriate correction value S. cal .
[0089] In S870, when the correction value S for each detection position is generated... cal At that time, the inspection unit 730 checks the correction value S generated by the generation unit 720. calThe slit number calculated from the calibrated slit position signal is checked for errors. Here, the inspection unit 730 checks for errors in the slit number calculated using the calibration value S corresponding to each detection position. cal When the slit position signal SS at the detection position is corrected, at any of the one or two actual positions corresponding to the detection position, the slit number S is compared with the ideal slit number S. ideal Whether the difference is within the reference range. The inspection unit 730 outputs an alarm if the difference between the slit number at at least one actual position at any detection position and the slit number shown in the calibrated slit position signal is outside the reference range.
[0090] In S880, the output unit 740 outputs the correction value S generated by the generation unit 720 for each inspection position. cal Here, the output unit 740 can also output an alarm in S870 without performing a correction value S. cal Instead of outputting the calibration process, it interrupts the calibration process.
[0091] Figure 9 The calibration value S generated by the calibration device 700 is shown. cal One example. In Figure 9 In the middle, the measured value of the mechanical angle (detection position) is taken on the horizontal axis, and the correction value S generated by the generating unit 720 is taken on the vertical axis. cal (Slit correction value). Figure 9 Used to show and Figures 4-6 The correction value S corresponding to the slit position signal error is shown. cal Furthermore, the slit numbering correction unit 160 within the encoder 110 adds a correction value S to the slit position signal SS. cal In this case, the correction value S cal This value is obtained by reversing the sign of the slit position signal error. However, in this figure, for ease of comparison with... Figures 4-6 For comparison, the state where the positive and negative signs of the slit position signal error are not reversed is used as the correction value S. cal And shown.
[0092] When considering a mechanical angle measurement (detection position) within the range of 155.25 degrees to 157.50 degrees, for each detection position within this range, there are two actual positions corresponding to different slit numbers. Therefore, at each detection position within this range, there exists an error corresponding to each of the two actual positions (slit position signal error). In this case, the generation unit 720 generates a correction value S to correct for the magnitude of the error between the errors corresponding to the two actual positions. calHere, "the magnitude between the two errors" refers to the magnitude between the two errors after removing both ends, meaning that instead of using only one of the two errors, the magnitude between the two errors is taken.
[0093] For example, in response to two or more actual positions corresponding to the same detection position, the generation unit 720 generates a correction value S for the slit position signal SS, which is used to correct the magnitude obtained by averaging the errors at each of the two or more actual positions. cal Additionally, the generation unit 720 can also adjust the correction value S for the magnitude of the error between two or more actual positions. cal Adjustments are made so that the error between the corrected slit position signal and the slit numbers of two or more actual positions is within the reference range.
[0094] Furthermore, even when the measured value of the mechanical angle (detection position) is outside the range of 153 degrees to 162 degrees, there are still two actual positions corresponding to a single detection position with different slit numbers. Figure 9 For ease of explanation, illustrations have been omitted for the range of 153 to 162 degrees.
[0095] Figure 10 This illustrates an example of the corrected slit position signal error. Figure 10 In the diagram, the horizontal axis represents the measured value of the mechanical angle (detection position), and the vertical axis shows the slit position signal SS and the slit number S at each of the one or more actual positions corresponding to each detection position. ideal The error is the slit position signal error between the two actual positions. Here, the dashed line represents the slit position signal error before correction, and the solid line represents the slit position signal error after correction, which is obtained by averaging the errors at each of the two or more actual positions.
[0096] As shown by the solid line in this figure, the calibration device 700 generates a correction value S at each detection position to correct for the magnitude of the error between two or more actual positions. cal Therefore, it is possible to output the ability to Figures 4-6 The error correction for the slit position signal shown is a correction value S within the range of ±0.5, corresponding to the error of the slit number at each actual position. cal .
[0097] Furthermore, the generation unit 720 shown above generates a correction value S for each detection position. calInstead, the generation unit 720 can also generate correction values for each interval of the detection position acquired by the acquisition unit 710. For example, the generation unit 720 can also generate correction values S for each interval obtained by dividing one period of the first slit (e.g., every 15° of the interpolation angle). cal In this case, the generation unit 720 can also calculate the correction value S within the interval by averaging the correction values calculated for each detection position within the interval. cal .
[0098] In addition, the generation unit 720 can also calculate a correction value S for each interval of the detection position acquired by the acquisition unit 710. cal The parameters of the correction function. For example, the generation unit 720 may also, for each slit period of the first slit, use a predetermined correction function such as Fourier series expansion to obtain the correction value S for the range of the interpolation angle 0° to 360° within that slit period. cal An approximation is performed. When using Fourier series expansion, the generator 720 can calculate the value used to utilize the correction value = Σ. k A k ×sin(kθ M +δ k Interpolation angle θ M The correction value S at the location cal The correction coefficient (parameter) A of the approximate correction function. k and δ k .
[0099] The generation unit 720 can, for example, calculate the correction value S corresponding to the interpolation angle of each predetermined angle. cal Using these points as representative points, a Fourier series expansion is performed on the set of representative points to calculate the aforementioned correction coefficients. The output unit 740 writes the correction coefficients calculated by the generation unit 720 into the correction table 150. Alternatively, the slit number correction unit 160, in actual use, receives the slit number S from the slit number calculation unit 140. M At that time, read out the slit number S M The corresponding correction coefficients stored in correction table 150 are used to calculate the correction value S using the correction function that employs these correction coefficients. cal .
[0100] Figure 11 This illustrates an example of how correction values can create gaps. For example... Figures 5-6As shown, when the slit position signal error at each actual position is transformed into the slit position signal error at each detection position, for example, the error 500a at the actual position of slit number 20 is transformed into the error 600a at the detection position of slit number 18. As a result, depending on the detection position, there may be more than two slit position signal errors corresponding to more than two actual positions.
[0101] Conversely, depending on the detection location, the slit position signal error can be assigned to other slit numbers, resulting in a possible non-existent corresponding actual position. Figure 11 In the example, there is a first slit with 8 cycles in one revolution of the moving body 100 (N). M =8), the slit position signal error of 0.5 or more is the mechanical angle (detection position) offset of +45°, and the slit position signal error of less than -0.5 is the mechanical angle offset of -45°. As a result, the actual position corresponding to the detection position will no longer exist in the area enclosed by the dashed line.
[0102] Here, the detection position that does not correspond to the actual position is the position where the actual position of the moving body 100 cannot be observed even if it changes throughout the entire movable range during the calibration process. Therefore, as long as no error or other difference occurs compared to the calibration process, this detection position will not occur in actual use. However, the position detection device 10 may detect such a detection position due to temporary errors or changes.
[0103] Figure 12 This embodiment illustrates an example of a method for interpolating the gap of correction values. When interpolating the gap of correction values, the determination unit 716 can determine the correspondence between the actual position and the detection position while maintaining a margin at the boundary of the first slit. Here, the generation unit 720 can generate a correction value at a detection position using at least one actual position corresponding to a certain detection position, which includes at least one actual position corresponding to a certain detection position, obtained by adding and subtracting the boundary of the first slit and a predetermined margin from the slit position signal. In this embodiment, the generation unit 720 determines the slit number S based on the slit position signal SS. M (i.e., set as S) M In addition to the value after round(SS), a predetermined margin ε is added or subtracted from the slit position signal SS to determine the slit number (i.e., set as S). M =round(SS±ε) values), and generate correction values including them. Here, the margin ε is a value smaller than the margin (0.5) used when determining the slit number.
[0104] When the margin ε is subtracted from the slit position signal SS, if the slit position signal error is positive, the error does not shift to other slit numbers until it is greater than the boundary of the slit number (+0.5, etc.) by +ε. Conversely, if the slit position signal error is negative, the error shifts to other slit numbers, with the point where the error is greater than the boundary of the slit number (-0.5, etc.) by ε as the boundary.
[0105] Furthermore, when a margin ε is added to the slit position signal SS, if the slit position signal error is positive, the error shifts to other slit numbers, with the point where the slit position signal error is ε smaller than the boundary of the slit number (e.g., +0.5). Conversely, if the slit position signal error is negative, it does not shift to other slit numbers until the slit position signal error becomes further smaller than the boundary of the slit number (e.g., -0.5) by an amount equivalent to ε.
[0106] When the slit number is determined by adding or subtracting a margin ε to the slit position signal SS, as follows: Figure 12 As illustrated, even for detection positions where there is no corresponding actual position, slit position signal errors can be assigned. Then, the generation unit 720 further generates correction values containing these slit position signal errors, thereby filling the gaps in the correction values for each detection position.
[0107] Furthermore, even if the detection position detected during actual use of the calibration device 700 changes relative to the detection position detected during calibration, and the slit position signal may change as a result, the calibration device 700 can prepare a correction value in advance by adding or subtracting a margin ε to the slit position signal, which is generated by simulating the error of the slit position signal that has changed. Therefore, the position detection device 10 can use a robust correction value even if the output of the sensors in each detection unit 120 changes, for example, due to changes in ambient temperature during actual use.
[0108] Figure 13 The structure of a position detection device 1300 according to a variation of this embodiment is shown. The position detection device 1300 is a variation of the position detection device 10, therefore, descriptions are omitted except for the following differences. The position detection device 1300 includes a moving body 1301 and an encoder 1310. The moving body 1301 is the object to be measured, which is the object whose position is detected by the encoder 1310. Similar to the moving body 100, the moving body 1301 has a first number N of slits around its circumference. M The first track, and the number of slits in one revolution around the moving body 1301, is the second number N. NThe second track. Then, the moving body 1301 in this variation also has a third track that includes a third slit every third cycle, said third cycle being a third number N different from the first and second numbers. S It is obtained by segmentation.
[0109] The encoder 1310 calculates the detected position of the moving body 1301 based on three detection values detected from three tracks of the moving body 1301. The encoder 1310 includes multiple detection units 1320a to c (also shown as "detection unit 1320"), multiple slit position signal calculation units 1330a to b (also shown as "slit position signal calculation unit 1330"), a slit number calculation unit 1340, a calibration table 1350, a slit number calibration unit 1360, and a position calculation unit 1370.
[0110] Each detection unit of detection units 1320a to 1320c is provided corresponding to each of the first to third tracks, and outputs the detection value detected from the corresponding track. In this embodiment, detection unit 1320a functions as a first detection unit, detecting and outputting a first detection value from the first track. Detection unit 1320b functions as a second detection unit, detecting and outputting a second detection value from the second track. Detection unit 1320c functions as a third detection unit, detecting and outputting a third detection value from the third track. Here, detection units 1320a to 1320c each output an (electrical) interpolation angle θ with a period of 360 degrees between adjacent slits in the corresponding track. M θ N and θ S This is used as the detection value. Each detection unit 1320 is otherwise identical to detection unit 120.
[0111] The slit position signal calculation units 1330a to 1330b are respectively connected to multiple detection units 1320. The slit position signal calculation unit 1330a uses multiple detection values from the multiple detection units 1320 to output a first slit position signal S. MSB In this embodiment, the first slit position signal S MSB This is related to the high-order bit in the slit number of the first track. The slit position signal calculation unit 1330b uses multiple detection values from multiple detection units 1320 to output the second slit position signal S. LSB In this embodiment, the second slit position signal S LSB It relates to the low-order bit in the slit number of the first track.
[0112] Regarding the slit number S that can ultimately calculate the first track M Any first number N M The second number N N And the third number N SThe combination of the first slit position signal S MSB Second slit position signal S LSB It can be generalized to the following equations (4) and (5).
[0113]
Number 4
[0114]
[0115]
Number 5
[0116]
[0117] Here, p M p N p S q M q N and q S The slit number S was determined to be the one that could ultimately calculate the first track. M The integer value. For example, in the first number N M =16, the second number N N =15, and the third number N S When =12, it can be set as (p M p N p S ) = (3, -4, 1), (q M q N q S = (3, 0, -4). In this way, each slit position signal calculation unit 1330 can calculate the position signal of each slit by weighting multiple detection values from multiple detection units 1320 using a predetermined integer and then summing them.
[0118] The slit number calculation unit 1340 is connected to the multiple slit position signal calculation unit 1330. The slit number calculation unit 1340 uses the slit position signal S output by the multiple slit position signal calculation unit 1330. MSB and S LSB Calculate the slit number S, in units of a first slit of a predetermined size. M (i.e., the slit number of the slit where the moving body 1301 is located). In this embodiment, the slit number calculation unit 1340 calculates the slit number S using the following formula (6). M .
[0119]
Number 6
[0120] S M =mod(k*round(S) MSB )+round(S LSB ), N M (6)
[0121] Here, k is a positive integer value representing the weight of the MSB. The slit number calculation unit 1340 calculates the first slit position signal S in units of high-digit slit numbers. MSB The value obtained by rounding and multiplying by the weight k of the MSB is added to the second slit position signal S in units of slit number. LSB The value after rounding can be used to calculate the slit number, with the first slit as the unit. The slit number calculation unit 1340 can normalize the slit number to 0 to N. M The value of -1 is used to calculate the slit number S. M .
[0122] Furthermore, k can be uniquely determined based on the values of p and q, making it possible to calculate the slit number S. M For example, in (p) M p N p S When ) = (3, -4, 1), let (q) M q N q S In the case that ) = (0, 4, -5), we can set k = 5. The pair of k, p, and q can be determined as satisfying (p M p N p S ) = (3, -4, 1), (q M q N q S )=(3,0,-4)-(k-4)×(p M p N p S The relationship between q and q is as follows: The smaller the absolute value of q (the magnitude of the q vector), the more robust it is to the specific error of the slit; therefore, from this perspective, k=4 can also be used.
[0123] The detection position of the moving body 1301 before slit numbering correction is indicated by slit number S. M With interpolation angle θ M The group is used to represent this. Regarding the mechanical angle θ, which serves as an example of the detection position in this variation,... d Similarly, the encoder 110 is represented by the aforementioned equation (1).
[0124] The calibration table 1350 is connected to the detection unit 1320a and the slit number calculation unit 1340. For each slit number, the calibration table 1350 stores the first detection signal (interpolated angle θ) detected from the first track. M The corresponding first slit position signal S MSB The correction value S Mcal and the second slit position signal SLSB The correction value S Lcal The combination of the output of calibration table 1350 and the slit number S received from slit number calculation unit 1340. M The corresponding correction value S in the combination of corresponding correction values, which corresponds to the first detection signal. Mcal and S Lcal .
[0125] The slit numbering correction unit 1360 is connected to the multiple slit position signal calculation unit 1330 and the correction table 1350. The slit numbering correction unit 1360 uses the correction value S received from the correction table 150. Mcal and S Lcal To process multiple slit position signals S received from the slit position signal calculation unit 1330 MSB and S LSB The correction is then performed. Next, the slit number correction unit 160 calculates the corrected slit number S' based on the corrected multiple slit position signals. M In this modified example, the slit number correction unit 1360 calculates the corrected slit number S' using the following equation (7). M .
[0126]
Number 7
[0127] S′ M =mod(k*round(S) MSB +S Mcal )+round(S LSB +S Lcal ), N M (7)
[0128] Furthermore, equation (7) is the slit position signal S in equation (6). MSB and S LSB Replace them respectively with the corrected slit position signal S MSB +S Mcal and S LSB +S Lcal It was formed.
[0129] The position calculation unit 1370 is connected to the detection unit 1320a and the slit numbering correction unit 1360. The position calculation unit 1370 is connected to... Figure 1 Similarly, the position calculation unit 170 calculates the position (corrected position) of the moving body 1301. In this modified example, the position calculation unit 1370 outputs a mechanical angle θ with one rotation of the moving body 1301 as one cycle, as a value representing the position of the moving body 1301.
[0130] Figure 14 The first slit position signal S shown in the modified example of this embodiment is illustrated. MSBAn example of the ideal value. This figure is set as the first number N. M =16, the second number N N =15 and the third number N S =12, and for (p) M p N p S The case of (3, -4, 1) plots the first slit position signal S shown in equation (4). MSB The obtained first slit position signal S MSB Able to determine the coefficient p M p N and p S The value changes, but in this variation example, such as Figure 14 As shown, the high digits of the slit number vary roughly in correspondence.
[0131] Figure 15 The second slit position signal S shown in the modified example of this embodiment is illustrated. LSB An example of the ideal value. This figure is set as the first number N. M =16, the second number N N =15 and the third number N S =12, and for (q) M q N q S The case of (3, 0, -4) plots the second slit position signal S shown in equation (5). LSB The second slit position signal S is formed. LSB Able to determine the coefficient q M q N and q S The value changes, but in this variation example, such as Figure 15 As shown, the variation roughly corresponds to the lower digits of the slit number.
[0132] Figure 16 This figure illustrates an example of an ideal value for the slit number involved in a variation of this embodiment. (The figure is presented using...) Figure 14 The first slit position signal S shown MSB and Figure 15 The second slit position signal S shown LSB The slit number S shown in equation (6) is plotted here. M It is formed by using... In this variation, by using... Figure 14 The first slit position signal S shown MSB and Figure 15 The second slit position signal S shown LSB Whenever the ideal mechanical angle of the moving body 1301 changes by 22.5° (i.e., 360° / N) each time MBy changing the slit angle from 0° to 360° in a certain way, the slit number increases from 0 to 15 (i.e., N) by 1 each time. M -1) slit number.
[0133] Next, it means Figures 13 to 16 The position detection device 1300 is shown for calibration. In this variation, the calibration device 700 can be used with, for example... Figure 7 and Figure 8 The correction value S for generating the slit position signal SS is shown. cal Similarly, the first slit position signal S is generated respectively. MSB The correction value S Mcal Second slit position signal S LSB The correction value S Lcal More specifically, the acquisition unit 710 and Figure 8 Similarly, the S800 acquires the detection position of the moving body 1301 for each actual position of the moving body 1301.
[0134] Here, the acquisition unit 710 acquires the first slit position signal S from the encoder, which serves as a reference for calibration. MSB The ideal value of S, which represents the value corresponding to the high digits of the slit number at the actual position. MSBideal , as the second slit position signal S LSB The ideal value of S, which represents the value corresponding to the lower digits of the slit number at the actual location. LSBideal and θ, representing the interpolated angle of the actual position. Mideal This is used as a value to represent the actual position of the moving body 1301. Additionally, the acquisition unit 710 acquires the first slit position signal S from the encoder 1310. MSB Second slit position signal S LSB and interpolation angle θ M The detection positions of the moving body 1301 are used as the detection positions. For each actual position of the moving body 1301, the generation unit 720 transforms the data format of the data that associates the detection positions, and obtains data that associates each detection position of the moving body 1301 with one or more actual positions.
[0135] The calculation unit 714, the determination unit 716, and the generation unit 720 and Figure 8 Similarly, for each detection position of the moving body 1301, regarding the first slit position signal S MSB Second slit position signal S LSB Repeat the processes S810 to S860 respectively.
[0136] Regarding the first slit position signal S MSB ,and Figure 8Similarly, in S820, the determination unit 716 determines whether it is used as the first slit position signal S. MSB At least two or more actual positions, each with a high-digit slit number, differ in at least a portion and correspond to the same detection position. In response to only one actual position corresponding to the detection position being targeted ("No" in S830), similarly to S840, the generation unit 720 generates the first slit position signal S... MSB At this detection location, an error (i.e., S) is generated to compare with the error at one actual location. MSB -S MSBideal The equivalent correction value S Mcal In response to two or more actual positions with at least a portion different slit numbers corresponding to the detection position as the target ("Yes" in S830), similarly to S850, the generation unit 720 generates a correction value S at the detection position for correcting the magnitude of the errors at each of the two or more actual positions. Mcal Regarding the second slit position signal S LSB Similarly, the generation unit 720 generates the correction value S at the detection position of the object, just as described above. Lcal .
[0137] When the correction value for each detection location is generated, and... Figure 8 Similarly, the S870 checks the first slit position signal S. MSB The check uses the correction value S generated by the generation unit 720. Mcal The slit number on the high side, calculated using the corrected slit position signal, is checked for errors. Additionally, the inspection unit 730 checks the second slit position signal S. LSB The check uses the correction value S generated by the generation unit 720. Lcal The slit number on the lower side, calculated using the corrected slit position signal, is checked for errors.
[0138] and Figure 8 Similarly, in the S880, the output unit 740 outputs the correction value of each inspection position and each first and second slit position signal generated by the generation unit 720.
[0139] According to the calibration device 700 involved in this modification, it is possible to generate correction values that appropriately correct the track numbering in the encoder 1310 that detects the position of the moving body 1301 using a moving body 1301 with three tracks. Similarly, for encoders that detect the position of moving bodies with four or more tracks, the calibration device 700 is also able to output correction values that correct one or more slit position signals calculated based on a weighted sum of multiple detection values detected from multiple tracks.
[0140] Various embodiments of the present invention can be described with reference to flowcharts and block diagrams, in which modules can represent (1) stages of a process for performing an operation, or (2) portions of a device that performs the operation. Specific stages and portions may be installed by dedicated circuitry, programmable circuitry provided with computer-readable instructions stored on a computer-readable medium, and / or a processor provided with computer-readable instructions stored on a computer-readable medium. Dedicated circuitry may include digital and / or analog hardware circuitry, and may also include integrated circuits (ICs) and / or discrete circuitry. Programmable circuitry may include reconfigurable hardware circuitry, including logical AND, logical OR, logical XOR, logical NAND, logical NOR and other logical operations, flip-flops, registers, field-programmable gate arrays (FPGAs), programmable logic arrays (PLAs), and other memory elements.
[0141] Computer-readable media can include any tangible device capable of storing instructions executable by a suitable device, resulting in a computer-readable medium having instructions stored therein comprising an article of manufacture containing instructions executable by means of means for performing operations specified by a flowchart or block diagram. Examples of computer-readable media include electrical storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, etc. More specific examples of computer-readable media include floppy disks, floppy diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), electrically erasable programmable read-only memory (EEPROM), static random access memory (SRAM), optical disc read-only memory (CD-ROM), digital multipurpose disc (DVD), Blu-ray disc, memory stick, integrated circuit card, etc.
[0142] Computer-readable instructions may include any of the source code and object code described in any combination of one or more programming languages, including assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-specific instructions, microcode, firmware instructions, status setting data, or object-oriented programming languages such as JAVA (registered trademark), C++, Smalltalk (registered trademark), and conventional procedural programming languages such as the "C" programming language or similar programming languages.
[0143] Computer-readable instructions can be provided locally or via a wide area network (WAN) such as a local area network (LAN) or the Internet to the processor or programmable circuitry of a programmable data processing device, such as a general-purpose computer, a special-purpose computer, or other computers, and are executed to create means for performing operations specified by flowcharts or block diagrams. Examples of processors include computer processors, processing units, microprocessors, digital signal processors, controllers, microcontrollers, etc.
[0144] Figure 17 Examples of computer 2200 that can embody various aspects of the present invention, either wholly or partially, are shown. Programs installed on computer 2200 enable computer 2200 to function as an operation associated with an apparatus according to embodiments of the present invention, or to perform that operation or that one or more parts of the apparatus, and / or to perform a process or a stage of that process according to embodiments of the present invention. Such programs can be executed by CPU 2212 to enable computer 2200 to perform specific operations associated with several or all of the modules in the flowcharts and block diagrams described in this specification.
[0145] The computer 2200 based on this embodiment includes a CPU 2212, RAM 2214, a graphics controller 2216, and a display device 2218, which are interconnected via a host controller 2210. The computer 2200 also includes input / output units such as a communication interface (communication I / O) 2222, a hard disk drive 2224, a DVD-ROM drive 2226, and an IC card drive, which are connected to the host controller 2210 via an input / output controller (I / O controller) 2220. The computer also includes conventional input / output units such as a ROM 2230 and a keyboard 2242, which are connected to the input / output controller 2220 via an input / output chip (I / O chip) 2240.
[0146] The CPU 2212 operates according to the program stored in the ROM 2230 and RAM 2214, thereby controlling each unit. The graphics controller 2216 acquires image data provided to the frame buffer in RAM 2214 or generated by the CPU 2212 within itself, so that the image data is displayed on the display device 2218.
[0147] Communication interface 2222 communicates with other electronic devices via a network. Hard disk drive 2224 stores programs and data used by CPU 2212 within computer 2200. DVD-ROM drive 2226 reads programs or data from DVD-ROM 2201 and provides programs or data to hard disk drive 2224 via RAM 2214. IC card drive reads programs and data from IC card and / or writes programs and data to IC card.
[0148] ROM 2230 stores boot programs and other programs that are executed by computer 2200 upon activation, and / or programs that depend on the hardware of computer 2200. Input / output chip 2240 also connects various input / output units to input / output controller 2220 via parallel ports, serial ports, keyboard ports, mouse ports, etc.
[0149] The program is provided via a computer-readable medium such as a DVD-ROM 2201 or an IC card. The program is read from the computer-readable medium, installed in a hard disk drive 2224, RAM 2214, or ROM 2230 (also examples of computer-readable media), and executed by the CPU 2212. The information processing described within this program is read by the computer 2200 to induce cooperation between the program and the aforementioned hardware resources. The apparatus or method can also be configured to perform information manipulation or processing according to the use of the computer 2200.
[0150] For example, when communication is performed between computer 2200 and an external device, CPU 2212 can execute a communication program loaded into RAM 2214 and instruct communication interface 2222 to perform communication processing based on the processing described in the communication program. Under the control of CPU 2212, communication interface 2222 reads transmission data stored in the transmission buffer processing area provided in recording media such as RAM 2214, hard disk drive 2224, DVD-ROM 2201, or IC card, and sends the read transmission data to the network, or writes received data received from the network to the receive buffer processing area provided on the recording medium, etc.
[0151] In addition, the CPU 2212 can read all or necessary portions of files or databases stored on external recording media such as hard disk drive 2224, DVD-ROM drive 2226 (DVD-ROM 2201), and IC cards into RAM 2214, and perform various types of processing on the data in RAM 2214. The CPU 2212 then writes the processed data back to the external recording media.
[0152] Various types of information, such as programs, data, tables, and databases, can be stored in recording media and processed. The CPU 2212 can perform various types of processing on data read from RAM 2214, including operations specified by a sequence of program instructions, information processing, conditional judgments, conditional branches, unconditional branches, information search / replacement, etc., as described throughout this disclosure, and write the results back to RAM 2214. Furthermore, the CPU 2212 can retrieve information from files, databases, etc., within the recording medium. For example, when multiple entries, each having an attribute value associated with a second attribute, are stored in the recording medium, the CPU 2212 can retrieve from these multiple entries an entry that matches the condition specifying the attribute value of the first attribute, read the attribute value of the second attribute stored in that entry, and thereby obtain the attribute value of the second attribute associated with the first attribute satisfying a predetermined condition.
[0153] The programs or software modules described above can be stored on or near computer-readable media on computer 2200. Alternatively, a recording medium such as a hard disk or RAM provided in a server system connected to a dedicated communication network or the Internet can be used as a computer-readable medium, thereby providing the program to computer 2200 via the network.
[0154] The present invention has been described above using embodiments, but the scope of protection of the present invention is not limited to the scope described in the above embodiments. Those skilled in the art will understand that various modifications or improvements can be made to the above embodiments. As can be clearly seen from the claims, such modifications or improvements can also be included within the scope of protection of the present invention.
[0155] It should be noted that the execution order of actions, processes, steps, and stages in the apparatus, system, program, and method shown in the claims, specification, and drawings can be implemented in any order, unless specifically stated as "before," "firstly," etc., and as long as the output of the preceding process is not used for the subsequent process. Even if the flow of actions in the claims, specification, and drawings is described using terms such as "firstly," "nextly," etc., for convenience, it does not mean that they must be implemented in that order.
[0156] Explanation of reference numerals in the attached figures
[0157] 10: Position detection device; 100: Moving body; 105a-b: Track; 110: Encoder; 120a-b: Detection unit; 130: Slit position signal calculation unit; 140: Slit number calculation unit; 150: Calibration table; 160: Slit number calibration unit; 170: Position calculation unit; 500a-e: Error; 600a-e: Error; 610: Error; 700: Calibration device; 710: Acquisition unit; 714: Calculation unit; 716: Judgment unit; 720: Generation unit; 730: Inspection unit; 740: Output unit; 1300: Position detection device; 1301: Moving body; 1310: Encoder; 1320a ~b: Detection unit; 1330: Slit position signal calculation unit; 1340: Slit number calculation unit; 1350: Calibration table; 1360: Slit number calibration unit; 1370: Position calculation unit; 2200: Computer; 2201: DVD-ROM; 2210: Host controller; 2212: CPU; 2214: RAM; 2216: Graphics controller; 2218: Display device; 2220: Input / output controller; 2222: Communication interface; 2224: Hard disk drive; 2226: DVD-ROM drive; 2230: ROM; 2240: Input / output chip; 2242: Keyboard.
Claims
1. A position detection device, comprising: Encoder; and Storage device, in, The encoder performs the following processing: A first detection value is obtained based on the output of a sensor associated with the first slit track of the moving body; The second detection value is obtained based on the output of a sensor associated with the second slit track of the moving body; The slit position signal is calculated based on the first detection value and the second detection value; The first slit number is calculated based on the slit position signal; Based on the detection results of the first slit number and the first detection value, a predetermined correction value for correcting the slit position signal is obtained from the storage device. The correction value is applied to the slit position signal, and the corrected first slit number is obtained based on the corrected slit position signal; as well as The position of the moving body is derived based on the corrected first slit number and the first detection value. Furthermore, the correction value is determined through the following process: Within the movement range of the moving body, reference slit position signals are acquired at multiple inspection positions, and the ideal slit number corresponding to each of the multiple inspection positions is determined based on each of the reference slit position signals. The slit position signal is acquired at each of the plurality of inspection positions, and the detection position is acquired based on the slit position signal. The error of the slit position signal relative to the reference slit position signal at each of the plurality of inspection positions is also acquired. Based on the obtained detection locations, the following processing is performed: For a detection position where the ideal slit number is obtained from two or more different inspection positions, a correction value is generated based on any value between the maximum and minimum values of two or more errors associated with that detection position.
2. The position detection device according to claim 1, wherein, When the detection position is obtained based on the slit position signal, for the detection position where the ideal slit number is obtained only at one inspection position, a correction value is generated based on the error corresponding to that detection position.
3. The position detection device according to claim 1, wherein, A correction value is generated for each interval of the detected location.
4. The position detection device according to claim 3, wherein, For each interval of the acquired detection positions, the correction values calculated for each detection position within that interval are averaged to calculate the correction value for that interval.
5. The position detection device according to claim 1, wherein, For each interval of the acquired detection location, calculate the parameters of the correction function that represent the correction value corresponding to the detection location.
6. The position detection device according to claim 5, wherein, For each interval of the acquired detection position, a Fourier series expansion is performed on the set of correction values corresponding to the detection position, thereby calculating the parameters of the correction function.
7. The position detection device according to claim 1, wherein, In response to the two or more inspection positions corresponding to the same detection position, a correction value is generated for the slit position signal to correct the magnitude obtained by averaging the errors at each of the two or more inspection positions.
8. The position detection device according to claim 7, wherein, The correction value used to correct the magnitude of the error between each of the two or more inspection positions is adjusted so that the error between the corrected slit position signal and the slit number of each of the two or more inspection positions is within a predetermined reference range.
9. The position detection device according to claim 1, wherein, The correspondence between the inspection position and the detection position is determined by maintaining a margin at the boundary of the first slit.
10. The position detection device according to claim 9, wherein, A correction value is generated using at least one inspection position corresponding to the detection position and the inspection position, the detection position being obtained by at least one of adding and subtracting the boundary of the first slit from a predetermined margin for the slit position signal.
11. The position detection device according to claim 1, wherein, The encoder outputs a correction value, which rounds the value obtained by adding the correction value to the slit position signal to calculate the slit number in units of the first slit.
12. The position detection device according to claim 11, wherein, The encoder calculates the slit number by rounding the value obtained by adding a correction value to the slit position signal to make it an integer.
13. The position detection device according to claim 11, wherein, Write the correction value into the correction table of the encoder.
14. The position detection device according to claim 11, wherein, Check if the slit number calculated using the slit position signal corrected based on the generated correction value is incorrect.
15. The position detection device according to claim 14, wherein, If the difference between the slit position signal, after being corrected according to the generated correction value, and the ideal slit number corresponding to the inspection position of the moving body is within a predetermined reference range, it is determined that the calculated slit number has not been erroneous.
16. The position detection device according to claim 15, wherein, The reference range is the range below ±50% of the width corresponding to one slit number.
17. The position detection device according to any one of claims 1 to 16, wherein, The moving body is a rotating body. The rotating body has: A first track, which includes the first slit every first period, wherein the first period is obtained by dividing one revolution of the rotating body into a predetermined first number; as well as The second track, which includes a second slit every second period, is obtained by dividing one revolution of the rotating body into a second number smaller than the first number. The encoder, which is used for calibration, calculates the detection position of the moving body based on a first detection value detected from the first track and a second detection value detected from the second track.
18. The position detection device according to claim 17, wherein, The first number and the second number are coprime.
19. The position detection device according to claim 17, wherein, The difference between the first number and the second number is determined to be 1.
20. The position detection device according to claim 17, wherein, The rotating body also has a third track, which includes a third slit every third period. The third period is obtained by dividing one revolution of the rotating body by a third number different from the first and second numbers. The encoder also calculates the detection position of the moving body based on a third detection value detected from the third track.
21. The position detection device according to claim 20, wherein, The encoder calculates the detection position of the moving body based on the sum of the weighted sum of the first detection value detected from the first track, the second detection value detected from the second track, and the third detection value detected from the third track, using a pre-determined integer.
22. A position detection method, comprising: A first detection value is obtained based on the output of a sensor associated with the first slit track of the moving body; The second detection value is obtained based on the output of a sensor associated with the second slit track of the moving body; The slit position signal is calculated based on the first detection value and the second detection value; The first slit number is calculated based on the slit position signal; Based on the detection results of the first slit number and the first detection value, a predetermined correction value for correcting the slit position signal is obtained from the storage device. The correction value is applied to the slit position signal, and the corrected first slit number is obtained based on the corrected slit position signal; as well as The position of the moving body is derived based on the corrected first slit number and the first detection value. Furthermore, the correction value is determined through the following process: Within the movement range of the moving body, reference slit position signals are acquired at multiple inspection positions, and the ideal slit number corresponding to each of the multiple inspection positions is determined based on each of the reference slit position signals. The slit position signal is acquired at each of the plurality of inspection positions, and the detection position is acquired based on the slit position signal. The error of the slit position signal relative to the reference slit position signal at each of the plurality of inspection positions is also acquired. Based on the obtained detection locations, the following processing is performed: For a detection position where the ideal slit number is obtained from two or more different inspection positions, a correction value is generated based on any value between the maximum and minimum values of two or more errors associated with that detection position.
23. A computer program product comprising a position detection program executed by a computer, the position detection program causing the computer to perform the following processes: A first detection value is obtained based on the output of a sensor associated with the first slit track of the moving body; The second detection value is obtained based on the output of a sensor associated with the second slit track of the moving body; The slit position signal is calculated based on the first detection value and the second detection value; The first slit number is calculated based on the slit position signal; Based on the detection results of the first slit number and the first detection value, a predetermined correction value for correcting the slit position signal is obtained from the storage device. The correction value is applied to the slit position signal, and the corrected first slit number is obtained based on the corrected slit position signal; as well as The position of the moving body is derived based on the corrected first slit number and the first detection value. Furthermore, the correction value is determined through the following process: Within the movement range of the moving body, reference slit position signals are acquired at multiple inspection positions, and the ideal slit number corresponding to each of the multiple inspection positions is determined based on each of the reference slit position signals. The slit position signal is acquired at each of the plurality of inspection positions, and the detection position is acquired based on the slit position signal. The error of the slit position signal relative to the reference slit position signal at each of the plurality of inspection positions is also acquired. Based on the obtained detection locations, the following processing is performed: For a detection position where the ideal slit number is obtained from two or more different inspection positions, a correction value is generated based on any value between the maximum and minimum values of two or more errors associated with that detection position.
24. A computer-readable medium storing a position detection program executed by a computer, the position detection program causing the computer to perform the following processes: A first detection value is obtained based on the output of a sensor associated with the first slit track of the moving body; The second detection value is obtained based on the output of a sensor associated with the second slit track of the moving body; The slit position signal is calculated based on the first detection value and the second detection value; The first slit number is calculated based on the slit position signal; Based on the detection results of the first slit number and the first detection value, a predetermined correction value for correcting the slit position signal is obtained from the storage device. The correction value is applied to the slit position signal, and the corrected first slit number is obtained based on the corrected slit position signal; as well as The position of the moving body is derived based on the corrected first slit number and the first detection value. Furthermore, the correction value is determined through the following process: Within the movement range of the moving body, reference slit position signals are acquired at multiple inspection positions, and the ideal slit number corresponding to each of the multiple inspection positions is determined based on each of the reference slit position signals. The slit position signal is acquired at each of the plurality of inspection positions, and the detection position is acquired based on the slit position signal. The error of the slit position signal relative to the reference slit position signal at each of the plurality of inspection positions is also acquired. Based on the obtained detection locations, the following processing is performed: For a detection position where the ideal slit number is obtained from two or more different inspection positions, a correction value is generated based on any value between the maximum and minimum values of two or more errors associated with that detection position.
Citation Information
Patent Citations
Position detection device and position detection method
WO2018190019A1
Position detection device and position detection method
CN110494716A
Position detector and device including the same
JP2016161433A
Rotational angle detection apparatus and rotational angle detection method
US20190316939A1
Absolute rotary encoder and apparatus
US20200173774A1