Position detection device, position detection method, and position detection program

The calibration device addresses inaccuracies in position detection by correcting slit position errors through error calculation and averaging, enhancing the precision of position detection devices.

JP2026063143APending Publication Date: 2026-04-10ASAHI KASEI MICRODEVICES CORP
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
ASAHI KASEI MICRODEVICES CORP
Filing Date
2026-01-14
Publication Date
2026-04-10

AI Technical Summary

Technical Problem

The existing position detection devices face inaccuracies due to large errors in the absolute angle, leading to incorrect slit numbers and differences in correction values, which can result in incorrect position calculations.

Method used

A calibration device that acquires the detection position of a moving body, calculates errors between actual and ideal slit positions, determines if multiple positions share the same detection position, and generates correction values to adjust these errors, using Fourier series expansion and averaging methods to correct the slit position signal.

Benefits of technology

The calibration device enhances the accuracy of position detection by correcting errors in slit numbers, ensuring precise position calculations even in the presence of large errors, thereby improving the reliability of position detection systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026063143000001_ABST
    Figure 2026063143000001_ABST
Patent Text Reader

Abstract

A position detection device comprising: a first detection unit for detecting a first detection value from a first track provided on a moving body; a second detection unit for detecting a second detection value from a second track provided on a moving body; a third detection unit for detecting a third detection value from a third track provided on a moving body; a first slit position signal calculation unit for calculating a first slit position signal using the first detection value, the second detection value, the third detection value, and a first vector; a second slit position signal calculation unit for calculating a second slit position signal using the first detection value, the second detection value, the third detection value, and a second vector; a slit number calculation unit for calculating the slit number of the first track using the first slit position signal and the second slit position signal; and a position calculation unit for calculating the position of a moving body based on the first detection value and the slit number of the first track.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a position detection device, a position detection method, and a position detection program. [Background technology]

[0002] Patent Document 1 describes a position detection device comprising: a waveform correction unit that corrects the waveform of a first signal detected from a first track having a scale of a predetermined period provided on a moving body; a second signal detected from a second track provided on the moving body having a scale of a period less than the predetermined period; 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 states that "the interpolation angle correction unit 700 corrects the pre-correction interpolation angle calculated by the interpolation angle calculation unit 250 and the interpolation angle calculation unit 260 based on the interpolation angle error information obtained from the correction table 510. At this time, the interpolation angle correction unit 700 obtains the slit number corresponding to the absolute angle θref sent from the angle calculation unit 310, and corrects the interpolation angle corresponding to that slit number using the difference recorded in the correction table 510. 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). [Prior art document] [Patent] [Patent Document 1] International Publication No. 2018 / 190019 [Overview of the Initiative] [Problems that the invention aims to solve]

[0003] In the position detection device described in Patent Document 1, the slit number corresponding to the absolute angle θref is determined, and the interpolation angle corresponding to that slit number is corrected using the difference recorded in the correction table 510. Therefore, if the error in the absolute angle θref is large, the slit number may be incorrect, and an incorrect difference value may be read from the correction table. [Means for solving the problem]

[0004] In a first embodiment according to certain aspects of this disclosure, a calibration device is provided. The calibration device includes: an acquisition unit that acquires the detection position of a moving body for each actual position of the moving body; a calculation unit that calculates the error between a slit position signal that detects a slit position and an ideal slit number corresponding to the actual position of the moving body for each detection position of the moving body; a determination unit that determines whether two or more actual positions, each with at least partially different slit numbers based on a predetermined first slit of size, correspond to the same detection position; and a generation unit that, depending on whether two or more actual positions correspond to the same detection position, generates a correction value that corrects the magnitude of the error between the errors in each of the two or more actual positions with respect to the slit position signal at that detection position.

[0005] The generation unit may generate a correction value for the slit position signal that corrects for the error at the detection position, corresponding to a detection position where there is only one actual position.

[0006] In any of the calibration devices described above, the generation unit may generate a correction value for each interval of the detection position acquired by the acquisition unit.

[0007] In any of the calibration devices described above, the generation unit may calculate parameters of a correction function that represent a correction value corresponding to the detection position for each interval of the detection position acquired by the acquisition unit.

[0008] In any of the calibration devices described above, the generation unit may calculate the parameters of the correction function by performing 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.

[0009] In any of the calibration devices described above, the generation unit may generate a correction value for the slit position signal that is equal to the average magnitude of the errors in each of the two or more real positions, depending on whether two or more real positions correspond to the same detection position.

[0010] In any of the calibration devices described above, the generation unit may determine the correspondence between the actual position and the detected position by adding a margin to the boundary of the first slit. In any of the calibration devices described above, the generation unit may generate a correction value using at least one actual position corresponding to the detected position, which includes the correspondence between the detected position and the actual position obtained by adding or subtracting a predetermined margin to the boundary of the first slit on the slit position signal.

[0011] Any of the above calibration devices may further include an output unit that outputs a correction value to an encoder that calculates a slit number in units of the first slit by rounding the value obtained by adding a correction value to the slit position signal.

[0012] In any of the calibration devices described above, the encoder may calculate a slit number by rounding the slit position signal plus a correction value so that the result is an integer.

[0013] In any of the calibration devices described above, the output unit may write the correction value to the correction table of the encoder.

[0014] Any of the above calibration devices may further include an inspection unit that checks whether or not there is an error in the slit number calculated using the slit position signal corrected by the correction value generated by the generation unit.

[0015] In any of the calibration devices described above, the moving body is a rotating body, and the rotating body has a first track containing a first slit for each first period obtained by dividing one rotation of the rotating body by a predetermined first number, and a second track containing a second slit for each second period obtained by dividing one rotation of the rotating body by a second number smaller than the first number, and the encoder to be calibrated may calculate 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.

[0016] The rotating body has a third track containing a third slit every third period, obtained by dividing one rotation of the rotating body by a third number different from the first and second numbers, and the encoder may further calculate the detected position of the moving body based on a third detected value detected from the third track.

[0017] A second embodiment, according to certain aspects of this disclosure, provides a calibration method. The calibration method comprises: a calibration device acquiring a detection position of a moving body for each actual position of the moving body; the calibration device calculating an error between a slit position signal that detects a slit position and an ideal slit number corresponding to the actual position of the moving body for each detection position of the moving body; the calibration device determining whether two or more actual positions, each with at least partially different slit numbers based on a predetermined first slit of size, correspond to the same detection position; and, depending on whether two or more actual positions correspond to the same detection position, generating a correction value that corrects the magnitude of the error between the errors in each of the two or more actual positions for the slit position signal at that detection position.

[0018] In a third embodiment according to certain aspects of this disclosure, a calibration program executed by a computer is provided. The calibration program causes the computer to function as an acquisition unit that acquires the detected position of a moving body for each actual position of the moving body; a calculation unit that calculates the error between a slit position signal that detects a slit position and an ideal slit number corresponding to the actual position of the moving body for each detected position of the moving body; a determination unit that determines whether two or more actual positions, each with at least partially different slit numbers based on a predetermined first slit unit, correspond to the same detected position; and a generation unit that, depending on whether two or more actual positions correspond to the same detected position, generates a correction value that corrects the magnitude of the error between the errors in each of the two or more actual positions for the slit position signal at that detected position.

[0019] It should be noted that the above summary of the invention does not enumerate all of its features. Furthermore, subcombinations of these features may also constitute an invention. [Brief explanation of the drawing]

