Motor controller, motor control method, and computer program

The motor control device uses an encoder and control unit to adjust lead angle and power rate, addressing overshooting and undershooting issues, enabling precise and efficient motor operation.

JP2025173633APending Publication Date: 2025-11-28CANON KK
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024079254
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-05-15
Publication Date
2025-11-28

AI Technical Summary

Technical Problem

Existing motor control methods struggle to accurately trace a changing target position, leading to overshooting or undershooting, which results in imprecise stopping and unnecessary settling operations, especially in applications like variable magnification lenses, causing noise and unnatural changes in the angle of view.

Method used

A motor control device that utilizes an encoder to generate position detection counter values, a target position setting unit to set target counter values, and a control unit to calculate an offset value, adjusting the motor's lead angle and power rate to achieve precise position control, minimizing overshoot and undershoot.

Benefits of technology

The solution enables high-speed operation with reduced vibrations and noise, ensuring accurate positioning of motor-driven components.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025173633000001_ABST
    Figure 2025173633000001_ABST
Patent Text Reader

Abstract

To provide a motor controller that can have higher speed and less vibration.SOLUTION: A motor controller comprises: an encoder for generating a position detection counter value showing the positional information of a member connected to a motor; target position setting means for generating a target position counter value showing a moving target of the member connected to the motor; and control means for calculating an offset value on the basis of the position detection counter value and the target position counter value, generating an offset position counter value that is the position detection counter value added by the offset value, and controlling the motor on the basis of the offset position counter value and the target position counter value.SELECTED DRAWING: Figure 8
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a motor control device, a motor control method, a computer program, and the like. [Background technology]

[0002] One proposal is to provide a motor with a sensor that detects the rotational phase, and use the rotational phase of the motor obtained from the sensor to control the advance angle of the drive waveform relative to the rotational phase, thereby driving the motor efficiently.This method controls the advance angle to an optimal value, making it possible to reduce wasted torque and drive the motor efficiently, resulting in higher speeds and lower vibrations.

[0003] Furthermore, Patent Document 1 proposes a method of switching between a method of controlling a target lead angle and a method of controlling voltage with a fixed lead angle depending on the deviation between the target position and the actual position.Patent Document 2 proposes a technology that generates a lead angle signal corresponding to the deviation between the target speed and the current speed when the output duty of the PWM for applying voltage to the motor reaches its upper limit. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2014-039427 [Patent Document 2] Japanese Patent Application Laid-Open No. 2008-312298 Summary of the Invention [Problem to be solved by the invention]

[0005] Motor control includes speed control, which aims to stably move a moving member connected to a motor at a target speed, fixed position control, which aims to quickly move a moving member connected to a motor to a target position, and follow-up position control, which moves a moving member by following a target position moving at an arbitrary speed.

[0006] However, when performing position control to make a moving member follow a target position that changes from moment to moment, the target position may not be traced accurately due to overshooting or undershooting that occurs as the motor accelerates or decelerates.

[0007] If this happens, the motor will not be able to stop at the target position with precision, and an unnecessary settling operation will be required. In particular, if the above technology is applied to the position control of a variable magnification lens in an imaging device, an operation to return the variable magnification lens that has gone too far from the target position due to overshoot will be required, resulting in an unnatural change in the angle of view. Furthermore, overshoot may generate noise when the motor stops.

[0008] In view of these problems, one of the objects of the present invention is to provide a motor control device that is capable of achieving high speed and low vibration. [Means for solving the problem]

[0009] In the motor control device, an encoder that generates a position detection counter value that indicates position information of a member connected to the motor; a target position setting means for generating a target position counter value that is a movement target of the member connected to the motor; a control means for calculating an offset value based on the position detection counter value and the target position counter value, generating an offset position counter value by adding the offset value to the position detection counter value, and controlling the motor based on the offset position counter value and the target position counter value; The present invention is characterized by having the following. [Effects of the Invention]

[0010] According to the present invention, a motor control device that can achieve high speed and low vibration is realized. [Brief explanation of the drawings]

[0011] [Figure 1]1A and 1B are diagrams respectively showing an example of the schematic configuration of an imaging lens according to a first embodiment of the present invention and the trajectory of a focus lens. [Figure 2] 1A and 1B are diagrams showing an example of a schematic configuration of a motor unit according to a first embodiment of the present invention. [Figure 3] 1 is a functional block diagram showing an example of the configuration of a lens control system according to a first embodiment of the present invention. [Figure 4] 10A to 10E are diagrams illustrating an example of processing by the encoder 305 in the first embodiment. [Figure 5] 5 is a diagram showing an example of the relationship between the lead angle and the motor rotation speed in the first embodiment. FIG. [Figure 6] 10A to 10C and 10E to 10I are diagrams showing the processing flow of the lead angle control unit 308 and the drive waveform generation unit 309 in the first embodiment. [Figure 7A] 10A and 10B are diagrams illustrating a state in which a drive counter value deviates from a target position counter value. [Figure 7B] 10 is a diagram showing a state in which a deviation occurs between the target speed (the gradient of the target position counter value 7-b-1) and the actual speed (the gradient of the position detection counter value 7-b-2). FIG. [Figure 7C] 5A to 5C are diagrams illustrating position control by correcting a power rate according to the first embodiment. [Figure 8] FIG. 3 is a functional block diagram showing an example of the configuration of an advance angle control unit 308 according to the first embodiment. [Figure 9] 10 is a flowchart showing an example of processing by an advance angle control unit 308 according to the first embodiment. [Figure 10] 5 is a diagram illustrating an example of processing by an advance angle control unit 308 according to the first embodiment. FIG. [Figure 11] 10 is a flowchart showing an example of processing performed by a power rate calculation unit 802 according to the first embodiment. [Figure 12] 10 is a flowchart showing an example of processing performed by a power rate calculation unit 802 according to the second embodiment. [Figure 13] FIG. 10 is a diagram illustrating the selection of a set power rate performed in step S1204. DETAILED DESCRIPTION OF THE INVENTION

