This application claims the benefit of priority to Korean Patent Application No. 10-2023-0131147, filed in the Korean Intellectual Property Office, on Sep. 27, 2023, the entire contents of which are incorporated herein by reference.
The present disclosure relates to a motor control device for estimating a position of a rotor in a state in which a motor is stopped and a method for estimating a position of a rotor thereof.
As a motor and an inverter are integrally developed in an air compressor applied to a third generation fuel cell, in some cases, it may be difficult to apply a rotor position sensor to the motor due to a package problem. In some cases, a rotor position sensorless (or position sensorless) technology is applied to execute motor control.
The position sensorless technology may estimate a speed and a position, when an expansion back electromotive force of the motor is formed. Because the back electromotive force is 0 V when the motor is in the stopped state, it is impossible to estimate a speed and a position depending on the estimation of the expansion back electromotive force. Thus, because the motor starts to drive in a state in which the position of a rotor is not known when it is driven in the stopped state, there is a possibility that the motor may be driven from an incorrect position upon initial driving.
When the motor is driven from the incorrect position, sensorless driving fails due to divergence of a sensorless speed and position estimation feedback controller or a responsiveness delay phenomenon due to motor driving instability may occur upon initial driving. Thus, in some cases, a separate position estimation technology may be applied in the stopped state of the motor, or the rotor may be aligned at a specific position to be driven in a specific state.
The present disclosure describes a motor control device for applying a pulse voltage application scheme to improve the accuracy of the estimation of an initial position of a rotor even in a state in which a motor is stopped and a method for estimating a position of a rotor thereof.
According to an aspect of the present disclosure, a motor control device may include a power supply that supplies a phase voltage to a stator of a motor, a current sensor that measures current flowing in the stator, a processor connected with the power supply and the current sensor. The processor may determine whether a rotor position estimation execution condition is established, may apply the phase voltage to the stator of the motor, if it is determined that the rotor position estimation execution condition is established, may measure the current flowing in the stator, may estimate a position of a rotor of the motor based on a first maximum current value among the measured current values, and may determine whether to reattempt to estimate a position of the rotor based on a difference between the first maximum current value and a second maximum current value among the measured current values.
The processor may determine whether the difference between the first maximum current value and the second maximum current value is less than a predetermined reference value and may determine to reattempt to estimate the position of the rotor, if it is determined that the difference between the first maximum current value and the second maximum current value is less than the predetermined reference value.
The processor may change the position of the rotor, if it is determined to reattempt to estimate the position of the rotor, and may re-estimate the position of the rotor by reapplying the phase voltage to the stator, after changing the position of the rotor.
The processor may finally determine the estimated position of the rotor as an initial position of the rotor, if it is determined not to reattempt to estimate the position of the rotor.
The processor may determine that the rotor position estimation execution condition is established, if a stop command is transmitted to the motor and the motor switches from a rotational state to a stopped state.
The processor may wait during a predetermined time, until the rotor of the motor stops and may initiate to apply the phase voltage to the stator, if the predetermined time elapses.
The processor may apply and stop the phase voltage depending on a predetermined pulse duty cycle, and may wait until the current flowing in the stator is blocked and may apply a next phase voltage, if the current flowing in the stator is blocked.
The phase voltage may be a 3-phase voltage in the form of a pulse.
The processor may sense a current value in a first period of pulse width modulation (PWM), may sense a current value in a last period of the PWM, may calculate a difference between the current value in the first period and the current value in the last period, and may set the calculated current value difference to a phase voltage vector current.
The processor may identify a position at which the first maximum current value is stored in a phase voltage vector current array and may determine an angle in a phase voltage vector angle array mapped to the identified position as the position of the rotor.
According to another aspect of the present disclosure, a method for estimating a position of a rotor of a motor control device may include determining whether a rotor position estimation execution condition is established, applying a phase voltage to a stator of a motor, if it is determined that the rotor position estimation execution condition is established, measuring current flowing in the stator, estimating the position of the rotor of the motor based on a first maximum current value among the measured current values, and determining whether to reattempt to estimate the position of the rotor based on a difference between the first maximum current value and a second maximum current value among the measured current values.
The determining of whether to reattempt to estimate the position of the rotor may include determining whether the difference between the first maximum current value and the second maximum current value is less than a predetermined reference value and determining to reattempt to estimate the position of the rotor, if it is determined that the difference between the first maximum current value and the second maximum current value is less than the predetermined reference value.
The method may further include changing the position of the rotor, if it is determined to reattempt to estimate the position of the rotor, and re-estimating the position of the rotor by reapplying the phase voltage to the stator, after changing the position of the rotor.
The method may further include finally determining the estimated position of the rotor as an initial position of the rotor, if it is determined not to reattempt to estimate the position of the rotor.
The determining of whether the rotor position estimation execution condition is established may include determining that the rotor position estimation execution condition is established, if a stop command is transmitted to the motor and the motor switches from a rotational state to a stopped state.
The applying of the phase voltage to the stator of the motor may include waiting during a predetermined time, until the rotor of the motor stops, and initiating to apply the phase voltage to the stator, if the predetermined time elapses.
The applying of the phase voltage to the stator of the motor may include applying and stopping the phase voltage depending on a predetermined pulse duty cycle, and waiting until the current flowing in the stator is blocked and applying a next phase voltage, if the current flowing in the stator is blocked.
The measuring of the current may include sensing a current value in a first period of pulse width modulation (PWM), sensing a current value in a last period of the PWM, calculating a difference between the current value in the first period and the current value in the last period, and setting the calculated current value difference to a phase voltage vector current.
The estimating of the position of the rotor may include identifying a position at which the first maximum current value is stored in a phase voltage vector current array and determining an angle in a phase voltage vector angle array mapped to the identified position as the position of the rotor.
The above and other objects, features and advantages of the present disclosure will be more apparent from the following detailed description taken in conjunction with the accompanying drawings.
Hereinafter, one or more implementations of the present disclosure will be described in detail with reference to the exemplary drawings. In the drawings, the same reference numerals will be used throughout to designate the same or equivalent components.
In some implementations, referring to
In some examples, when a motor to which a position sensor is not applied (or a position sensorless motor) starts initial driving from a stopped state without knowing an initial position of the rotor, a magnetic field may be formed on a stator from a time point when the rotor of the motor reaches a specific position and the rotor may rotate along the magnetic field of the stator by linearly increasing a rotation speed of the magnetic field. In this case, because the magnetic field of the stator should be formed and rotated slowly, the magnetic field is unable to be rotated at an extremely high speed. There is a need for an open loop control interval for rotating a magnetic field during a certain time to synchronize a driving speed (or a rotation speed) of the rotor with a rotation speed of the magnetic field. As shown in
The present disclosure describes a technology for deleting the open loop control interval to prevent the air supply delay due to the initial driving delay of the motor and estimating an initial position of the rotor when the rotor stops.
In some implementations, referring to
The rotor 110 may include an N-pole permanent magnet 111 and an S-pole permanent magnet 112, which are attached to the surface. The rotor 110 may be rotatably disposed at a predetermined interval, that is, an air gap with the stator 120. The rotor 110 may rotate through an interaction with the stator 120.
The stator 120 may be disposed at an outer side of the rotor 110 and may be disposed to be fixed at an inner side of a motor housing. The stator 120 may include a plurality of teeth 121 formed to protrude in a radius direction at a predetermined interval in a circumferential direction of a body. Slots 122 may be formed between the teeth 121. The slot 122 may be defined as a space where a coil 130 wound on the teeth 121 is located.
When current is input from an inverter, the coil 130 wound on the teeth 121 may generate a first magnetic flux for driving the motor 100. As the first magnetic flux generated by the stator 120 and magnetic forces of the permanent magnets 111 and 112 interact with each other, the rotor 110 rotates.
Referring to
The power supply 210 may apply (or supply) a testing voltage to a coil 130 wound on a stator 120 depending on a control signal of the processor 250. A phase voltage (e.g., a 3-phase voltage) in the form of a pulse may be used as the testing voltage.
The current sensor 220 may measure current flowing in the coil 130 of the stator 120. The current sensor 220 may transmit the measured current value to the processor 250. The current sensor 220 may store the measured current value in the memory 240 depending on an instruction of the processor 250.
The counter 230 may count the number of specific signals. The counter 230 may transmit the counted number to the processor 250. Furthermore, the counter 230 may store the counted value (or a count value) in the memory 240 depending on an instruction of the processor 250. It is shown in the drawing that the motor control device 200 includes the one counter 230, but not limited thereto. The motor control device 200 may include two or more counters.
The memory 240 may store the current value measured by the current sensor 220. The memory 240 may store pieces of predetermined setting information (e.g., a reference value or the like). The memory 240 may store a position estimation algorithm or the like.
The memory 240 may be a non-transitory storage medium which stores instructions executed by the processor 250. The memory 240 may be implemented as a flash memory, a hard disk, a solid state disk (SSD), a random access memory (RAM), a static RAM (SRAM), a read only memory (ROM), a programmable ROM (PROM), an electrically erasable and programmable ROM (EEPROM), an erasable and programmable ROM (EPROM), and/or the like.
The processor 250 may be electrically connected with the power supply 210, the current sensor 220, the counter 230, and the memory 240 and may control the overall operation of the motor control device 200. The processor 250 may be implemented as an application specific integrated circuit (ASIC), a digital signal processor (DSP), a programmable logic device (PLD), a field programmable gate array (FPGA), a central processing unit (CPU), a microcontroller, a microprocessor, and/or the like.
The processor 250 may estimate a position of the rotor 110 using the position estimation algorithm in a state in which the motor 100 is stopped. The processor 250 may estimate a rotor position of the motor 100 every pulse width modulation (PWM) period.
The processor 250 may determine whether a rotor position estimation execution condition is established. The processor 250 may determine whether the rotor position estimation execution condition is established based on a speed command, an estimated speed in an immediately previous period, an estimated speed in a current period, and/or the like. As an example, when the speed command transmitted to the motor 100 is 0 rpm and when the speed (or the motor speed) estimated in the immediately previous period is not 0 rpm and the speed estimated in the current period is 0 rpm, the processor 250 may determine that the rotor position estimation execution condition is established. In other words, when the stop command is transmitted to the motor 100 and when the motor 100 switches from a rotational state to a stopped state, the processor 250 may determine whether the rotor estimation execution condition is met (or satisfied).
When it is determined that the rotor position estimation execution condition is established, the processor 250 may wait during a predetermined time (or a waiting time) until the rotor 110 completely stops. At this time, the processor 250 may count the waiting time using the counter 230.
When the predetermined waiting time elapses, the processor 250 may control the power supply 210 to supply a phase voltage to the coil 130 of the stator 120. The power supply 210 may apply a phase voltage (e.g., a 3-phase voltage) in the form of a pulse to the stator 120 of the motor 100 depending on a command of the processor 250.
The processor 250 may supply the phase voltage to the stator 120 and may measure current flowing in the stator 120 using the current sensor 220. The processor 250 may estimate (or determine) a position of the rotor 110 based on the measured current value. The processor 250 may determine a position where a maximum current value among the measured current values is measured (or a phase voltage vector or a space voltage vector) as the position of the rotor 110.
The processor 250 may calculate a difference between a first maximum current value and a second maximum current value among the measured current values. The processor 250 may identify whether the calculated difference is less than a predetermined reference value. When the calculated difference is less than the predetermined reference value, the processor 250 may determine to reattempt to estimate a position of the rotor 110. In some examples, when the calculated difference is greater than or equal to the predetermined reference value, the processor 250 may determine not to reattempt to estimate the position of the rotor 110.
When incorrectly recognizing an initial position of a rotor 110 after deleting the open loop control interval, a motor control device 200 may execute motor control from the incorrect initial position of the rotor 110. Referring to
Referring to
As shown in
As shown in
Furthermore, to prevent the rotor 110 from rotating according to a phase voltage application direction (or a counterclockwise direction) when applying the phase voltage to the stator 120, the power supply 210 may apply the phase voltage in the direction of rotation to sequentially apply the phase voltage in the direction of a symmetric phase voltage vector. For example, referring to
Referring to
Referring to
The motor control device 200 may apply a phase voltage a predetermined number of times when applying the phase voltage. The number of times that the phase voltage is applied may be determined by the number of poles of the stator 120. Furthermore, the motor control device 200 may sense a current (or a phase current) generated whenever the phase voltage is applied.
A motor control device 200 may apply a 3-phase (or U-phase, V-phase, and W-phase) voltage to a stator 120 of a motor 100 and may measure a value of current flowing in the stator 120. At this time, the motor control device 200 may measure a 3-phase current.
The motor control device 200 may discriminate a position where the largest current value among peak absolute values of the measured current values is measured (or a voltage vector). The motor control device 200 may estimate (or determine) the discriminated position as an initial position of the rotor 110. The motor control device 200 may compare the estimated initial position of the rotor 110 with an actual position of the rotor 110 to identify whether the initial position of the rotor 110 is normally estimated. Referring to
When applying a phase voltage, a motor control device 200 may apply the phase voltage depending on a predetermined pulse duty cycle and may stop a phase voltage output to wait. In other words, a power supply 210 may apply the phase voltage during a predetermined phase voltage output time and may stop the phase voltage output during a predetermined phase voltage output stop waiting time.
Referring to
A motor control device 200 may apply a phase voltage during a predetermined time. For example, the predetermined time may be the number of PWM periods, which may be predetermined by a motor test. While the phase voltage is applied, a phase current linearly rises.
The motor control device 200 may sense a first current value in a first period of PWM and may sense a second current value in a last period of the PWM. The motor control device 200 may calculate a difference between the sensed first current value in the first period and the sensed second current value in the last period. The motor control device 200 may set the calculated current value difference as a phase voltage vector delta current. The motor control device 200 may measure a phase voltage vector delta current for each phase and may store a maximum value. The motor control device 200 may compare maximum values of the phase voltage vector delta currents for each position and may estimate a position with the largest current value as a position of the rotor 110.
A motor control device 200 may determine an angle in a phase voltage vector angle array, which corresponds to a position with the largest value in an array of phase voltage vector delta currents (or phase voltage vector currents), as an initial position of a rotor 110. Referring to
After applying a phase voltage, a motor control device 200 may calculate a difference between a first maximum current value and a second maximum current value, which are measured by a current sensor 220. The motor control device 200 may identify whether the calculated current value difference is less than a predetermined reference value. When it is identified that the calculated current value difference is less than the predetermined reference value (e.g., 3A), the motor control device 200 may determine that there is a possibility of an error in rotor position estimation. When it is determined that there is the possibility of the error in rotor position estimation, the motor control device 200 may determine to reattempt to estimate a position of the rotor 110. In other words, when the calculated current value difference is less than the predetermined reference value, the motor control device 200 may determine to reattempt to estimate the position of the rotor 110. When it is determined to reattempt to estimate the position of the rotor 110, the motor control device 200 may reapply a phase voltage.
Furthermore, before reapplying the phase voltage, the motor control device 200 may change the position of the rotor 110. For example, the motor control device 200 may apply a predetermined current (e.g., 35 A) to a d-axis (or a 0-degree position) on a stationary coordinate system of a stator 120 during a predetermined time (e.g., 0.1 second) to change the position of the rotor 110.
After changing the position of the rotor 110, the motor control device 200 may reapply the phase voltage. After reapplying the phase voltage again, the motor control device 200 may measure current values using a current sensor 220. The motor control device 200 may calculate a difference between a first maximum current value and a second maximum current value among the measured current values. When the calculated current value difference is greater than or equal to a predetermined reference value, the motor control device 200 may determine (or estimate) the currently estimated position as a final position of the rotor 110. The number of reattempts may be limited to a predetermined number of times (e.g., 3 times).
When the position of the rotor 110 is a boundary point of position resolution or when the current deviation is not significant at a specific position by a motor manufacture deviation, as the discrimination power of a maximum current waveform is lowered, there may be a possibility of an error in rotor position estimation. In other words, as the difference between the first maximum current value and the second maximum current value decreases to a certain level or less, an incorrect position may be estimated. Thus, when the difference between the first maximum current value and the second maximum current value is smaller than a reference current value, the motor control device 200 may reapply the phase voltage again and may execute rotor position estimation again. Because the same problem is repeated when reattempting to reapply the phase voltage, the motor control device 200 may apply a current to a predetermined specific position of the stator 120 to rotate the rotor 110 and may change a position of the rotor 110, before reapplying the phase voltage, and may reapply the phase voltage. As such, the motor control device 200 may improve the accuracy of initial position estimation of the rotor 110.
Referring to
Referring to
In S110, a processor 250 of a motor control device 200 may determine whether a rotor position estimation execution condition is established. The processor 250 may determine whether the rotor position estimation execution condition is established based on a speed command, an estimated speed in an immediately previous period, an estimated speed in a current period, and/or the like. As an example, when the speed command transmitted to a motor 100 is 0 rpm and when the speed (or the motor speed) estimated in the immediately previous period is not 0 rpm and the speed estimated in the current period is 0 rpm, the processor 250 may determine that the rotor position estimation execution condition is established.
When it is determined that the rotor position estimation execution condition is established, in S120, the processor 250 may determine to wait for a rotor 110 to stop. The processor 250 may set a rotor stop waiting flag to “1”. In some examples, when it is determined that the rotor position estimation execution condition is not established, the processor 250 may perform S130.
In S130, the processor 250 may determine whether to wait for the motor 100 to stop. The processor 250 may identify whether the rotor stop waiting flag is set to “1”. When the rotor stop waiting flag is set to “1”, the processor 250 may determine to wait for the motor 100 to stop.
When it is determined for the motor 100 to stop, in S140, the processor 250 may increase a rotor stop waiting counter by “+1” every period. The processor 250 may count a rotor stop waiting time. When it is determined that the operation state is not a motor stop waiting state, the processor 250 may perform S150.
In S150, the processor 250 may identify whether a rotor stop waiting count output from the rotor stop waiting counter is greater than or equal to a rotor stop waiting reference count. The processor 250 may determine whether the counted rotor stop waiting time is greater than a predetermined reference waiting time. The processor 250 may count a time waiting until the rotor 110 stops (i.e., the rotor stop waiting count) using the rotor stop waiting counter.
When the rotor stop waiting count is greater than or equal to the rotor stop waiting reference count, in S160, the processor 250 may set a phase voltage application start flag to “1”. In other words, when the counted rotor stop waiting time is greater than the predetermined reference waiting time, the processor 250 may determine to apply a phase voltage. Furthermore, the processor 250 may initialize the rotor stop waiting counter to “0” and may also initialize a rotor stop waiting flag to “0”. When the rotor stop waiting count is less than the rotor stop waiting reference count, the processor 250 may perform S170.
In S170, the processor 250 may identify whether the phase voltage application start flag is set to “1”.
When the phase voltage application start flag is set to “1”, in S210, the processor 250 may identify whether the phase voltage vector count is less than a predetermined phase voltage vector reference count (e.g., 6). The processor 250 may apply a phase voltage and may increase the phase voltage vector counter by “1” when the application of the phase voltage is completed. The phase voltage vector reference count may be determined by the number of poles of the stator 120 (i.e., the number of divided space voltage vectors). In some examples, when the phase voltage application start flag is set to “1”, the processor 250 may return to S110.
When the phase voltage vector count is less than the predetermined phase voltage vector reference count, in S220, the processor 250 may identify whether a phase voltage output stop waiting flag is “0”.
When the phase voltage output stop waiting flag is “0”, in S230, the processor 250 may identify whether a phase voltage application count is “1”. The processor 250 may identify whether the phase voltage application count output from a phase voltage application counter is “1”. In some examples, when the phase voltage output stop waiting flag is “1”, the processor 250 may perform the operation from S310.
When the phase voltage application count is “1”, in S240, the processor 250 may store a first current value. When the phase voltage application count is “0”, the processor 250 may perform the operation from S250.
In S250, the processor 250 may identify whether the phase voltage application count is identical to a predetermined phase voltage application reference count.
When the phase voltage application count is identical to the phase voltage application reference count, in S260, the processor 250 may store a last current value. When the phase voltage application count is not identical to the phase voltage application reference count, the processor 250 may perform the operation from S280.
After storing the last current value, in S270, the processor 250 may set the phase voltage output stop waiting flag to “1”.
In S280, the processor 250 may increase the phase voltage application counter by “+1”. Thereafter, the processor 250 may return to S220.
When the phase voltage output stop waiting flag is not “0” in S220, in S310, the processor 250 may increase the phase voltage output stop waiting counter by “+1”. In other words, when the phase voltage output stop waiting flag is “1”, the processor 250 may increase the phase voltage output stop waiting counter by “+1”.
In S320, the processor 250 may identify whether the phase voltage output stop waiting count counted by the phase voltage output stop waiting counter is greater than or equal to a predetermined phase voltage output stop waiting reference count. The processor 250 may increase the phase voltage output stop waiting counter by “1” every PWM period and may wait until the phase voltage output stop waiting count reaches the predetermined phase voltage output stop waiting reference count.
When the phase voltage output stop waiting count is greater than or equal to the predetermined phase voltage output stop waiting reference count, in S330, the processor 250 may increase the phase voltage vector counter. When the application of the phase voltage is completed for each position, the processor 250 may increase the phase voltage vector counter by “1”. The phase voltage vector counter may output the increased phase voltage vector count to the processor 250.
In S340, the processor 250 may identify whether the phase voltage vector count is greater than a phase voltage vector reference count. In other words, the processor 250 may determine whether the application of the phase voltage to six positions is completed. When the phase voltage output stop waiting count counted in S320 is less than the predetermined phase voltage output stop waiting reference count or when the phase voltage vector count is less than or equal to the phase voltage reference count in S340, the processor 250 may return to S100.
When the phase voltage vector count is greater than the phase voltage vector reference count, in S350, the processor 250 may store a maximum value position in a phase voltage vector current array. The processor 250 may identify a position of a maximum current value in a phase voltage vector current array.
In S360, the processor 250 may determine an estimated position in a phase voltage vector angle array. The processor 250 may estimate a phase voltage vector angle mapped to the maximum current value position in the phase voltage vector current array in the phase voltage vector angle array as a rotor position.
Next, in S370, the processor 250 may identify whether a difference between a first maximum current value and a second maximum current value is less than a predetermined reference value.
When the difference between the first maximum current value and the second maximum current value is less than the predetermined reference value, in S380, the processor 250 may set a phase voltage application function reattempt flag to “1”. When the difference between the first maximum current value and the second maximum current value is less than the predetermined reference value, the processor 250 may reattempt to estimate a position of the rotor 110.
When the difference between the first maximum current value and the second maximum current value is not less than the predetermined reference value, in S390, the processor 250 may set the phase voltage application function reattempt flag to “0”. When the difference between the first maximum current value and the second maximum current value is not less than the predetermined reference value, the processor 250 may not reattempt to estimation the position of the rotor 110 and may determine the rotor position estimated in S360 as a final rotor position.
Implementations of the present disclosure may apply a pulse voltage application scheme to improve the accuracy of the estimation of an initial position of the rotor even in a state in which the motor is stopped.
Furthermore, implementations of the present disclosure may improve initial driving control stability when performing position sensorless control in the stopped state.
Hereinabove, although the present disclosure has been described with reference to exemplary implementations and the accompanying drawings, the present disclosure is not limited thereto, but may be variously modified and altered by those skilled in the art to which the present disclosure pertains without departing from the spirit and scope of the present disclosure claimed in the following claims. Therefore, implementations of the present disclosure are not intended to limit the technical spirit of the present disclosure, but provided only for the illustrative purpose. The scope of the present disclosure should be construed on the basis of the accompanying claims, and all the technical ideas within the scope equivalent to the claims should be included in the scope of the present disclosure.
Number | Date | Country | Kind |
---|---|---|---|
10-2023-0131147 | Sep 2023 | KR | national |