[0020] [Figure 1] The configuration of the position detection device 10 according to this embodiment is shown. [Figure 2] An example of the relationship between the ideal mechanical angle and the electrical interpolation angle is shown. [Figure 3] An example of the relationship between the ideal machine angle and the slit number is shown. [Figure 4] An example of a slit position signal error for each ideal machine angle is shown. [Figure 5] An example of a slit position signal error for each ideal machine angle is shown, focusing on slit number 20. [Figure 6] An example of a slit position signal error for each measured machine angle is shown, focusing on the error value that should correspond to slit number 20 after correction. [Figure 7] The configuration of the calibration device 700 according to this embodiment is shown. [Figure 8] The operation flow of the calibration device 700 according to this embodiment is shown. [Figure 9] An example of a correction value generated by the calibration device 700 is shown. [Figure 10] An example of a slit position signal error after correction is shown. [Figure 11] This shows an example where a gap occurs in the correction value. [Figure 12] This embodiment shows an example of a method for interpolating the gap in the correction values. [Figure 13] The configuration of a modified position detection device 1300 according to this embodiment is shown. [Figure 14] An example of an ideal value for the first slit position signal SMSB according to a modified version of this embodiment is shown. [Figure 15] An example of an ideal value for the second slit position signal SLSB according to a modified version of this embodiment is shown. [Figure 16] An example of an ideal value for the slit number according to a modified version of this embodiment is shown. [Figure 17] Examples of a computer 2200 in which multiple aspects of the present invention may be embodied in whole or in part are shown. [Modes for carrying out the invention]

[0021] The present invention will be described below through embodiments, but these embodiments are not intended to limit the scope of the claims. Furthermore, not all combinations of features described in the embodiments are necessarily essential to the solution of the invention.

[0022] Figure 1 shows the configuration of the position detection device 10 according to this embodiment. The position detection device 10 comprises a moving body 100 and an encoder 110. The moving body 100 is the object to be measured, whose position is to be detected by the encoder 110. In this embodiment, the moving body 100 is, for example, a disc-shaped rotating body arranged perpendicular to the axis of rotation. Alternatively, the moving body 100 may be a moving body that moves along a straight line relative to the encoder 110.

[0023] The moving body 100 comprises a plurality of tracks 105a to b (also referred to as "track 105"). Each track 105 includes a plurality of slits provided at predetermined intervals along the direction of movement of the moving body 100. In this embodiment, each track 105 includes a plurality of slits provided at equal intervals in the circumferential direction around the axis of rotation of the moving body 100, which is a rotating body. Each slit is a structure detectable by the encoder 110 using magnetism, light, or electricity. For example, each slit is an opening or projection provided at equal intervals in the circumferential direction of the moving body 100, individual teeth of a gear formed on the outer circumference of the moving body 100, or a magnetized body magnetized at equal intervals in the circumferential direction of the moving body 100.

[0024] Each of the multiple tracks 105 may be provided on the surface of the moving body 100 at different distances (i.e., radii) from the axis of rotation, with respect to the axis of rotation. In this embodiment, track 105a is provided circumferentially near the outer circumference of the moving body 100, and track 105b is provided circumferentially adjacent to track 105a on the inner circumference side of track 105a.

[0025] Here, the multiple tracks 105 have slits at different periods from each other. In this embodiment, track 105a is an example of a first track, and one rotation of the moving body 100 is a predetermined first number N M It includes the first slit for each first period divided by . Track 105b is an example of a second track, and one rotation of the moving body 100 is divided by a second number N that is smaller than the first number. N This includes a second slit for each second period divided by the first number N. Here, if the moving body 100 has two tracks 105, the number of slits per revolution on track 105a is the first number N. M ) and the number of slits per lap on track 105b (the second number N) N The first number N may be relatively prime. M and the second number N N The first number N may be determined such that the difference is 1. M and the second number N NThe set may be (8, 7), (40, 39), or (128, 127), etc.

[0026] The encoder 110 calculates the detected position of the moving body 100 based on a plurality of detected values detected from a plurality of tracks 105 of the moving body 100. The encoder 110 includes a plurality of detection units 120a - b (also referred to as "detection unit 120"), a slit position signal calculation unit 130, a slit number calculation unit 140, a correction table 150, a slit number correction unit 160, and a position calculation unit 170.

[0027] Each of the plurality of detection units 120 is provided corresponding to each of the plurality of tracks 105 and outputs a detected value detected from the corresponding track 105. In the present embodiment, the detection unit 120a functions as the first detection unit and detects and outputs a first detected value from the track 105a which is an example of the first track. The detection unit 120b functions as the second detection unit and detects and outputs a second detected value from the track 105b which is an example of the second track. Here, the detection unit 120a and the detection unit 120b set the interval between adjacent slits in the corresponding track 105 as one cycle (= 360 degrees) as the (electrical) interpolation angle θ M and θ N and outputs them respectively.

[0028] The slit position signal calculation unit 130 is connected to the plurality of detection units 120. The slit position signal calculation unit 130 outputs a slit position signal SS using the plurality of detected values from the plurality of detection units 120. The slit position signal indicates the value of the position of the moving body 100 detected by the encoder 110 and indicates the slit number of the first slit detected by the detection units 120a - b.

[0029] 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 obtain a slit number S M(i.e., the slit number of the slit where the moving body 100 is located) is calculated. Here, the detected position of the moving body 100 before correction of the slit number by the slit number correction unit 160 is slit number S M And the interpolation angle θ M It is expressed as a pair with the following. In this embodiment, the mechanical angle θ is an example of the detection position. d This can be expressed by the following equation (1).

number

[0030] The correction table 150 is connected to the detection unit 120a and the slit number calculation unit 140. For each slit number, the correction table 150 calculates the first detection signal (interpolation angle θ) detected from the first track. M It stores a set of correction values ​​corresponding to the slit number S received from the slit number calculation unit 140. The correction table 150 stores a set of correction values ​​corresponding to the slit number S. M Among the set of correction values ​​associated with the first detection signal, the interpolation angle θ M The corresponding correction value S cal Outputs.

[0031] The slit number correction unit 160 is connected to the slit position signal calculation unit 130 and the correction table 150. The slit number correction unit 160 receives the slit position signal SS from the slit position signal calculation unit 130 and the correction value S received from the correction table 150. cal The correction is performed by the slit number correction unit 160 then corrects the slit number S' based on the corrected slit position signal. M The slit number correction unit 160 calculates the slit number in units of the first slit by rounding the value obtained by adding the correction value to the slit position signal SS from the slit position signal calculation unit 130. If the decimal point of the slit position signal SS is at a position that corresponds the integer part of the slit position signal SS to the slit number, the slit number correction unit 160 calculates the slit number by rounding the value obtained by adding the correction value to the slit position signal SS so that it is an integer.

[0032] The position calculation unit 170 is connected to the detection unit 120a and the slit number correction unit 160. The position calculation unit 170 receives the slit number S' from the slit number correction unit 160. M The position of the moving body 100 (corrected position) 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 θ, where one rotation of the moving body 100 is considered one period, as a value indicating the position of the moving body 100.

[0033] Figure 2 shows an example of the relationship between the ideal mechanical angle and the electrical interpolation angle. Here, the "ideal mechanical angle" refers to the mechanical angle without considering errors and corresponds to the actual position of the moving body 100. Each of the multiple detection units 120 outputs an electrical interpolation angle, with one period being the distance between adjacent slits on the corresponding track 105. As an example, each detection unit 120 has two sensors that detect slits on the track 105, and a phase difference of 1 / 4 period (90 degrees) between the slits is given between the two sensors. As a result, the two sensors can detect a sin voltage and a cos voltage corresponding to the electrical interpolation angle from the slit being sensed.

[0034] Each detection unit 120 may correct the waveforms of the sin and cos voltages output from the two sensors. Specifically, each detection unit 120 may correct at least one of the offset, gain, phase, or distortion of the sin and cos voltages.