[0012] Hereinafter, embodiments of the present invention will be described with reference to the drawings. However, the present invention is not limited to the following embodiments. In each drawing, the same members or elements are designated by the same reference numerals, and duplicate descriptions will be omitted or simplified.

[0013] <Embodiment 1> 1A and 1B are diagrams respectively showing an example of the schematic configuration of an imaging lens and the trajectory of a focus lens in embodiment 1 of the present invention. The imaging lens is made up of a fixed lens 101, a first zoom lens 102, a focus lens 103, a second zoom lens 104, and an aperture 105, and the multiple lenses are linked together in a predetermined positional relationship to change magnification.

[0014] The first zoom lens 102 moves in the optical axis direction (direction along O-O') to perform zooming. The focus lens 103 has both a function of correcting the movement of the focal plane that accompanies zooming and a function of focusing, and moves in the optical axis direction following a predetermined trajectory in conjunction with the movement of the first zoom lens 102, for example, as shown in FIG. 1(B).

[0015] In this way, the imaging lens has at least one zoom lens and a focus lens, and the target position counter value of the at least one zoom lens is generated so that the zoom lens moves at a target speed, and the target position counter value of the focus lens is generated so that the focus lens moves along a predetermined trajectory in conjunction with the movement of the zoom lens.

[0016] 2A and 2B are diagrams showing an example of the schematic configuration of a motor unit in the first embodiment of the present invention. Note that this motor unit is provided for each lens and operates independently. In other words, multiple motors are configured to drive each of the lenses that make up the imaging lens.

[0017] 2A, reference numeral 201 denotes a stepping motor, 202 denotes a rotating shaft of the stepping motor 201, and 203 denotes a rack. The rotating shaft 202 is a lead screw, and while meshing with the rack 203, a lens 204 connected to the rack 203 moves in the direction of the optical axis in response to the rotation of the rotating shaft 202.

[0018] The reference position of the lens is determined by the configuration of a PI (photo interrupter) 205 arranged on a fixed member (not shown) and a light shielding plate 206 provided on the lens. The PI 205 is composed of a light emitting section and a light receiving section, and when the light shielding plate 206 enters between the light emitting section and the light receiving section as the lens 204 moves, the detection signal of the PI 205 switches from High to Low.

[0019] This switching position is set as the reference position of the lens. 207 is a cylindrical rotational phase detection magnet attached to the rotating shaft 202, which detects the rotational phase of the stepping motor 201 in combination with rotational phase detection hall sensors 208 and 209. In the following, rotational phase detection hall sensor 208 will be referred to as Hall-Ch0, and 209 will be referred to as Hall-Ch1.

[0020] 2(B) is a diagram illustrating the arrangement of the rotation phase detection magnet 207 and the rotation phase detection hall sensors 208 and 209 when the stepping motor 201 has 10 poles. The rotation phase detection magnet 207 is configured with a 10-pole magnet to match the number of poles of the motor.

[0021] The poles are evenly spaced over a mechanical angle of 36°. Rotation phase detection Hall sensors 208 and 209 are placed on an extension of the 18° mechanical angle of rotation phase detection magnet 207. With this configuration, each Hall sensor detects two types of sine waves with a phase difference of 90° according to the rotation of the motor.

[0022] Next, Fig. 3 is a functional block diagram showing an example configuration of a lens control system according to the first embodiment of the present invention. This system is set up for each lens, and processes each lens independently. Some of the functional blocks shown in Fig. 3 are realized by causing a CPU or other device serving as a computer (not shown) included in the lens control system to execute a computer program stored in a memory (not shown) serving as a storage medium.

[0023] However, some or all of these functions may be implemented by hardware, which may be a dedicated circuit (ASIC) or a processor (reconfigurable processor, DSP).

[0024] 3 may not be contained in the same housing, but may be configured as separate devices connected to each other via signal paths. The above explanation regarding FIG. 3 also applies to FIG. 8.

[0025] In Fig. 3, blocks with the same numbers as in Fig. 2 are the same members. The two-phase Hall signals detected by Hall-Ch0 and Hall-Ch1 are amplified by amplifier circuits 301 and 302, respectively. The amplified two-phase Hall signals are quantized by an AD converter 304 in a motor control device 303, and encoded by an encoder 305 to calculate a position detection counter value.

[0026] That is, the encoder 305 generates a position detection counter value that indicates position information of the lens 204 as a member connected to the motor.

[0027] A target position setting unit 306 sets a target position for the lens, and generates a target position counter value for controlling each lens at a target speed and target position. That is, the target position setting unit 306 of the lens control system connected to the first zoom lens 102 generates a target position counter value so as to achieve a target zoom speed. Here, the target position setting unit 306 functions as a target position setting means that generates a target position counter value that becomes a movement target for a driven member connected to a motor.

[0028] 1B, a target position setting unit 306 of the lens control system connected to the focus lens 103 generates a target position counter value so that the first zoom lens 102 moves along a predetermined locus in conjunction with the movement of the first zoom lens 102. Similarly, a target position counter value is generated for the second zoom lens 104 in conjunction with the movement of the first zoom lens 102 in conjunction with the movement of the first zoom lens 102 in conjunction with the movement of the second zoom lens 104 ...

[0029] The target position counter value and the position detection counter value have the same coordinate origin set and coordinates aligned by a coordinate origin setting unit 307. Reference numeral 308 denotes a lead angle control unit, which controls the lead angle and power rate to drive the motor in accordance with the target position.

[0030] Reference numeral 309 denotes a drive waveform generation unit, which generates a drive counter value by adding a target advance angle as an offset value to the position detection counter value, performs SIN / COS conversion on the generated drive counter value, and further generates a two-phase drive waveform whose amplitude is adjusted according to the power rate.

[0031] Here, lead angle control unit 308 and drive waveform generation unit 309 function as control means that controls the rotation speed and rotation position of the motor based on the target lead angle. The control means also controls at least one of the target lead angle and drive voltage (power rate) set for the motor.

[0032] However, open control is performed because feedback control is not possible until the coordinate origin is set by coordinate origin setting unit 307. That is, lead angle control unit 308 sets the target position counter value obtained from target position setting unit 306 as the drive counter value, and also sets a power rate for open control to open control the drive waveform.

[0033] The drive waveform generated by the drive waveform generation unit 309 is supplied to the motor driver 310 as, for example, a PWM signal, and is converted by the motor driver 310 into a motor drive signal that is supplied to the stepping motor 201. The drive waveform may be supplied to the motor driver 310 after undergoing AD conversion processing, or may be supplied as drive waveform information from a communication port.

[0034] The processing of the encoder 305 will now be described in detail with reference to Fig. 4. Figs. 4(A) to 4(E) are diagrams showing an example of processing by the encoder 305 in embodiment 1. Note that, in accordance with the configuration of Fig. 2(B), an example will be described in which the stepping motor 201 has 10 poles and the rotation phase detection magnet 207 is also a cylindrical magnet with 10 poles.

[0035] 4(A) shows the magnet 207 for detecting the rotational phase of the motor, and (B) and (C) show the waveforms of the Hall signals detected by Hall-Ch0 and Hall-Ch1, respectively. The configuration shown in FIG. 2(B) provides the Hall signals as sine waves (Sin waves) and cosine waves (Cos waves) that are 90° out of phase with each other.

[0036] The encoder 305 performs an arctangent operation (tan ) using (B) and (C), which are the sine wave and cosine wave signals quantized by the AD converter 304. -1 (Sin / Cos)) to calculate phase information from 0 to 360°.

[0037] (D) shows the calculated phase information, which is integrated to calculate the position detection counter value (E) indicating the amount of motor rotation. This rotation amount information can be converted into lens position information by multiplying it by the lead screw pitch.

[0038] Therefore, the rotation amount information of the motor calculated by the encoder 305 is treated as the position detection counter value of the lens. That is, the encoder 305 functions as encoding means for detecting the rotation state of the motor and executing an encoding step for converting it into actual position information. Here, although the phase information has been described as information from 0 to 360°, this is determined by the resolution of the position detection counter value and is not limited to this.

[0039] Next, the processing of the coordinate origin setting unit 307 will be described in detail. When the motor control device 303 is powered on, it first executes a sequence for setting the coordinate origin of the lens.

[0040] That is, the lens is driven to search for the lens position where the detection signal of the PI205 described in FIG. 2 switches from High to Low. With this searched switching position as the coordinate origin, the position detection counter value and the target position counter value are initialized to predetermined values. As a result, the coordinates of both are aligned, and it becomes possible to control the lens position.

[0041] FIG. 5 is a diagram showing an example of the relationship between the advance angle and the motor rotation speed in Embodiment 1. In FIG. 5, examples of the power rates PR1% and PR2% (PR1 < PR2) are shown for the relationship between the advance angle and the motor rotation speed. Here, PR1% is, for example, 50%, and PR2% is, for example, 60%. The power rate adjusts the amplitude of the drive waveform. For example, a power rate of 60% generates a waveform that suppresses the amplitude of the drive waveform to 60%.