[0035] Next, each detection unit 120 uses the sin voltage and cos voltage to determine the arctangent (inverse negative tangent). -1 The interpolation angle is calculated by calculating the following. Each detection unit 120 may correct the interpolation angle using the distortion of the amplitude of the sin voltage and cos voltage, etc.

[0036] In the example shown in this figure, track 105a has 8 slits per rotation of the mobile body 100, and track 105b has 7 slits per rotation of the mobile body 100. When the mobile body 100 is rotated one full turn (from 0 to 360 degrees), the interpolation angle θ output by the detection unit 120a is M The process repeats 8 times from 0 to 360 degrees, and the interpolation angle θ output by the detection unit 120b is... N This repeats for 7 cycles from 0 to 360 degrees. Therefore, the difference θ between these interpolation angles is... M -θ N As shown in Figure 2, the angle changes from 0 degrees to 360 degrees when the moving body 100 completes one rotation, and the mechanical angle θ shown in equation (1) d It corresponds to this.

[0037] The slit position signal calculation unit 130 calculates the interpolation angle θ M and θ N Using this, a slit position signal SS indicating the slit number corresponding to the detection position is calculated. Here, the slit position signal SS is ideally the slit number S output by the slit number calculation unit 140. M It should match this. Therefore, the slit number S in equation (1) M Replace with the slit position signal SS, and interpolate the difference θ of the angle into the mechanical angle θd in equation (1). M -θ N Substituting and rearranging, the slit position signal SS is expressed by the following equation (2). Note that equation (2) is N N =N M Let's look at the case where -1.

number

[0038] In other embodiments, the slit position signal calculation unit 130 may output the slit position signal SS after correcting it using a pre-correction function that calculates a correction value for correcting the slit position signal SS. Such a pre-correction function may be, for example, the interpolation angle θ output by the detection units 120a and 120b. M and θ N Based on this, the amplitude R of the detected values ​​of the detection unit 120a and the detection unit 120b M and R N The pre-correction function may be based on, for example, the difference θ of the interpolation angles output by detection unit 120a and detection unit 120b. M -θ N The sine wave (sin) may be adjusted in magnitude and phase according to the target correction amount.

[0039] Figure 3 shows an example of the relationship between the ideal machine angle and the slit number. The graph in this figure shows the value of the slit position signal SS corresponding to the machine angle when there is no error. When there is no error, the slit position signal SS output by the slit position signal calculation unit 130 indicates the slit number corresponding to the machine angle of the mobile body 100, such as 0 when the mobile body 100 is located at the machine angle corresponding to the first cycle of the track 105a, 1 when the mobile body 100 is located at the machine angle corresponding to the second cycle of the track 105a, and so on.

[0040] The slit number calculation unit 140 rounds the slit position signal as shown in the following equation (3) to obtain a slit number S corresponding to the detected position (machine angle) of the moving body 100. MThe slit position signal SS may be calculated. In this case, the slit position signal SS has a margin of error in the range of -0.5 or more and less than +0.5. Therefore, even if the slit position signal has an error in the range of -0.5 or more and less than +0.5, the slit number calculation unit 140 can calculate the correct slit number S. M It is possible to calculate this.

number

[0041] Figure 4 shows an example of the slit position signal error for each ideal machine angle. In this figure, the moving body 100 is the first number N. M =40 and the second number N N Let's consider the case where we have tracks 105a and 105b, both of which have a value of 39. In this case, track 105a has a slit period that corresponds to a mechanical angle of 9 degrees (360 ÷ 40 = 9).

[0042] The slit position signal error in this figure is calculated by subtracting the ideal value S of the slit position signal SS at the ideal mechanical angle from the slit position signal SS actually output by the slit position signal calculation unit 130 when the position of the moving body 100 is the ideal mechanical angle. ideal This is the value (error) obtained by subtracting the value. Such a slit position signal error can be measured, for example, by rotating the moving body 100 while calibrating the position detection device 10, and using an ideal encoder (for example, an encoder used as a calibration reference for encoder 110) to find the ideal slit number S ideal This can be measured by measuring the ideal machine angle including the slit position, and by acquiring the slit position signal SS output by the slit position signal calculation unit 130. In the example shown in this figure, depending on the ideal machine angle, the slit position signal error exceeds the range of ±0.5.

[0043] Figure 5 shows an example of a slit position signal error for each ideal machine angle, focusing on slit number 20. The slit position signal error in this figure is the same as in Figure 4. Slit number 20 corresponds to a machine angle of 180 to 189 degrees. Error 500a (slit position signal error 500a) indicates that the slit number indicated by the slit position signal SS is 2 less than slit number 20, which corresponds to the ideal machine angle. In other words, the value of the slit position signal SS is within the range corresponding to slit number 18 (for example, 17.5 or more and less than 18.5).

[0044] Similarly, error 500b indicates that the slit number indicated by the slit position signal SS is one less than the slit number 20 corresponding to the ideal machine angle and falls within the range corresponding to slit number 19; error 500c indicates that the slit number indicated by the slit position signal SS is the same as the slit number 20 corresponding to the ideal machine angle; error 500d indicates that the slit number indicated by the slit position signal SS is one greater than the slit number 20 corresponding to the ideal machine angle and falls within the range corresponding to slit number 21; and error 500e indicates that the slit number indicated by the slit position signal SS is two greater than the slit number 20 corresponding to the ideal machine angle and falls within the range corresponding to slit number 22. Thus, if the slit position signal error exceeds the range of ±0.5, the slit number indicated by the slit position signal SS will differ from the ideal slit number.

[0045] Figure 6 shows an example of a slit position signal error for each measured machine angle, focusing on the error value that should correspond to slit number 20 after correction. While Figures 4 and 5 show the slit position signal error acquired for each actual position of the moving body 100 during the calibration of the position detection device 10, this figure shows what correction value S the position detection device 10, after calibration, should use for each detected position of the moving body 100, for the slit position signal SS indicating the slit number. cal This indicates what should be used. Specifically, during actual use of the position detection device 10, the slit number correction unit 160 corrects the slit position signal SS to what correction value S cal This indicates whether correction should be made using this method.

[0046] The horizontal axis of this figure represents the slit number S before correction from the slit number calculation unit 140. M The interpolation angle θ from the detection unit 120. M This value corresponds to the machine angle (i.e., detection position) before correction, with the added value. Here, the interpolation angle θ from the detection unit 120 is used. M is 1 / N M By doubling, it is normalized to a range of 0 to 9 degrees.

[0047] The slit number correction unit 160 applies a correction value S to the slit position signal SS from the slit position signal calculation unit 130. cal By adding and rounding, the corrected slit number S' M (that is, the ideal value S of the slit position signal) ideal ) is calculated. Therefore, the slit position signal error is slit position signal SS - ideal value S ideal In contrast, the correction value S cal The ideal value S ideal - This is the slit position signal SS. Therefore, the correction value S cal This value is the slit position signal error with the sign reversed.

[0048] Error 500a in Figure 5 corresponds to slit number 18, which corresponds to the slit position signal SS. Therefore, when the measured value of the machine angle is converted to the horizontal axis, error 500a in Figure 5 is shifted to slit number 18 and becomes error 600a, which overlaps with error 610 that originally existed at slit number 18. Similarly, error 500b in Figure 5 is shifted to slit number 19 and becomes error 600b, which overlaps with the slit position signal error that originally existed at slit number 19; error 500d in Figure 5 is shifted to slit number 21 and becomes error 600d, which overlaps with the slit position signal error that originally existed at slit number 21; and error 500e in Figure 5 is shifted to slit number 22 and becomes error 600e, which overlaps with the slit position signal error that originally existed at slit number 22.