[0042] In FIG. 5, it can be seen that in region R1, as the advance angle increases, the motor rotation speed increases proportionally. However, when the advance angle is further increased, it eventually reaches region R2 where the increase in the motor rotation speed with respect to the advance angle gradually saturates. When the advance angle is further increased beyond the saturation point SP1, it enters region R3 where the motor rotation speed decreases.

[0043] Also, the larger the power rate, the steeper the slope of the advance angle vs. motor rotation speed in region R1 becomes, and the saturation point SP1 shifts toward the larger advance angle. The relationship between the advance angle and the speed is proportional within the range of region R1. That is, the relationship between the advance angle and the speed can be expressed by the following formula (1).

[0044] Speed = Advance angle × γ + β ··· Formula (1) However, γ is the slope and β is the intercept.

[0045] Therefore, the relationship between the advance angle and the rotation speed is measured in advance, and based on the measurement data, the slope γ, the intercept β of formula (1), and the region R1 which is the effective region of formula (1) corresponding to region R1 are stored as an advance angle vs. speed table.

[0046] In addition, a plurality of advance angle vs. speed tables are stored for each power rate so that they can be selected according to the target speed. Also, the smaller power rate is preferentially selected. Here, the relationship between the advance angle and the speed is explained by formula (1), but the correspondence information between the rotation speed of the motor and the advance angle may be table data in which the relationship between the advance angle and the speed is stored in advance.

[0047] In addition, the higher the power rate, the higher the rotation speed of the motor. For example, consider fixing an advance angle θ and rotating the motor at power rates PR1% and PR2%. In this case, if the corresponding motor rotation speeds are V1 and V2 respectively, then V1 < V2 holds. That is, the rotation speed of the motor can be changed by controlling the magnitude of the power rate.

[0048] In the advance angle control according to Embodiment 1, in order to change the rotation speed of the motor, there are a process P1 of changing the advance angle and changing the motor rotation speed based on formula (1), a process P2 of changing the power rate and changing the motor rotation speed, and a process P3 of using both process P1 and process P2.

[0049] 6(A) to (C) and (E) to (I) are diagrams showing the processing flow of the lead angle control unit 308 and the drive waveform generation unit 309 in embodiment 1. Note that since signals in FIGS. 6(A), (B), (C), and (E) are the same as those described with the same reference numerals in FIG. 4, their description will be omitted here. (F) indicates the target position counter value. As described above, the target lead angle and power rate are calculated so that the position detection counter value (E) follows the target position counter value (F).

[0050] In the following description, an example is given in which the target advance angle is 90°. The advance angle control unit 308 generates a drive counter value (G) by superimposing the target advance angle of 90° on the position detection counter value (E).

[0051] The position detection counter value (E) is a counter value obtained by integrating phase information from 0 to 360°, and the drive counter value (G) similarly has phase information from 0 to 360°. Therefore, the drive waveform generation unit 309 performs SIN and COS conversion on this drive counter value (G) to generate a two-phase A-phase drive waveform (sine wave) (H) and a B-phase drive waveform (cosine wave) (I) that are phase-shifted by the advance angle relative to the motor rotation phase.

[0052] The drive waveform generation unit 309 generates an offset position counter value by adding a target lead angle as an offset value to the position detection counter value, and controls the motor based on the offset position counter value and the target position counter value. Note that the offset position counter value is determined based on the position detection counter value and the target lead angle, and the target lead angle is set based on the target position counter value and the position detection counter value.

[0053] Furthermore, the power rate of these drive waveforms is set so as to achieve the target amplitude, and the waveforms are output to the motor driver 310. Here, the phase information has been described as information of 0 to 360°, but this is determined by the resolution of the position detection counter value (E), and is not limited to this.

[0054] Next, a process according to the first embodiment for making the drive counter value, which is obtained by advancing the position detection counter value by the target advance angle θt, follow the target position counter value will be described with reference to FIGS. 7A to 7C.

[0055] In the first embodiment, the lead angle control controls the speed and position by adjusting the lead angle and power rate. The drive counter value is set to a counter value obtained by advancing the lead angle of the position detection counter value by θt. Here, we consider the case where the target lead angle is set to a constant θt. Here, the target lead angle θt functions as an offset value calculated based on the position detection counter value and the target position counter value.

[0056] 7A is a diagram showing a state in which the drive counter value is deviated from the target position counter value. In FIG. 7A, 7-a-1 indicates the target position counter value, 7-a-2 indicates the position detection counter value, and 7-a-3 indicates the drive counter value obtained by advancing the position detection counter value 7-a-2 by θt.

[0057] In section 1 of Fig. 7A, a speed deviation occurs due to disturbance, load fluctuation, etc., resulting in a deviation between the target position counter value 7-a-1 and the drive counter value 7-a-3. In section 2, the speed deviation is eliminated, but the deviation between the target position counter value 7-a-2 and the drive counter value 7-a-3 remains.

[0058] In this way, for example, simply adjusting the speed using advance angle control may not be enough to achieve position control that tracks the target position counter value. Therefore, in the first embodiment, position control is performed so that the drive counter value 7-a-3 tracks the target position counter value 7-a-2.

[0059] 7B is a diagram showing a state in which a deviation occurs between the target speed (slope of the target position counter value 7-b-1) and the actual speed (slope of the position detection counter value 7-b-2). As a preliminary process of position control, if a deviation occurs between the target speed (slope of the target position counter value 7-b-1) and the actual speed (slope of the position detection counter value 7-b-2) as shown in FIG. 7B, the slope of the position detection counter value 7-b-2 is adjusted as shown in 7-b-3.

[0060] That is, in process P1, by adjusting the slope 7-b-3, for example by adjusting the lead angle, so that the actual speed matches the target speed, the speed deviation between the adjusted position detection counter value and the target speed (the slope of the target position counter value 7-b-1) is eliminated, as shown in 7-b-4.

[0061] 7C is a diagram illustrating position control by correcting the power rate according to the first embodiment. The positional deviation between the target position counter value 7-c-1 and the drive counter value 7-c-3 is corrected. That is, in process P2, the advance angle is further corrected so that the drive counter value matches the target position counter value, thereby realizing the correction 7-c-5, and the positional deviation of the corrected drive counter value is eliminated as shown in 7-c-4.

[0062] In this manner, in this embodiment, the speed deviation and position deviation can be eliminated by using the advance angle control and power rate control.

[0063] 8 is a functional block diagram showing an example of the configuration of lead angle control unit 308 according to embodiment 1, and blocks having the same reference numerals as in FIG. 3 have the same configuration as in FIG. 3 and will not be described. The target position counter value output from target position setting unit 306 is sent to lead angle calculation unit 801.

[0064] The lead angle calculation unit 801 calculates the lead angle required for driving based on the target position counter value, the position detection counter value from the encoder 305, and the above-mentioned equation (1), and the calculated lead angle is sent to the drive waveform generation unit 309 and the power rate calculation unit 802.

[0065] The target position counter value output from the target position setting unit 306 is sent to the power rate calculation unit 802, which calculates a power rate based on the lead angle calculated by the lead angle calculation unit 801, the target position counter value, and the position detection counter value.

[0066] The lead angle output from the lead angle calculation unit 801 and the power rate output from the power rate calculation unit 802 are sent to the drive waveform generation unit 309, which generates the drive waveform required to drive the motor and sends it to the motor driver 310, which rotates the stepping motor 201.

[0067] Fig. 9 is a flowchart showing an example of processing by the lead angle control unit 308 according to embodiment 1. Note that the operation of each step in the flowchart in Fig. 9 is performed sequentially by a CPU or the like serving as a computer of the motor control device 303 executing a computer program stored in a memory.

[0068] In step S900, the lead angle control unit 308 determines whether the initialization drive is complete. If the determination in step S900 is No, the process proceeds to step S901, where open control is selected. If open control is selected, the target position counter value is set as the drive counter value in step S902, and the motor is driven.

[0069] In step S903, it is determined whether or not the coordinate origin setting has been completed by the coordinate origin setting unit 307. If the determination in step S903 is No, the process returns to step S902. That is, in open control, the PI 205 detects the reference position, and the coordinate origin setting unit 307 continues initialization driving until the same coordinate origin is set for the position detection counter value and the target position counter value.

[0070] When notification that the coordinate origin setting has been completed is received from the coordinate origin setting unit 307, a "Yes" determination is made in step S903, and the process proceeds to step S904. In step S904, a flag or the like is set to indicate that the initialization drive has been completed, and in step S905, advance angle control by feedback control is selected. Thereafter, the process returns to step S900.

[0071] On the other hand, if it is determined in step S900 that the initialization drive has been completed, the result is Yes, and the process proceeds to step S906. In step S906, a target position difference Vc between the target position Pt and the previous target position Ptp is calculated.

[0072] Next, in step S907, the magnitude relationship between Vc and the previous target position difference Vp is compared, and if Vc is equal to or greater than Vp, the process proceeds to step S908. Note that step S907 determines whether or not the speed is tending to increase.

[0073] In step S908, a predetermined reference advance angle θb is written as the target advance angle θt. That is, the target advance angle θt as an offset value is set to θb, which is the predetermined offset value, when the motor speed increases by a predetermined threshold value or more.

[0074] Note that the reference advance angle θb is assigned to an advance angle that provides a relatively high torque for the same power rate. In the example shown in Figure 5, for example, in the case of power rate PR2, the torque in region R2 where the rotation speed is high is higher than in regions R1 and R3, so it is desirable to select the reference advance angle θb from region R2.

[0075] On the other hand, if it is determined in step S907 that Vc is smaller than the previous target position difference Vp, the process proceeds to step S910, where the difference between the target position Pt and the current position Pc is calculated and written as the target advance angle θt.

[0076] As a result, the current position Pc plus the target advance angle θt coincides with the target position Pt. In this embodiment, the target advance angle θt as an offset value is set according to the difference between the position detection counter value and the target position counter value.