[0049] In this way, by measuring the slit position signal SS for each actual position (ideal mechanical angle) of the moving body 100 and calculating the slit position signal error for each actual position, the slit position signal error is fixed to one point for each actual position (Figure 5). However, if the slit position signal error exceeds the range of ±0.5, and the slit number indicated by the slit position signal SS is different from the slit number corresponding to the actual position of the moving body 100, then the detected position of the moving body 100 (slit number S) M + interpolation angle θ M / N M When converted to a slit position signal error for each slit, two or more actual positions can correspond to the same detected position, resulting in the possibility of two or more corresponding slit position signal errors.

[0050] Therefore, for position detection devices 10 where the slit position signal error is large and the measured slit number differs from the ideal slit number, two or more correction values ​​(values ​​with the sign of the slit position signal error reversed) will appear for the same detection position. In such cases, the question arises as to what correction value the calibration device of the position detection device 10 should calibrate so that the correction table 150 in the encoder 110 outputs.

[0051] Figure 7 shows the configuration of the calibration device 700 according to this embodiment. The calibration device 700 may be a computer such as a PC (personal computer), workstation, server computer, or general-purpose computer, or it may be a computer system in which multiple computers are connected. Such a computer system is also a computer in a broad sense. The calibration device 700 may also be implemented by a virtual computer environment that can run one or more times within the computer. Alternatively, the calibration device 700 may be a dedicated computer designed for the calibration of the encoder 110, or it may be dedicated hardware realized by a dedicated circuit. When the calibration device 700 is implemented by a computer, the calibration device 700 may function as each component shown in this figure by executing a calibration program.

[0052] The calibration device 700 is connected to the encoder 110, for example, after manufacturing the position detection device 10 but before shipping it, or during inspection or diagnosis of the position detection device 10, to calibrate the encoder 110. In this calibration, the calibration device 700 sets an appropriate correction value in the encoder 110 if two or more correction values ​​appear for the same detection position of the moving body 100. The calibration device 700 comprises 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.

[0053] 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 uses the ideal value of the slit position signal SS, which indicates the slit number of the actual position, as the actual position of the moving body 100. ideal And θ, which represents the interpolation angle of the actual position. Mideal The following are obtained from a reference encoder attached to the mobile body 100 for calibration purposes, which is used as a calibration reference. The acquisition unit 710 also obtains the slit position signal SS, which is the slit position of the detected position output by the slit position signal calculation unit 130, and the interpolation angle θ, which is the detected position detected by the detection unit 120a, as the detection position of the mobile body 100. M The values ​​are obtained from encoder 110.

[0054] Furthermore, instead of acquiring the slit position signal SS from the encoder 110, the acquisition unit 710 uses the interpolation angle θ output by the detection units 120a to 120b within the encoder 110 as the detection position of the moving body 100. M and θ N The acquisition unit 710 may also acquire the sin value representing the sin voltage and the cos value representing the cos voltage detected by each of the detection units 120a to b as the detection position of the moving body 100. In this case, the acquisition unit 710 may calculate the slit position signal SS in the same manner as the detection units 120a to b and the slit position signal calculation unit 130.

[0055] The calculation unit 714 is connected to the acquisition unit 710. The calculation unit 714 uses the slit position signal SS to determine the ideal slit number S corresponding to the actual position for each detected position of the moving body 100.ideal The error between the slit position signal SS and the calculation unit 716 is calculated. The determination unit 716 is connected to the calculation unit 714. The determination unit 716 determines whether two or more actual positions with at least partially different slit numbers, using the first slit as the unit, 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 calculate a correction value S for the slit position signal SS for each detection position of the moving body 100. cal The generation unit 720 generates a correction value S in which, depending on whether two or more actual positions with at least partially different slit numbers based on the first slit correspond to the same detection position, the magnitude of the error between each of the two or more actual positions is corrected for the slit position signal SS at that detection position. cal Generates.

[0056] The inspection unit 730 is connected to the generation unit 720. The inspection unit 730 receives the correction value S generated by the generation unit 720. cal The inspection unit 730 checks whether there is an error in the slit number calculated using the slit position signal corrected by the inspection unit 730. cal The slit position signal corrected by this method, and the slit number S corresponding to the actual position. ideal If the difference between the two values ​​falls within a predetermined reference range, it can be determined that no error has occurred in the slit number. This reference range may be, for example, ±50% of the width of one slit number, or it may be a smaller range. The inspection unit 730 generates an alert when it determines that an error has occurred in the slit number. Note that the calibration device 700 does not have the inspection unit 730, and the correction value S cal It does not need to have a testing function.

[0057] The output unit 740 outputs the correction value S for each inspection position generated by the generation unit 720. cal The output unit 740 outputs the correction value S for each inspection position. cal The following may be output to the encoder 110. For example, the output unit 740 may output a correction value S for each inspection position. calIt may be written into the correction table 150 of the encoder 110. Also, for example, the output unit 740 may store the correction value S for each inspection position cal in a storage device such as a memory or a hard disk drive, for example.

[0058] FIG. 8 shows the operation flow of the calibration device 700 according to the present embodiment. 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 converts the data format of the data in which the detection position is associated with each actual position of the moving body 100, and obtains data in which one or more actual positions are associated with each detection position of the moving body 100.

[0059] The generation unit 720 repeats the processes from S810 to S860 for each detection position of the moving body 100. In S820, the determination unit 716 determines whether or not two or more actual positions with at least partially different slit numbers in units of the first slit correspond to the same detection position. Also, in S820, the calculation unit 714 calculates the error between the ideal slit number S ideal corresponding to the actual position and the slit position signal SS for the target detection position. In response to only one actual position corresponding to the target detection position (``N'' in S830), the generation unit 720 performs, in S840, correction of the error at one actual position with respect to the slit position signal SS at the target detection position, and generates a correction value S cal As a result, for detection positions where the slit position signal error is within the range of ±0.5 and the slit position signal errors at other slit numbers at the ideal mechanical angle do not overlap, the generation unit 720 can generate a correction value S cal (for example, a correction value with the positive and negative of the slit position signal error reversed) that cancels one slit position signal error. Note that the generation unit 720 may generate a correction value S cal in the generation of the correction value S, such that the error at one actual position is completely canceled, and the correction value S cal may generate a correction value S that reduces the error at one actual position calIt may be generated. For example, when approximating correction values for each detection position of the slit position signal SS as described later using a correction function, the correction amount for each detection position approximates the error amount at one actual position for that detection position, but does not necessarily match.

[0060] The generation unit 720 performs correction of the magnitude between the errors at each of the two or more actual positions with respect to the slit position signal SS at the detection position in response to the fact that two or more actual positions with at least partially different slit numbers correspond to the target detection position (``Y'' in S830), and generates a correction value S. cal Thereby, when there are two or more errors (for example, slit position signal errors) for the same detection position, the generation unit 720 can unify these errors to generate an appropriate correction value S. cal

[0061] In S870, when the correction value S for each detection position cal is generated, the inspection unit 730 inspects whether an error occurs in the slit number calculated using the slit position signal corrected by the correction value S generated by the generation unit 720. Here, for each detection position, the inspection unit 730 inspects whether, when the slit position signal SS at that detection position is corrected by the correction value S corresponding to that detection position, the difference from the ideal slit number S cal is within the reference range at any of the one or two or more actual positions corresponding to that detection position. The inspection unit 730 outputs an alert in response to the difference between the slit number of at least one actual position and the slit number indicated by the corrected slit position signal being outside the reference range at any detection position. cal ideal

[0062] In S880, the output unit 740 outputs the correction value S for each detection position generated by the generation unit 720. Here, when an alert is output in S870, the output unit 740 may interrupt the calibration process without outputting the correction value S. cal cal