[0077] 10 is a diagram for explaining an example of processing by the advance angle control unit 308 according to the first embodiment, and shows the positional relationships in the processing in step S910. Reference numeral 1001 denotes the current position Pc, and reference numeral 1002 denotes the target position Pt, which changes from moment to moment.

[0078] Also, the position obtained by adding the target advance angle θt to the current position Pc (=Pc+θt) is represented by 1003. The target advance angle θt is represented by 1004a, and the process of generating the target advance angle θt represented by 1004b and 1004c is repeated for each process. When the target position is reached, the drive is stopped and the motor is returned to the actual position for position control.

[0079] In the following step S911, it is determined whether the target advance angle θt set in step S910 is greater than the reference advance angle θb, and if it is determined that the target advance angle θt is equal to or less than the reference advance angle θb, the process proceeds to step S909. If it is determined in step S911 that the target advance angle θt is greater than the reference advance angle θb, the process proceeds to step S912, where the target advance angle θt is set to the reference advance angle θb.

[0080] That is, if the advance angle θ becomes too large, the torque drops sharply in region R3 as shown in Figure 5, so a process of imposing a limit at θb is performed. After that, the process proceeds to step S909.

[0081] In this way, in the first embodiment, the advance angle as an offset value is set to θb, which is a predetermined offset value, when the difference between the position detection counter value and the target position counter value is larger than the predetermined value (θb). Note that in this embodiment, the value compared in step S911 and the offset value set in step S911 are the same value, but they may be different values.

[0082] Also, the target advance angle θt may be set to zero immediately before stopping in Fig. 10. This makes it possible to suppress reverse operation (hunting) when stopping.

[0083] In this embodiment, by controlling the advance angle as described above, it is possible to suppress the occurrence of overshoot and undershoot, and to suppress abnormal noise, reversal operation when stopped, and unnatural changes in the angle of view.

[0084] In step S909, the target lead angle θt is sent to the drive waveform generation unit 309. The drive waveform generation unit 309 generates an offset position counter value by adding the target lead angle θt as an offset value to the position detection counter value, and controls the motor based on the offset position counter value and the target position counter value.

[0085] In step S913, in preparation for the next process, the target position Pt is set to the previous target position Ptp, and the target position difference Vc is set to the previous target position difference Vp, and these are saved, and then the process returns to step S900.

[0086] Fig. 11 is a flowchart showing an example of processing by the power rate calculation unit 802 according to embodiment 1. Note that the operation of each step in the flowchart of Fig. 11 is performed sequentially by a CPU or the like serving as a computer of the motor control device 303 executing a computer program stored in a memory.

[0087] First, in step S1100, it is determined whether open control has been selected. The open control state is selected in step S901 of FIG. 10 by advance angle control unit 308, and the feedback control state is selected in step S905. If it is determined that open control is selected, the process proceeds to step S1101, where the power rate Po required for motor rotation under open control is set as the target power rate Pw. Then, the process proceeds to step S1111.

[0088] On the other hand, if it is determined in step S1100 that the control is not open control, i.e., that the control is feedback control, the process proceeds to step S1102. In step S1102, a position deviation ΔP, which is the difference between the target position Pt and the current position Pc, is calculated, and the process then branches to step S1103 and step S1104, where parallel processing is performed.

[0089] In step S1103, proportional control processing is performed, and the proportional constant Kp is multiplied by the position deviation ΔP, and the result is substituted into the variable P.

[0090] On the other hand, in steps S1104 to S1109, integral control processing is executed. First, in step S1104, the position deviation ΔP is added to the intermediate variable TempI, and the result is again substituted into the intermediate variable TempI.

[0091] In step S1105, it is determined whether the intermediate variable TempI is smaller than the integral limit lower limit DwLimit. If the answer is Yes in step S1105, the process proceeds to step S1106, where the integral limit lower limit DwLimit is substituted for the intermediate variable TempI.

[0092] On the other hand, if the intermediate variable TempI is greater than the integral limit lower limit DwLimit in step S1105, the process proceeds to step S1107, where it is determined whether the intermediate variable TempI is greater than the integral limit upper limit UpLimit. If the determination in step S1107 is No, the process proceeds to step S1109, and if the determination in step S1107 is Yes, the process proceeds to step S1108.

[0093] In step S1108, the upper integral limit value UpLimit is assigned to the intermediate variable TempI, and the process proceeds to step S1109. In step S1109, the intermediate variable TempI is multiplied by the integral constant Ki and the result is assigned to the variable I. In step S1110, the variable P set in step S1103 and the variable I set in step S1109 are added together and set as the target power rate Pw. Then, the process proceeds to step S1111.

[0094] In this embodiment, a PI control (Proportional-Integral Controller) using proportional control and integral control is applied, but a PID control (Proportional-Integral-Derivative Controller) may be realized by further adding a derivative element to this.

[0095] That is, the amount of positional deviation correction may be set based on the result of processing the deviation between the position detection counter value and the target position counter value using at least one of proportional, differential, and integral calculations.

[0096] Furthermore, similar control characteristics may be realized by combining a high-pass filter and a low-pass filter instead of the processes in steps S1102 to S1110. That is, the amount of positional deviation correction may be set based on the result of processing the amount of deviation between the position detection counter value and the target position counter value using a low-pass filter or a high-pass filter.

[0097] In step S1111, the target power rate Pw is sent to the drive waveform generating unit 309, and then the process returns to step S1100, and the process of the flow in FIG. 11 is repeated.

[0098] <Embodiment 2> Next, a second embodiment of the present invention will be described. The only difference from the first embodiment is the processing performed by the power rate calculation unit 802, and therefore a description of other parts will be omitted. In the second embodiment, in a system that performs advance angle control, the power rate is increased so that the speed does not decrease when the advance angle is reduced. This makes it possible to maintain the speed.

[0099] Fig. 12 is a flowchart showing an example of processing by the power rate calculation unit 802 according to embodiment 2. Note that the operation of each step in the flowchart of Fig. 12 is performed sequentially by a CPU or the like serving as a computer of the motor control device 303 executing a computer program stored in a memory.

[0100] First, in step S1200, it is determined whether open control is in effect. The open control state is determined by the processing of the flow chart shown in Fig. 10 of the advance angle control unit described above. If it is determined that open control is in effect, the process proceeds to step S1201, where the power rate Po required for motor rotation under open control is set as the target power rate Pw.

[0101] On the other hand, if it is determined in step S1200 that the control is not open control, the process proceeds to step S1202, where the currently set lead angle θc and the currently set power rate Pwn are acquired. Thereafter, the process proceeds to step S1203, where the target lead angle θt set by lead angle calculation unit 801 in the flow of Fig. 9 is acquired, and then the process proceeds to step S1204, where the set power rate is selected.

[0102] Fig. 13 is a diagram for explaining the selection of the set power rate executed in step S1204. Fig. 13 shows the characteristics of the lead angle and rotation speed (vertical axis: rotation speed, horizontal axis: lead angle) at each power rate of 10% to 90%, and the characteristic data shown in Fig. 13 is stored in power rate calculation unit 802 as a function formula or a table.

[0103] The drive voltage (power rate) is then controlled based on characteristic data such as that shown in FIG. 13, which shows the relationship between the target advance angle, the motor speed, and the drive voltage (power rate).

[0104] Consider the case where the current power rate Pwn is 20% of the current lead angle θc. From Figure 13, the rotation speed Vφ can be obtained at point A on the graph where the curve representing the power rate Pwn = 20% intersects with the current lead angle θc. On the other hand, the curve representing the power rate that passes through point B, where the rotation speed Vφ is reached when the target lead angle θt is 80%.

[0105] In other words, when the advance angle is changed from the current advance angle θc to the target advance angle θt, it is clear that the rotation speed Vφ can be maintained by changing the set power rate Pφ from the current power rate Ptc=20% to 80%. As described above, in step S1204, the set power rate Pφ is obtained and set as the target power rate Pw.

[0106] Next, in step S1205, the target power rate Pw is sent to the drive waveform generating unit 309, and then the process returns to step S1200, and the process of the flow in FIG. 12 is repeated.

[0107] The above has described an embodiment in which position control is realized by using lead angle control to move, for example, an imaging lens so as to follow the target position counter value that moves at an arbitrary speed. The lead angle control of the above embodiment makes it possible to efficiently drive and rotate the motor, and realizes follow-up position control that has the effects of high responsiveness and low vibration.

[0108] While the present invention has been described in detail above based on preferred embodiments thereof, the present invention is not limited to the above embodiments, and various modifications and combinations of the above embodiments are possible based on the spirit of the present invention, and are not excluded from the scope of the present invention. For example, in the above embodiments, the present invention is applied to a motor for driving a lens, but the driven member to be driven is not limited to a lens, and may be any member.

[0109] The present invention also includes those that realize the functions of the above-described embodiments using at least one processor or circuit such as a CPU, etc. Also, it is possible to use multiple processors to perform distributed processing.

[0110] In order to realize some or all of the control in the above embodiments, a computer program that realizes the functions of the above embodiments may be supplied to a motor control device or the like via a network or various storage media. The computer (or CPU, MPU, etc.) in the motor control device or the like may then read and execute the program. In this case, the program and the storage medium storing the program constitute the present invention. The present invention also includes the following combinations.

[0111] (Configuration 1) A motor control device comprising: an encoder that generates a position detection counter value indicating position information of a member connected to a motor; a target position setting means that generates a target position counter value that becomes a movement target of the member connected to the motor; and a control means that calculates an offset value based on the position detection counter value and the target position counter value, generates an offset position counter value by adding the offset value to the position detection counter value, and controls the motor based on the offset position counter value and the target position counter value.

[0112] (Configuration 2) The motor control device according to configuration 1, wherein the control means controls at least one of a target advance angle and a drive voltage set for the motor.

[0113] (Configuration 3) The motor control device according to configuration 2, wherein the offset position counter value is determined based on the position detection counter value and the target advance angle.