[0063] ​​​​​ Figure 9 shows the correction value S generated by the calibration device 700. cal An example is shown. In Figure 9, the horizontal axis represents the measured value of the machine angle (detection position), and the vertical axis represents the correction value S generated by the generation unit 720. cal (Slit correction value) is taken. Figure 9 shows the correction value S corresponding to the slit position signal error shown in Figures 4-6. cal This indicates that the slit number correction unit 160 within the encoder 110 corrects the slit position signal SS by a correction value S cal When adding the correction value S, cal This value is obtained by inverting the sign of the slit position signal error. However, in this figure, in order to make it easier to compare with Figures 4 to 6, the correction value S is shown without inverting the sign of the slit position signal error. cal This is shown as follows.

[0064] Focusing on the interval between 155.25 degrees and 157.50 degrees for the measured mechanical angle (detection position), in this interval, each detection position corresponds to two actual positions with different slit numbers. Therefore, at each detection position in this interval, there is an error (slit position signal error) corresponding to each of the two actual positions. In this case, the generation unit 720 corrects the error by the magnitude of the error between the errors corresponding to each of the two actual positions with a correction value S. cal This generates the following. Here, "the magnitude between the two errors" refers to the magnitude between the two errors excluding their endpoints, meaning that neither of the two errors is adopted, but rather the magnitude is the magnitude between these two errors.

[0065] For example, the generation unit 720 corrects the slit position signal SS by an average of the errors in each of the two or more real positions, depending on whether two or more real positions correspond to the same detection position, by a correction value S. cal The generation unit 720 also generates a correction value S that corrects the magnitude of the error between each of the two or more real positions. cal The correction value S is set such that the error between the corrected slit position signal and the respective slit numbers of the two or more actual positions falls within the reference range. cal You may adjust it.

[0066] Furthermore, even in ranges other than 153 to 162 degrees where the measured mechanical angle (detection position) is within a certain range, there are locations where two actual positions with different slit numbers correspond to a single detection position. In Figure 9, for the sake of explanation, the range outside of 153 to 162 degrees is omitted from the illustration.

[0067] Figure 10 shows an example of a corrected slit position signal error. In Figure 10, the horizontal axis represents the measured value of the machine angle (detection position), and the vertical axis represents the slit position signal SS and the slit number S of one or more actual positions corresponding to each detection position. ideal This shows the slit position signal error (error) between the two real positions. Here, the dashed line shows the slit position signal error before correction, and the solid line shows the slit position signal error after correction of the magnitude of the average error at each of the two or more real positions.

[0068] As shown by the solid line in this figure, the calibration device 700 corrects the magnitude of the error between each of the two or more real positions at each detection position by a correction value S. cal By generating this, it is possible to correct the slit position signal error shown in Figures 4-6 so that the error with respect to the slit number at each actual position is within ±0.5, thereby correcting the correction value S. cal It can output.

[0069] Furthermore, the generation unit 720 described above adjusts the correction value S for each detection position. cal The generation unit 720 generates a correction value for each interval of the detection position acquired by the acquisition unit 710. For example, the generation unit 720 generates a correction value S for each interval obtained by dividing one period of the first slit (for example, every 15° of the interpolation angle). cal The following may be generated: In this case, the generation unit 720 averages the correction values ​​for each detection position calculated within the interval, thereby generating the correction value S for the interval. cal You may calculate this.

[0070] Furthermore, the generation unit 720 generates a correction value S for each interval of the detection position acquired by the acquisition unit 710.cal The parameters of the correction function representing this can be calculated. For example, the generation unit 720 calculates a correction value S for each slit period of the first slit, in the range of interpolation angle 0° to 360° for that slit period. cal This may be approximated by a predetermined correction function such as a Fourier series expansion. When using a Fourier series expansion, the generation unit 720 interpolates the interpolation angle θ. M Correction value S in cal Correction value = Σ k A k ×sin(kθM+δ k Correction coefficient (parameter) A of the correction function that approximates using ) k and δ k You may calculate this.

[0071] The generation unit 720 generates a correction value S corresponding to, for example, an interpolation angle in predetermined increments. cal The above correction coefficient may be calculated by taking a representative point and performing a Fourier series expansion on the set of representative points. The output unit 740 writes the correction coefficient calculated by the generation unit 720 to the correction table 150. In actual use, the slit number correction unit 160 calculates the slit number S from the slit number calculation unit 140. M Upon receiving, slit number S M The correction coefficients stored in the correction table 150 are read out in correspondence with the correction coefficients, and the correction value S is calculated using the correction function that utilizes these correction coefficients. cal You may calculate this.

[0072] Figure 11 shows an example where a gap occurs in the correction value. As shown in Figures 5-6, when the slit position signal error for each actual position is converted to the slit position signal error for each detected position, for example, error 500a, where the actual position is slit number 20, is converted to error 600a, where the detected position is slit number 18. As a result, depending on the detected position, it may correspond to two or more actual positions, and there may be two or more slit position signal errors.

[0073] Conversely, depending on the detection position, the slit position signal error may be assigned to another slit number, potentially resulting in the absence of a corresponding actual position. In the example in Figure 11, if there are 8 periods of the first slit per rotation of the moving body 100 (N M In (8), a slit position signal error of 0.5 or greater shifts the machine angle (detection position) by +45°, and a slit position signal error of less than -0.5 shifts the machine angle by -45°. As a result, in the area enclosed by the dashed line, there is no actual position corresponding to the detection position.

[0074] Here, a detected position for which no corresponding actual position exists is a position that was not observed even when the actual position of the moving body 100 was changed within the entire range of motion during the calibration process. Therefore, it will not occur in actual use unless errors or other factors different from those during the calibration process occur. However, the position detection device 10 may detect such a position due to temporary errors or fluctuations.

[0075] Figure 12 shows an example of a method for interpolating the gap in the correction value according to this embodiment. When interpolating the gap in the correction value, the determination unit 716 may determine the correspondence between the actual position and the detected position by adding a margin to the boundary of the first slit. Here, the generation unit 720 may generate a correction value at a certain detected position using at least one actual position corresponding to a certain detected position, which includes the correspondence between the detected position and the actual position obtained by adding or subtracting a predetermined margin to the boundary of the first slit on the slit position signal. In this embodiment, the generation unit 720 obtains the slit number S from the slit position signal SS M Identified (i.e., S) M In addition to the result of =round(SS), the slit number is determined by adding or subtracting a predetermined margin ε to the slit position signal SS (i.e., S M The value of =round(SS±ε) is added, and the correction value is generated including these. Here, the margin ε is a value smaller than the margin (0.5) used to identify the slit number.

[0076] When a margin ε is subtracted from the slit position signal SS, if the slit position signal error is positive, the slit position signal error will not move to other slit numbers until it becomes +ε greater than the boundary of the slit number (e.g., +0.5). Conversely, if the slit position signal error is negative, the slit position signal error moves to other slit numbers with a boundary of ε greater than the boundary of the slit number (e.g., -0.5).

[0077] Furthermore, when a margin ε is added to the slit position signal SS, if the slit position signal error is positive, the slit position signal error moves to other slit numbers, with the boundary being a point where the slit position signal error is ε smaller than the boundary of the slit number (e.g., +0.5). In contrast, if the slit position signal error is negative, the slit position signal error does not move to other slit numbers until it becomes even smaller than the boundary of the slit number (e.g., -0.5) by another ε.

[0078] In this way, by adding or subtracting a margin ε to the slit position signal SS to identify the slit number, a slit position signal error can be assigned even to detection positions where no corresponding physical position exists, as illustrated in Figure 12. The generation unit 720 then generates correction values ​​that include these slit position signal errors, thereby filling in the gaps in the correction values ​​for each detection position.

[0079] Furthermore, even if the detection position detected during actual use of the calibration device 700 differs from the detection position detected during calibration, and as a result the slit position signal may fluctuate, the calibration device 700 can prepare a correction value generated using a slit position signal error that simulates such fluctuations in advance by adding or subtracting a margin ε to the slit position signal. This makes it possible for the position detection device 10 to use a robust correction value even when the output of the sensors in each detection unit 120 fluctuates due to changes in ambient temperature during actual use, for example.

[0080] Figure 13 shows the configuration of a position detection device 1300 according to a modified example of this embodiment. Since the position detection device 1300 is a modified example of the position detection device 10, the following explanation will be omitted except for the differences. The position detection device 1300 comprises a moving body 1301 and an encoder 1310. The moving body 1301 is the object to be measured, which is the target of position detection by the encoder 1310. Similar to the moving body 100, the number of slits per revolution of the moving body 1301 is a first number N. M The first track is the first track, and the number of slits per revolution of the moving body 1301 is the second number N. N It has a second track, which is a third number N different from the first and second numbers, around the circumference of the mobile body 1301. S It further has a third track containing a third slit for each third period divided by the third period.

[0081] The encoder 1310 calculates the detected position of the moving body 1301 based on three detected values ​​detected from the three tracks of the moving body 1301. The encoder 1310 comprises a plurality of detection units 1320a to c (also referred to as "detection unit 1320"), a plurality of slit position signal calculation units 1330a to b (also referred to as "slit position signal calculation unit 1330"), a slit number calculation unit 1340, a correction table 1350, a slit number correction unit 1360, and a position calculation unit 1370.

[0082] Each of the detection units 1320a to 1320c is provided corresponding to each of the first to third tracks, and outputs the detected value detected from the corresponding track. In this modified example, detection unit 1320a functions as the first detection unit and detects and outputs the first detected value from the first track. Detection unit 1320b functions as the second detection unit and detects and outputs the second detected value from the second track. Detection unit 1320c functions as the third detection unit and detects and outputs the third detected value from the third track. Here, the detection units 1320a to 1320c use the (electrical) interpolation angle θ, where the distance between adjacent slits in the corresponding track is one period (=360 degrees), as the detected value. M θ N , and θ SEach of these outputs. Each detection unit 1320 is otherwise the same as the detection unit 120.

[0083] Each of the slit position signal calculation units 1330a to 1330b is connected to a plurality of detection units 1320. The slit position signal calculation unit 1330a uses multiple detection values ​​from the plurality of detection units 1320 to calculate the first slit position signal S MSB The following is output. In this modified example, the first slit position signal S MSB This relates to the higher bits of the slit number of the first track. The slit position signal calculation unit 1330b uses multiple detection values ​​from multiple detection units 1320 to calculate the second slit position signal S LSB The following is output. In this modified example, the second slit position signal S LSB This relates to the lower bits of the slit number on the first track.

[0084] Ultimately, the slit number for track 1 is S M Any first number N that can calculate this. M , the second number N N , and the third number N S For the combination of the first slit position signal S MSB and the second slit position signal S LSB This can be generalized to the following equations (4) and (5).

number

number

[0085] Here, p M , p N , p S , q M , q N , and q S Ultimately, the slit number S of the first track M It is an integer value defined so that it can be calculated. For example, the first number N M =16, the second number N N = 15, and the third number NS If =12, (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 each slit position signal by weighting multiple detection values ​​from multiple detection units 1320 by a predetermined integer and taking the sum.

[0086] The slit number calculation unit 1340 is connected to multiple slit position signal calculation units 1330. The slit number calculation unit 1340 receives the slit position signals S output by the multiple slit position signal calculation units 1330. MSB and S LSB Using this, the slit number S is defined as a first slit of a predetermined size. M (i.e., the slit number of the slit where the moving body 1301 is located) is calculated. In this modified example, the slit number calculation unit 1340 calculates the slit number S M This is calculated using the following formula (6).

number

[0087] Here, k is a positive integer value representing the MSB weight. The slit number calculation unit 1340 receives the first slit position signal S MSB The value obtained by rounding to the unit of the slit number of the higher digit and multiplying by the MSB weight k is then given by the second slit position signal S LSB By adding a value rounded to the nearest slit number, the slit number for the first slit unit can be calculated. The slit number calculation unit 1340 then calculates this slit number from 0 to N. M By normalizing to a value up to -1, the slit number S M It is possible to calculate this.

[0088] Note that k is slit number S MIt can be uniquely determined depending on the values ​​of p and q so that it can be calculated. For example, (p M ,p N ,p S At )=(3,-4,1), (q M ,q N ,q S If we set )=(0,4,-5), then we can set k=5. The set of k, p, and q is (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 ) may be satisfied. Here, the smaller the absolute value of q (the magnitude of the q vector), the more robust it becomes to the slit identification error, so from this perspective, k=4 may be adopted.

[0089] The detection position of the moving body 1301 before correction of the slit number is slit number S M And the interpolation angle θ M It is expressed as a pair with the following. In this modified example, the mechanical angle θ is an example of the detection position. d This is represented by equation (1) above, similar to the encoder 110.

[0090] The correction table 1350 is connected to the detection unit 1320a and the slit number calculation unit 1340. For each slit number, the correction table 1350 calculates the first detection signal (interpolation angle θ) detected from the first track. M ) corresponds to the first slit position signal S MSB Correction value S Mcal And the second slit position signal S LSB Correction value S Lcal The set is stored. The correction table 1350 stores the slit number S received from the slit number calculation unit 1340. M Among the set of correction values ​​associated with the first detection signal, the correction value S corresponds to the first detection signal. Mcal and S Lcal Outputs.

[0091] The slit number correction unit 1360 is connected to the multiple slit position signal calculation unit 1330 and the correction table 1350. The slit number correction unit 1360 receives multiple slit position signals S from the slit position signal calculation unit 1330. MSB and S LSB The correction value S is received from correction table 150. Mcal and S Lcal The correction is performed by the slit number correction unit 160 then corrects the slit number S' based on the multiple corrected slit position signals. M The corrected slit number S' is calculated by the following formula (7) in this modified example. M Calculate.

number

[0092] Note that equation (7) is the slit position signal S in equation (6). MSB and S LSB The corrected slit position signal S MSB +S Mcal and S LSB +S Lcal These are the replacements for each.

[0093] The position calculation unit 1370 is connected to the detection unit 1320a and the slit number correction unit 1360. The position calculation unit 1370 calculates the position (corrected position) of the moving body 1301 in the same manner as the position calculation unit 170 in Figure 1. In this modified example, the position calculation unit 1370 outputs a mechanical angle θ, where one rotation of the moving body 1301 is one period, as a value indicating the position of the moving body 1301.

[0094] Figure 14 shows a modified example of this embodiment, specifically the first slit position signal S. MSB An example of an ideal value for is shown. This figure shows the first number N M =16, the second number N N = 15, and the third number N S Let = 12, (p M ,p N ,pS For the case where )=(3,-4,1), the first slit position signal S shown in equation (4) MSB This is a plot of the first slit position signal S. MSB The coefficient p M , p N , and p S Although it may vary depending on the value of , in this modified example, as shown in Figure 14, it generally corresponds to the higher digit of the slit number.

[0095] Figure 15 shows a modified example of this embodiment, the second slit position signal S LSB An example of an ideal value for is shown. This figure shows the first number N M =16, the second number N N = 15, and the third number N S Let = 12, (q M ,q N ,q S For the case where )=(3,0,-4), the second slit position signal S shown in equation (5) LSB This is a plot of the second slit position signal S. LSB is the coefficient q M , q N , and q S Although it may vary depending on the value of , in this modified example, it changes roughly in accordance with the lower digit of the slit number, as shown in Figure 15.

[0096] Figure 16 shows an example of an ideal value for the slit number according to a modified example of this embodiment. This figure shows the first slit position signal S shown in Figure 14. MSB , and the second slit position signal S shown in Figure 15 LSB Using the slit number S shown in equation (6), M This plots the first slit position signal S shown in Figure 14. MSB , and the second slit position signal S shown in Figure 15 LSB By using this, the ideal mechanical angle of the mobile body 1301 can range from 0° to 360° by 22.5° (i.e., 360° / N). M Each time the number changes by 0, the slit number changes from 0 to 15 (i.e., N MA slit number is obtained that increases by 1 up to -1).

[0097] Next, the calibration of the position detection device 1300 shown in Figures 13 to 16 will be described. In this modified example, the calibration device 700 corrects the slit position signal SS by a correction value S as shown in Figures 7 and 8. cal In the same manner as generating the first slit position signal S MSB Correction value S Mcal and the second slit position signal S LSB Correction value S Lcal Each of these may be generated. More specifically, the acquisition unit 710 acquires the detected position of the moving body 1301 for each actual position of the moving body 1301, similar to S800 in Figure 8.

[0098] Here, the acquisition unit 710 receives the first slit position signal S as a value indicating the actual position of the moving body 1301. MSB S is an ideal value that corresponds to the higher digit of the slit number at the actual position. MSBideal And the second slit position signal S LSB S is an ideal value that corresponds to the lower digit of the slit number at the actual position. LSBideal And θ, which represents the interpolation angle of the actual position. Mideal The first slit position signal S is obtained from the encoder used as the calibration reference. The acquisition unit 710 also uses the first slit position signal S as the detection position of the moving body 1301. MSB And the second slit position signal S LSB And the interpolation angle θ M The data is obtained from the encoder 1310. The generation unit 720 converts the data format of the data to which the detected position is associated with each actual position of the moving body 1301, and obtains data to which one or more actual positions are associated with each detected position of the moving body 1301.

[0099] The calculation unit 714, the determination unit 716, and the generation unit 720, as in Figure 8, generate a first slit position signal S for each detection position of the moving body 1301. MSB and the second slit position signal S LSB For each of these, the processes from S810 to S860 are repeated.

[0100] First slit position signal S MSB In relation to this, the determination unit 716, similar to S820 in Figure 8, receives the first slit position signal S MSB The unit determines whether two or more real positions, whose upper-order slit numbers are at least partially different, correspond to the same detection position. If only one real position corresponds to the target detection position ("N" in S830), the generation unit 720 generates the first slit position signal S, similar to S840. MSB In contrast, the error in one actual position at that detection location (i.e., S MSB -S MSBideal Correction value S to apply the correction for ) Mcal The generator generates a correction value S, which corrects the magnitude of the error between each of the two or more real positions at the detection position, in accordance with the fact that two or more real positions with at least partially different slit numbers correspond to the detection position (Y in S830). Mcal The second slit position signal S is generated. LSB Regarding this as well, the generation unit 720 generates a correction value S at the target detection position in the same manner as described above. Lcal Generates.

[0101] Once a correction value is generated for each detection position, the inspection unit 730, similar to S870 in Figure 8, generates the first slit position signal S MSB Regarding this, the correction value S generated by the generation unit 720 Mcal The system checks whether there is an error in the upper slit number calculated using the slit position signal corrected by the system. The inspection unit 730 also checks whether there is an error in the second slit position signal S LSB Regarding this, the correction value S generated by the generation unit 720 Lcal This checks whether there is an error in the lower slit number calculated using the slit position signal corrected by this method.

[0102] The output unit 740 outputs correction values ​​for each inspection position and for each of the first and second slit position signals generated by the generation unit 720, similar to S880 in Figure 8.

[0103] According to the calibration device 700 of this modified example, an encoder 1310 that detects the position of a mobile body 1301 using a mobile body 1301 having three tracks can generate a correction value that appropriately corrects the track number. Similarly, the calibration device 700 can also output a correction value that corrects each of the one or more slit position signals calculated by the weighted sum of multiple detection values ​​detected from multiple tracks for an encoder that detects the position of a mobile body having four or more tracks.

[0104] Various embodiments of the present invention may be described with reference to flowcharts and block diagrams, where a block may represent (1) a stage in a process in which an operation is performed or (2) a section of a device having the role of performing the operation. Specific stages and sections may be implemented by dedicated circuits, programmable circuits supplied with computer-readable instructions stored on a computer-readable medium, and / or processors supplied with computer-readable instructions stored on a computer-readable medium. Dedicated circuits may include digital and / or analog hardware circuits, and may include integrated circuits (ICs) and / or discrete circuits. Programmable circuits may include reconfigurable hardware circuits, including logical AND, logical OR, logical XOR, logical NAND, logical NOR, and other logic operations, flip-flops, registers, memory elements such as field-programmable gate arrays (FPGAs), programmable logic arrays (PLAs), etc.

[0105] Computer-readable media may include any tangible device capable of storing instructions to be executed by a suitable device, and as a result, computer-readable media having instructions stored therein will comprise a product containing instructions that can be executed to create means for performing operations specified in a flowchart or block diagram. Examples of computer-readable media may include electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, etc. More specific examples of computer-readable media may include floppy disks, 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), compact disk read-only memory (CD-ROM), digital multipurpose disc (DVD), Blu-ray® disc, memory stick, integrated circuit card, etc.

[0106] Computer-readable instructions may include assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java®, C++, Smalltalk®, and traditional procedural programming languages ​​such as the C programming language or similar programming languages.

[0107] Computer-readable instructions may 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 circuit of a programmable data processing device such as a general-purpose computer, a special-purpose computer, or another computer, and the computer-readable instructions may be executed to create means for performing operations specified in a flowchart or block diagram. Examples of processors include computer processors, processing units, microprocessors, digital signal processors, controllers, microcontrollers, etc.

[0108] Figure 17 shows an example of a computer 2200 in which multiple aspects of the present invention may be embodied in whole or in part. A program installed on the computer 2200 can cause the computer 2200 to function as an operation or one or more sections of an apparatus according to an embodiment of the present invention, or to execute such operation or one or more sections, and / or to cause the computer 2200 to execute a process or a stage of such process according to an embodiment of the present invention. Such a program may be executed by the CPU 2212 to cause the computer 2200 to perform a particular operation associated with some or all of the blocks in the flowcharts and block diagrams described herein.

[0109] The computer 2200 according to this embodiment includes a CPU 2212, RAM 2214, a graphics controller 2216, and a display device 2218, which are interconnected by a host controller 2210. The computer 2200 also includes input / output units such as a communication interface 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 2220. The computer also includes legacy 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 2240.

[0110] The CPU 2212 operates according to programs stored in the ROM 2230 and RAM 2214, thereby controlling each unit. The graphics controller 2216 retrieves image data generated by the CPU 2212 from a frame buffer provided in RAM 2214 or from itself, and displays the image data on the display device 2218.

[0111] The communication interface 2222 communicates with other electronic devices via a network. The hard disk drive 2224 stores programs and data used by the CPU 2212 in the computer 2200. The DVD-ROM drive 2226 reads programs or data from the DVD-ROM 2201 and provides them to the hard disk drive 2224 via the RAM 2214. The IC card drive reads programs and data from the IC card and / or writes programs and data to the IC card.

[0112] The ROM 2230 stores boot programs and / or programs that depend on the computer 2200's hardware, which are executed by the computer 2200 when activated. The input / output chip 2240 may also connect various input / output units to the input / output controller 2220 via parallel ports, serial ports, keyboard ports, mouse ports, etc.

[0113] The program is provided on a computer-readable medium such as a DVD-ROM 2201 or an IC card. The program is read from the computer-readable medium and installed on a hard disk drive 2224, RAM 2214, or ROM 2230, which are also examples of computer-readable medium, and executed by the CPU 2212. The information processing described within these programs is read by the computer 2200, resulting in coordination between the program and the various types of hardware resources described above. The apparatus or method may be configured to realize the manipulation or processing of information in accordance with the use of the computer 2200.

[0114] For example, when communication is performed between a computer 2200 and an external device, the CPU 2212 may execute a communication program loaded into RAM 2214 and, based on the processing described in the communication program, instruct the communication interface 2222 to perform communication processing. Under the control of the CPU 2212, the communication interface 2222 reads transmission data stored in a transmission buffer processing area provided in a recording medium such as RAM 2214, a hard disk drive 2224, a DVD-ROM 2201, or an IC card, transmits the read transmission data to the network, or writes received data received from the network to a reception buffer processing area provided on the recording medium.

[0115] Furthermore, the CPU 2212 may read all or necessary parts of files or databases stored on external storage media such as the hard disk drive 2224, DVD-ROM drive 2226 (DVD-ROM 2201), or IC card into the RAM 2214, and perform various types of processing on the data in the RAM 2214. The CPU 2212 then writes the processed data back to the external storage media.

[0116] Various types of information, such as various types of programs, data, tables, and databases, may be stored on the recording medium and subjected to information processing. The CPU 2212 may perform various types of processing on the data read from RAM 2214, including various types of operations, information processing, conditional judgments, conditional branching, unconditional branching, information retrieval / replacement, etc., as described throughout this disclosure and specified by the program instruction sequence, and write the results back to RAM 2214. The CPU 2212 may also retrieve information in files, databases, etc., within the recording medium. For example, if multiple entries are stored in the recording medium, each having an attribute value of a first attribute associated with an attribute value of a second attribute, the CPU 2212 may search among the multiple entries for an entry that matches the condition for which the attribute value of the first attribute is specified, 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 that satisfies a predetermined condition.

[0117] The programs or software modules described above may be stored on or near computer 2200 on a computer-readable medium. Alternatively, recording media such as hard disks or RAM provided within a server system connected to a dedicated communication network or the Internet can be used as computer-readable media, thereby providing programs to computer 2200 via the network.

[0118] Although the present invention has been described above using embodiments, the technical scope of the present invention is not limited to the scope described in the above embodiments. It will be apparent to those skilled in the art that various modifications or improvements can be made to the above embodiments. It will be clear from the claims that such modified or improved forms may also be included in the technical scope of the present invention.

[0119] It should be noted that the execution order of operations, procedures, steps, and stages in the apparatus, systems, programs, and methods shown in the claims, specifications, and drawings is not explicitly stated as "before," "prior to," etc., and that these can be implemented in any order unless the output of a previous process is used in a later process. Even if the operation flow in the claims, specifications, and drawings is described using phrases such as "first," "next," etc. for convenience, it does not mean that it is essential to perform the operations in that order. [Explanation of Symbols]

[0120] 10 Position detection device 100 Mobile Units 105a~b Truck 110 encoders 120a~b Detection section 130 Slit position signal calculation unit 140 Slit number calculation unit 150 Correction Tables 160 Slit number correction unit 170 Position calculation section 500a~e Error 600a~e Error 610 Error 700 Calibration device 710 Acquisition Department 714 Calculation Unit 716 Judgment section 720 Generation part 730 Inspection Department 740 Output section 1300 Position detection device 1301 Mobile Unit 1310 Encoder 1320a~b Detection section 1330 Slit position signal calculation unit 1340 Slit number calculation unit 1350 Correction Table 1360 Slit number correction unit 1370 Position calculation part 2200 Computers 2201 DVD-ROM 2210 Host Controller 2212 CPU 2214 RAM 2216 Graphics Controller 2218 Display Devices 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 first detection unit that detects a first detection value from a first track having a predetermined first slit at each first period, provided on a moving body, A second detection unit for detecting a second detection value from a second track having a second slit at a second cycle interval different from the first cycle, provided on the moving body, A third detection unit for detecting a third detection value from a third track provided on the moving body, which has third slits for each third period different from the first and second periods, A first slit position signal calculation unit calculates the first slit position signal using the first detected value, the second detected value, and the third detected value, and a first vector for calculating the first slit position signal. A second slit position signal calculation unit calculates the second slit position signal using the first detected value, the second detected value, and the third detected value, and a second vector for calculating the second slit position signal. A slit number calculation unit calculates the slit number of the first track using the first slit position signal and the second slit position signal, A position calculation unit that calculates the position of the moving object based on the first detected value and the slit number of the first track. A position detection device equipped with the following features.

2. The position detection device according to claim 1, wherein the first slit position signal calculation unit is configured to calculate the first slit position signal according to the following formula (4). [Math 4] Here, S MSB The first slit position signal, (p M , p N , p S ) is the first vector, θ M θ N , and θ S These represent the interpolation angle for the first period, the interpolation angle for the second period, and the interpolation angle for the third period.

3. The position detection device according to claim 2, wherein the second slit position signal calculation unit is configured to calculate the second slit position signal according to the following formula (5). [Math 5] Here, S LSB The second slit position signal, (q M , q N , q S ) is the second vector, θ M θ N , and θ S These represent the interpolation angle for the first period, the interpolation angle for the second period, and the interpolation angle for the third period.

4. The position detection device according to claim 1, wherein the second slit position signal calculation unit is configured to calculate the second slit position signal according to the following formula (5). [Math 5] Here, S LSB The second slit position signal, (q M , q N , q S ) is the previous two vectors, θ M θ N , and θ S These represent the interpolation angle for the first period, the interpolation angle for the second period, and the interpolation angle for the third period.

5. The position detection device according to any one of claims 1 to 4, wherein the slit number calculation unit calculates the slit number of the first track according to the following formula (6). 【Number 6】 Here, k is a positive integer value representing the weight of the MSB. S M The slit number of the first track, S MSB The first slit position signal, S LSB The second slit position signal, N M This represents the number of slits in the first track.

6. The computer detects a first detection value from a first track provided on a moving object, which has a predetermined first slit at each first period, The computer detects a second detection value from a second track provided on the moving body, which has a second slit with a second period different from the first period. The computer detects a third detection value from a third track provided on the moving body, which has a third slit for each third period different from the first and second periods. The computer calculates the first slit position signal using the first detected value, the second detected value, and the third detected value, and a first vector for calculating the first slit position signal. The computer calculates the second slit position signal using the first detected value, the second detected value, and the third detected value, and a second vector for calculating the second slit position signal. The computer calculates the slit number of the first track using the first slit position signal and the second slit position signal, The computer calculates the position of the moving object based on the first detected value and the slit number of the first track. A position detection method comprising the following features.

7. It is executed by a computer, and the computer, A first detection unit that detects a first detection value from a first track having a predetermined first slit at each first period, provided on a moving body, A second detection unit for detecting a second detection value from a second track having a second slit at a second cycle interval different from the first cycle, provided on the moving body, A third detection unit for detecting a third detection value from a third track provided on the moving body, which has third slits for each third period different from the first and second periods, A first slit position signal calculation unit calculates the first slit position signal using the first detected value, the second detected value, and the third detected value, and a first vector for calculating the first slit position signal. A second slit position signal calculation unit calculates the second slit position signal using the first detected value, the second detected value, and the third detected value, and a second vector for calculating the second slit position signal. A slit number calculation unit calculates the slit number of the first track using the first slit position signal and the second slit position signal, A position calculation unit that calculates the position of the moving object based on the first detected value and the slit number of the first track. A position detection program that enables this function.