[0114] (Configuration 4) The motor control device according to configuration 2 or 3, wherein the control means sets the target advance angle based on the target position counter value and the position detection counter value.

[0115] (Configuration 5) The motor control device according to any one of configurations 2 to 4, wherein the control means controls the drive voltage based on characteristic data indicating the relationship between the target advance angle, the speed of the motor, and the drive voltage.

[0116] (Configuration 6) A motor control device according to any one of configurations 1 to 5, characterized in that the control means sets a position deviation correction amount based on the result of processing the deviation amount between the position detection counter value and the target position counter value using a low-pass filter or a high-pass filter.

[0117] (Configuration 7) A motor control device according to any one of configurations 1 to 6, characterized in that the control means sets a position deviation correction amount based on the result of processing the deviation amount between the position detection counter value and the target position counter value using at least one of proportional, differential, and integral calculations.

[0118] (Configuration 8) The motor control device according to any one of configurations 1 to 7, wherein the offset value is a lead angle that is set according to the difference between the position detection counter value and the target position counter value.

[0119] (Configuration 9) A motor control device according to any one of configurations 1 to 8, characterized in that the offset value is set to a predetermined offset value when the difference between the position detection counter value and the target position counter value is greater than a predetermined value.

[0120] (Configuration 10) The motor control device according to any one of configurations 1 to 9, wherein the offset value is set to a predetermined offset value when the speed of the motor increases by a predetermined threshold value or more.

[0121] (Method) A motor control method characterized by calculating a position detection counter value indicating position information of a member connected to a motor, a target position counter value that is a movement target of the member connected to the motor, an offset value based on the position detection counter value and the target position counter value, generating an offset position counter value by adding the offset value to the position detection counter value, and controlling the motor based on the offset position counter value and the target position counter value.

[0122] (Program) A computer program for controlling each means of the motor control device according to any one of configurations 1 to 10 by a computer. [Explanation of symbols]

[0123] 101...Fixed lens 102...Zoom lens 103...Focus lens 104...Auxiliary zoom lens 105...Aperture (aperture stop) 201...Stepping motor 202...Rotation axis 203... Rack 204...Moving member 205...PI (Photointerrupter) 206... Shade 207...Rotation phase detection magnet 208...Hall sensor (Hall-Ch0) 209...Hall sensor (Hall-Ch1) 301...Hall sensor (Hall-Ch0) amplifier circuit 302...Hall sensor (Hall-Ch1) amplifier circuit 303...Motor control device 304 AD converter 305...Encoder 306‥‥Target position setting section 307. Coordinate origin setting section 308...Advance angle control unit 309...Drive waveform generation unit 310...Motor driver

Claims

1. an encoder that generates a position detection counter value that indicates position information of a member connected to the motor; a target position setting means for generating a target position counter value that is a movement target of the member connected to the motor; a control means for calculating an offset value based on the position detection counter value and the target position counter value, generating an offset position counter value by adding the offset value to the position detection counter value, and controlling the motor based on the offset position counter value and the target position counter value; A motor control device comprising:

2. 2. The motor control device according to claim 1, wherein the control means controls at least one of a target advance angle and a drive voltage set for the motor.

3. 3. The motor control device according to claim 2, wherein the offset position counter value is determined based on the position detection counter value and the target advance angle.

4. 3. The motor control device according to claim 2, wherein the control means sets the target advance angle based on the target position counter value and the position detection counter value.

5. 3. The motor control device according to claim 2, wherein the control means controls the drive voltage based on characteristic data that indicates the relationship between the target advance angle, the speed of the motor, and the drive voltage.

6. 2. The motor control device according to claim 1, wherein the control means sets a position error correction amount based on a result of processing the deviation amount between the position detection counter value and the target position counter value using a low-pass filter or a high-pass filter.

7. 2. The motor control device according to claim 1, wherein the control means sets a position error correction amount based on a result of processing the amount of deviation between the position detection counter value and the target position counter value using at least one of proportional, differential, and integral calculations.

8. 2. The motor control device according to claim 1, wherein the offset value is a lead angle that is set in accordance with the difference between the position detection counter value and the target position counter value.

9. 2. The motor control device according to claim 1, wherein the offset value is set to a predetermined offset value when the difference between the position detection counter value and the target position counter value is greater than a predetermined value.

10. 2. The motor control device according to claim 1, wherein the offset value is set to a predetermined offset value when the speed of the motor increases by a predetermined threshold or more.

11. a position detection counter value indicating position information of a member connected to the motor; a target position counter value that is a movement target of the member connected to the motor; a motor control method comprising: calculating an offset value based on the position detection counter value and the target position counter value; generating an offset position counter value by adding the offset value to the position detection counter value; and controlling the motor based on the offset position counter value and the target position counter value.

12. A computer program for controlling each means of the motor control device according to any one of claims 1 to 10 by a computer.

Citation Information

Patent Citations

  • Constant-speed controller for variable field motor

    JP2008312298A

  • Control device, and method for controlling stepping motor

    JP2014039427A