Semiconductor device and motor control program
The semiconductor device uses a compensation value table with discretized rotation angles and interpolation to address memory usage challenges in torque vibration suppression, achieving high-precision results with reduced memory consumption.
Patent Information
- Application Number
- JP2024059212
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-01
- Publication Date
- 2025-10-14
AI Technical Summary
Existing motor control methods struggle to reduce memory usage while maintaining high accuracy in suppressing torque vibrations, often requiring a trade-off between resolution and number of frequency components, leading to decreased accuracy.
A semiconductor device that includes a compensation value table with discretized rotation angles and uses an interpolation function to calculate compensation values, updating the table based on speed deviations and reflecting these values in motor control signals to suppress torque vibrations.
The solution reduces memory usage while achieving high-precision torque vibration suppression, maintaining consistent compensation values and improving suppression efficiency.
Smart Images

Figure 2025155397000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a semiconductor device and a motor control program. [Background technology]
[0002] Patent Document 1 discloses a control device that can suppress vibrations at frequencies proportional to the rotational speed of a motor. The control device detects vibrations using an acceleration sensor installed at a predetermined location and extracts only the frequency components whose vibrations are to be suppressed using a Fourier transform. The control device then generates a compensation signal for suppressing the vibrations of the extracted frequency components through repetitive control using a repetitive compensator and adds the signal to the command value. Meanwhile, compensation data, which is the basis of the compensation signal, is created for each rotational speed. As a result, the memory usage capacity of the repetitive compensator increases. Therefore, the motor control device uses multiple compensation data created for multiple rotational speeds to create compensation data for a new rotational speed by linearly interpolating data near that speed. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2001-037287 Summary of the Invention [Problem to be solved by the invention]
[0004] For example, the method disclosed in Patent Document 1 can suppress periodic vibrations, i.e., torque vibrations, that may occur in a motor. However, the method disclosed in Patent Document 1 may have difficulty reducing memory usage while suppressing torque vibrations with high accuracy. Specifically, compensation data that forms the basis of a compensation signal can be determined, for example, by a compensation value table that represents compensation values for each rotation angle of the motor. To reduce the memory usage associated with such tables, it is necessary to either lower the resolution of the rotation angle or compensation values, or to reduce the number of tables, i.e., the number of frequency components to be suppressed. This may result in a decrease in the accuracy of torque vibration suppression.
[0005] The embodiments described below have been made in consideration of the above, and other problems and novel features will become apparent from the description of this specification and the accompanying drawings. [Means for solving the problem]
[0006] A semiconductor device according to one embodiment outputs a motor control signal to an inverter that supplies power to the motor and controls the motor via the inverter. The semiconductor device includes a memory storing a program and a processor that executes the program stored in the memory. The memory further stores a compensation value table in which compensation values for each discretized rotation angle, which is a discretized rotation angle of the motor, are registered. The processor (a) extracts vibration components based on a speed deviation between a speed command value and the motor's rotation speed value, and calculates an update amount for each discretized rotation angle required to suppress the vibration components. The processor also (b) updates the compensation value table based on the update amount for each discretized rotation angle. The processor also (c) calculates a compensation value for each arbitrary rotation angle of the motor using the compensation value table and an interpolation function, and reflects the calculated compensation value in the motor control signal. [Effects of the Invention]
[0007] According to the embodiment, it is possible to reduce memory usage while suppressing torque vibration with high precision. [Brief explanation of the drawings]
[0008] [Figure 1] FIG. 1 is a schematic diagram showing a configuration example of a motor system to which a semiconductor device according to a first embodiment is applied. [Figure 2] FIG. 2 is a block diagram showing a detailed configuration example of the semiconductor device in FIG. [Figure 3] FIG. 3 is a schematic diagram illustrating an example of torque vibration. [Figure 4] FIG. 4 is a block diagram showing an example of the configuration of the torque vibration compensator shown in FIG. 2 in the semiconductor device according to the first embodiment. [Figure 5] FIG. 5 is a schematic diagram showing an example of the general operation of the vibration component extractor and the compensation value table update circuit in FIG. [Figure 6] FIG. 6 is a diagram illustrating an example of the operation of the complementing function generating circuit in FIG. [Figure 7] FIG. 7 is a diagram for explaining the boundary value extension method of polynomial approximation performed by the complementary function generating circuit in FIG. [Figure 8] FIG. 8 is a schematic diagram showing a specific example of the operation of the compensation value interpolation circuit shown in FIG. [Figure 9A] FIG. 9A is a diagram showing an example of the results of verifying the vibration suppression effect by applying the method of the first embodiment shown in FIG. [Figure 9B] FIG. 9B is a diagram showing an example of the results of verifying the vibration suppression effect by applying the method of the comparative example shown in FIG. [Figure 10] FIG. 10 is a schematic diagram comparing torque compensation values when the comparative example and the first embodiment are used. [Figure 11] FIG. 11 is a block diagram showing a schematic configuration example of a main part of the vibration component extractor in FIG. [Figure 12] FIG. 12 is a block diagram showing an example of the configuration of the torque vibration compensator shown in FIG. 2 in the semiconductor device according to the second embodiment. [Figure 13A]FIG. 13A is a diagram showing an example of a torque compensation value calculated when a linear interpolation function is used in the interpolation function calculation circuit shown in FIG. [Figure 13B] FIG. 13B is a diagram showing an example of a torque compensation value calculated when a quadratic interpolation function is used in the interpolation function calculation circuit shown in FIG. [Figure 14] FIG. 14 is a schematic diagram showing a specific example of the operation of the compensation value interpolation circuit shown in FIG. [Figure 15] FIG. 15 is a diagram showing an example of the results of verifying the vibration suppression effect by applying the method of the second embodiment shown in FIG. [Figure 16] FIG. 16 is a diagram showing an example of the results of comparative verification of vibration suppression effects relative to memory usage capacity in the methods of the first embodiment, the second embodiment, and the comparative example. [Figure 17] FIG. 17 is a block diagram showing an example of the configuration of a torque vibration compensator according to a comparative example. [Figure 18] FIG. 18 is a diagram showing an example of a torque compensation value generated by the torque vibration compensator shown in FIG. [Figure 19] FIG. 19 is a schematic diagram showing a specific example of the operation of the compensation value table reading circuit shown in FIG. DETAILED DESCRIPTION OF THE INVENTION
[0009] In the following embodiments, when necessary for convenience, the description will be divided into multiple sections or embodiments, but unless otherwise specified, they are not unrelated to each other, and one is a partial or complete modification, detail, supplementary explanation, etc. of the other. Furthermore, in the following embodiments, when the number of elements, etc. (including the number, numerical value, amount, range, etc.) is mentioned, it is not limited to that specific number, and may be more or less than the specific number, unless otherwise specified or when it is clearly limited in principle to a specific number.
[0010] Furthermore, in the following embodiments, it goes without saying that the components (including element steps, etc.) are not necessarily essential unless otherwise specified or considered to be clearly essential in principle. Similarly, in the following embodiments, when referring to the shape, positional relationship, etc. of components, etc., it is intended to include those that are substantially similar or similar to the shape, etc., unless otherwise specified or considered to be clearly not essential in principle. The same applies to the above numerical values and ranges.
[0011] Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In all drawings for explaining the embodiments, the same components are generally designated by the same reference numerals, and repeated description thereof will be omitted.
[0012] (First embodiment) <Outline of semiconductor device> FIG. 1 is a schematic diagram showing an example configuration of a motor system to which a semiconductor device according to a first embodiment is applied. The motor system shown in FIG. 1 includes a semiconductor device 10, an inverter 20, and a motor MT. The motor MT is, for example, a three-phase motor consisting of a u-phase, a v-phase, and a w-phase. The semiconductor device 10 generates and outputs a motor control signal for controlling the motor MT, for example, a PWM (Pulse Width Modulation) signal Gpwm. The inverter 20 supplies AC power to each phase of the motor MT based on the motor control signal.
[0013] The semiconductor device 10 is, for example, a microcontroller or SoC (System on Chip) configured on a single semiconductor chip. The semiconductor device 10 mainly includes a processor PRC, a memory MEM, a PWM signal generator PWMG, and an analog-to-digital converter ADC. The processor PRC is, for example, a CPU (Central Processing Unit) or a DSP (Digital Signal Processor). The memory MEM includes a ROM (Read Only Memory) and a RAM (Random Access Memory). The ROM is, for example, a flash memory. The RAM is, for example, an SRAM or a DRAM.
[0014] The ROM stores a motor control program. The motor control program is copied to the RAM. The processor PRC controls the motor MT by executing the motor control program copied to the RAM. The PWM signal generator PWMG generates a PWM signal Gpwm(u,v,w) for each phase based on, for example, a duty ratio command value for each phase from the processor PRC. The analog-to-digital converter ADC receives a detection signal representing the state of the motor MT, in this example, a detection signal representing the phase current of the motor MT, via the inverter 20. The analog-to-digital converter ADC converts the detection signal into a digital value.
[0015] The inverter 20 includes a gate driver GD, a switching circuit SWC, and a current detector IDET. The switching circuit SWC is configured, for example, as a three-phase bridge circuit consisting of six switching elements. The gate driver GD receives PWM signals Gpwm(u,v,w) for each phase from the semiconductor device 10 and controls the on / off of the six switching elements in the switching circuit SWC based on the PWM signals Gpwm(u,v,w). As a result, the switching circuit SWC supplies three-phase voltages Vu, Vv, and Vw to the motor MT according to the duty ratios of the PWM signals.
[0016] The current detector IDET detects phase currents Iu and Iw flowing through at least two phases of the motor MT, in this example, the u-phase and w-phase. An analog-to-digital converter ADC in the semiconductor device 10 converts the phase currents Iu and Iw detected by the current detector IDET into digital values. The phase current Iv flowing through the remaining phase can be calculated from the relationship "Iu + Iv + Iw = 0." In addition, in a current detection circuit system in which the three phase currents Iu, Iv, and Iw are bundled and detected by a single current detector, the phase currents Iu, Iv, and Iw may be derived from the on / off states of six switching elements.
[0017] Fig. 2 is a block diagram showing a detailed example configuration of the semiconductor device in Fig. 1. The semiconductor device 10 shown in Fig. 2 includes a motor controller 100 in addition to the PWM signal generator PWMG, analog-to-digital converter ADC, RAM, and ROM shown in Fig. 1. The motor controller 100 is realized by the processor PRC shown in Fig. 1 executing a motor control program stored in the RAM. In other words, the motor control program causes the processor PRC to function as each component within the motor controller 100 shown in Fig. 2.
[0018] The motor controller 100 includes a speed commander 101, a speed controller 102, a current controller 103, a two-axis to three-axis converter 104, a PWM signal modulator 105, a three-axis to two-axis converter 106, a rotation angle / speed estimator 107, a torque vibration compensator 108, and an adder 109.
[0019] The three-axis / two-axis converter 106 receives two-phase currents Iu and Iw from the analog-digital converter ADC and the rotation angle θ from the rotation angle / speed estimator 107. Then, the three-axis / two-axis converter 106 converts the three-phase currents Iu, Iv, and Iw in the UVW coordinate system obtained from the two-phase currents Iu and Iw into a d-axis current Id and a q-axis current Iq in the dq coordinate system by Clarke transformation and Park transformation using the rotation angle θ. The UVW coordinate system is a rotating coordinate system. On the other hand, the dq coordinate system is a fixed coordinate system.
[0020] The speed commander 101 generates a speed command value ω based on a predetermined speed profile, for example. * The speed controller 102 generates the speed command value ω * and the value of the rotational speed ω from the rotation angle / speed estimator 107, the speed controller 102 performs, for example, PI (proportional-integral) control. * Generate.
[0021] The adder 109 calculates the q-axis current command value Iq from the speed controller 102. * and the q-axis current command value Iq from the torque vibration compensator 108. ** The sum is used as the q-axis current command value Iq *** The torque vibration compensator 108 outputs, for example, a speed command value ω * and the value of the rotational speed ω from the rotation angle / speed estimator 107, a torque compensation value for suppressing torque vibration is calculated as a q-axis current command value Iq ** Generate it as:
[0022] The current controller 103 receives the q-axis current command value Iq from the adder 109. *** and the d-axis current command value Id * Input the d-axis current command value Id * is fixed to zero, for example. * may be generated based on the flux-weakening control or the maximum torque per ampere control. * and the q-axis current command value Iq *** and the d-axis current Id and the q-axis current Iq from the 3-axis / 2-axis converter 106. Based on this, the current controller 103 performs PI control or the like. * and the q-axis voltage command value Vq * Generate.
[0023] The 2-axis / 3-axis converter 104 converts the d-axis voltage command value Vd* and the q-axis voltage command value Vq * and the rotation angle θ from the rotation angle / speed estimator 107. At this time, the rotation angle θ may be corrected in consideration of the rotation of the motor MT. The 2-axis / 3-axis converter 104 performs an inverse Park transformation and an inverse Clarke transformation using the rotation angle θ to derive a d-axis voltage command value Vd * and the q-axis voltage command value Vq * is the three-phase voltage command value Vu * ,Vv * ,Vw * The PWM signal modulator 105 converts the three-phase voltage command value Vu * ,Vv * ,Vw * are converted into three-phase duty ratio command values Du, Dv, Dw and output to the PWM signal generator PWMG.
[0024] The rotation angle / speed estimator 107 calculates the d-axis current Id and the q-axis current Iq from the 3-axis / 2-axis converter 106 and the d-axis voltage command value Vd from the current controller 103. * and the q-axis voltage command value Vq * and are input. Rotation angle / speed estimator 107 calculates the d-axis and q-axis induced voltages based on these input values and a predetermined state equation of the motor. Then, rotation angle / speed estimator 107 calculates, in other words, estimates or detects, the rotation angle θ based on the calculated d-axis and q-axis induced voltages. Furthermore, rotation angle / speed estimator 107 calculates the rotation speed ω by performing a differential operation on the rotation angle θ. However, rotation angle / speed estimator 107 may calculate the magnetic flux instead of the induced voltage to calculate the rotation angle θ.
[0025] FIG. 2 illustrates a motor controller 100 that performs sensorless vector control. However, the motor controller 100 may also perform sensor-equipped vector control. In this case, a position / speed sensor is installed in the motor MT instead of the rotation angle / speed estimator 107. The position / speed sensor is, for example, a rotary encoder that detects the rotation angle θ and the rotation speed ω. Here, the motor controller 100 is implemented by program processing using a processor PRC. However, the motor controller 100 is not limited to the processor PRC, and may be implemented using, for example, an FPGA (Field Programmable Gate Array). In other words, the semiconductor device 10 shown in FIG. 1 may be an FPGA or the like.
[0026] <About torque vibration> FIG. 3 is a schematic diagram illustrating an example of torque vibration. For example, in FIGS. 1 and 2, when torque is applied to the motor MT as a disturbance, the rotational speed ω of the motor MT vibrates. This type of vibration is called torque vibration. As a specific example, as shown in FIG. 3, a compressor motor installed in an air conditioner sequentially compresses and expands the refrigerant within a period in which the motor MT, more specifically, the rotor, rotates through a mechanical angle of 360 degrees. This causes the load torque to fluctuate. Torque vibration can then occur due to the difference between the load torque and the output torque.
[0027] This torque vibration occurs periodically depending on the rotational angle (mechanical angle) of the motor MT, in other words, the magnetic pole position, and causes the rotational speed ω of the motor MT to fluctuate. Furthermore, the frequency of this torque vibration is synchronized with the rotational speed ω of the motor MT. Therefore, low-frequency torque vibration occurs at low speeds. In particular, low-frequency torque vibration can cause noise and shorten the lifespan of the motor system. For this reason, it is desirable to suppress torque vibration.
[0028] <Details of the torque vibration compensator> Fig. 4 is a block diagram showing an example configuration of the torque vibration compensator 108 shown in Fig. 2 in the semiconductor device according to the first embodiment. The torque vibration compensator 108a shown in Fig. 4 includes a rotation angle converter 120, a vibration component extractor 121, a compensation value table update circuit 122, a complementary function generation circuit 123, and a compensation value calculation circuit 124. The complementary function generation circuit 123 and the compensation value calculation circuit 124 form a compensation value complementary circuit 125a. The torque vibration compensator 108a also stores a compensation value table CTBL in a memory MEM, specifically a RAM.
[0029] The rotation angle converter 120 converts the rotation angle θ as an electrical angle from the rotation angle / speed estimator 107 shown in Fig. 2 into a rotation angle θm as a mechanical angle based on the number of poles of the motor MT. In this example, the vibration component extractor 121 converts the speed command value ω * and the value of the rotational speed ω from the rotational angle / speed estimator 107. The vibration component extractor 121 then calculates the update amount UA of the torque compensation value for each rotational angle θm that is required to suppress the extracted torque vibration component.
[0030] In detail, the vibration component extractor 121 may be configured by, for example, a Fourier transformer FT, an inverse Fourier transformer IFT, and a multiplier that multiplies the compensation value gain k1. * The speed deviation obtained by inputting the values of ω and ω as positive and negative polarities is then Fourier transformed. This allows the Fourier transformer FT to calculate frequency domain data, i.e., amplitude, frequency, and phase, related to the offset components for canceling out the remaining torque vibration components.
[0031] The Fourier transformer FT is not limited to such a speed deviation, and may also perform a Fourier transform on a detection signal from an acceleration sensor or the like pre-installed on the motor MT, for example. However, in this case, an acceleration sensor or the like is required. Therefore, from the viewpoint of cost reduction and the like, it is possible to use an existing speed command value ω *In addition, from the viewpoint of efficiency improvement by utilizing the rotational speed ω, it is preferable to use the speed deviation.
[0032] The inverse Fourier transformer IFT generates time-domain data of the cancellation component by performing an inverse Fourier transform on the frequency-domain data of the cancellation component obtained by the Fourier transformer FT. The inverse Fourier transformer IFT then discretizes the time-domain data of the cancellation component for each rotation angle θm at a predetermined interval to generate a cancellation value CV for each rotation angle θm, which is a discrete value. The vibration component extractor 121 multiplies the cancellation value CV by a compensation gain k1 to generate an update amount UA for each rotation angle θm, which is a discrete value.
[0033] The compensation value table update circuit 122 is configured with, for example, an integrator. The compensation value table update circuit 122 calculates the torque compensation value TCV for each rotation angle θm by integrating the update amount UA for each rotation angle θm from the vibration component extractor 121. In detail, the compensation value table update circuit 122 performs such integration using a compensation value table CTBL as shown in FIG.
[0034] FIG. 5 is a schematic diagram showing an example of the general operation of the vibration component extractor 121 and the compensation value table update circuit 122 in FIG. 4. In FIG. 5, the compensation value table CTBL registers the rotation angle θm, which is a discrete value, i.e., the torque compensation value TCV for each mechanical angle, which is a discrete value. In the specification, the discretized rotation angle of the motor MT registered in the compensation value table CTBL is also referred to as the discretized rotation angle θm. In this example, the discretized rotation angle θm is represented by 64 indexes IDX[0], [1], ...,
[63] , which correspond to one rotation. In this case, the rotation angle θm between adjacent indexes IDX, i.e., the resolution, is 5.625 (=360 / 64) [deg].
[0035] As a result, for example, the discretized rotation angles θm corresponding to the first index IDX[0] and the last index IDX
[63] are 0 [deg] and 354.375 [deg], respectively. Here, since repeated control is performed at a mechanical angle cycle of 360 [deg], the index IDX next to the last index IDX
[63] returns to the first index IDX[0]. The compensation value table update circuit 122 updates this compensation value table CTBL based on the update amount UA from the vibration component extractor 121. In this way, the compensation value table CTBL is updated through learning.
[0036] In detail, the vibration component extractor 121 outputs the update amount UA, for example, each time the rotation angle θm of the motor MT reaches the discretized rotation angle θm. As a specific example, assume that the rotation angle θm reaches the discretized rotation angle θm corresponding to the index IDX[2], i.e., 11.25 [deg], at the start of learning shown in Fig. 5. In this case, the vibration component extractor 121 multiplies the offset value CV[2] at 11.25 [deg] based on the inverse Fourier transformer IFT by the compensation value gain k1, and outputs the update amount UA[2] of "0.01."
[0037] In response to this, the compensation value table update circuit 122 adds the update amount UA[2] of "0.01" to the current torque compensation value TCV of "0.0" at index IDX[2] in the compensation value table CTBL. The same processing as for index IDX[2] is performed for the subsequent indexes IDX[3], [4], .... In this way, the compensation value table update circuit 122 updates the compensation value table CTBL by integrating the update amount UA for each discretized rotation angle θm for each discretized rotation angle θm, i.e., for each index IDX.
[0038] Here, the q-axis current command value Iq shown in Fig. 2 **As will be described in detail later, is determined based on the torque compensation value TCV registered in the compensation value table CTBL. As a result, the torque compensation value TCV is reflected in the PWM signal Gpwm, which is the motor control signal. Furthermore, the update amount UA or the offset value CV from the vibration component extractor 121 essentially represents a value for suppressing or offsetting the torque vibration component that still remains when the current torque compensation value TCV is applied. Therefore, as shown in FIG. 5, the offset value CV decreases as learning of the compensation value table CTBL progresses and the suppression of the torque vibration component progresses accordingly. Accordingly, the torque compensation value TCV registered in the compensation value table CTBL converges to a predetermined value.
[0039] <<About the method of the comparative example>> Fig. 17 is a block diagram showing an example of the configuration of a torque vibration compensator 108c according to a comparative example. Fig. 18 is a diagram showing an example of the torque compensation value TCV generated by the torque vibration compensator 108c shown in Fig. 17. Fig. 19 is a schematic diagram showing a specific example of the operation of the compensation value table reading circuit 130 shown in Fig. 17. The torque vibration compensator 108c shown in Fig. 17 includes the compensation value table reading circuit 130 instead of the compensation value interpolation circuit 125a shown in Fig. 4.
[0040] The compensation value table read circuit 130 refers to the compensation value table CTBL based on the rotation angle θm from the rotation angle converter 120, and calculates the corresponding torque compensation value TCV from the q-axis current command value Iq ** 18, when a rotation angle θm located between adjacent indexes IDX is input, the compensation value table readout circuit 130 outputs the torque compensation value TCV at the immediately preceding index IDX as is. In other words, when a rotation angle θm located between the previous index IDX[n] and the next index IDX[n+1] is input, the compensation value table readout circuit 130 outputs the torque compensation value TCV at the previous index IDX[n] as is.
[0041] As a specific example, in case (1) shown in Figure 19, 64 indexes IDX are provided in the compensation value table CTBL. Accordingly, the resolution of the discretized rotation angle θm is 5.625 [deg]. Furthermore, for example, if the torque compensation value TCV is expressed as a "float" type digital value, i.e., 4 bytes, the required memory capacity is 256 bytes (= 4 bytes × 64). Based on this compensation value table CTBL, when the compensation value table readout circuit 130 receives a rotation angle θm of 5.625 [deg] from the rotation angle converter 120, it outputs "0.01", which is the torque compensation value TCV at index IDX[1].
[0042] On the other hand, in case (2), 32 indexes IDX are provided in the compensation value table CTBL. Accordingly, the resolution of the discretized rotation angle θm is 11.25 [deg]. Furthermore, the required memory capacity is 128 bytes (= 4 bytes × 32). Based on this compensation value table CTBL, when the compensation value table readout circuit 130 receives a rotation angle θm of 5.625 [deg] from the rotation angle converter 120, it outputs "0.00", which is the torque compensation value TCV at index IDX[0]. However, it is desirable that the torque compensation value TCV be "0.01".
[0043] For example, when the configuration shown in FIG. 17 is used, the torque compensation value TCV for each discretized rotation angle θm is converted into the q-axis current command value Iq ** , and by reflecting this in the motor control signal, it is possible to suppress torque oscillations caused by periodic disturbances as shown in Fig. 3. However, with the configuration shown in Fig. 17, as can be seen from Fig. 19, it may be difficult to reduce memory usage while suppressing torque oscillations with high precision.
[0044] More specifically, the compensation value table CTBL is not limited to one, but is provided in the number equal to the number of frequency components whose torque vibrations are to be suppressed. Each compensation value table CTBL requires as many digital values representing the torque compensation value TCV as the number of indexes IDX corresponding to the discretized rotation angle θm. As a result, the memory capacity used, i.e., the RAM capacity used, is determined by (a) the number of compensation value tables CTBL, (b) the resolution, i.e., the data type, of the digital values representing each torque compensation value TCV, and (c) the number of indexes IDX.
[0045] In order to suppress torque vibration with high precision, it is necessary to increase at least one of (a), (b), and (c). Among these, it is particularly useful to increase (c), the number of indexes IDX, in order to reduce the step-like difference in the characteristic as shown in FIG. 18. However, for example, if the memory capacity itself mounted on the semiconductor device 10 is limited, it is not easy to increase (c), and it is also not easy to increase (a) or (b).
[0046] <<About the implementation method>> [Compensation value interpolation circuit details] 4 includes a compensation value interpolation circuit 125a, i.e., an interpolation function generation circuit 123 and a compensation value calculation circuit 124. The compensation value interpolation circuit 125a calculates a torque compensation value TCV for each arbitrary rotation angle θm of the motor MT using a compensation value table CTBL and an interpolation function. The compensation value interpolation circuit 125a then reflects the calculated torque compensation value TCV in a motor control signal, such as a PWM signal Gpwm.
[0047] In detail, the complementary function generation circuit 123 performs polynomial approximation using as input the torque compensation value TCV for each discretized rotation angle θm registered in the compensation value table CTBL. As a result, the complementary function generation circuit 123 generates a polynomial that represents the relationship between the discretized rotation angle θm and the torque compensation value TCV as a complementary function. The compensation value calculation circuit 124 calculates the torque compensation value TCV for each arbitrary rotation angle θm from the rotation angle converter 120 based on the polynomial generated by the complementary function generation circuit 123. As a result, the torque compensation value TCV becomes an approximate value calculated using the complementary function.
[0048] Specifically, the polynomial obtained by polynomial approximation of the compensation value table CTBL is expressed by equation (1) using matrix A obtained from the rotation angle "i", polynomial coefficient "x", and "y" representing the torque compensation value TCV. For example, when a fourth-order polynomial is used, the polynomial is expressed by equation (2). In this case, "y" representing the torque compensation value TCV is expressed by equation (3).
[0049]
number
[0050]
number
[0051]
number
[0052] Fig. 6 is a diagram illustrating an example of the operation of the interpolation function generation circuit 123 in Fig. 4. Fig. 6 shows a state in which the torque compensation value TCV[1] at index IDX[1] in the compensation value table CTBL has been updated from "1.0" to "1.01" based on the update amount UA[1], similar to the case in Fig. 5. However, the compensation value table CTBL has five, i.e., "k+1", indexes IDX[0]-IDX[4] according to a fourth-order, i.e., k-th-order polynomial. In this case, the resolution of the discretized rotation angle θm is 72[deg].
[0053] In equation (2), the values of i0, i1, ..., i4 constituting matrix A are 0, 72, ..., 288 [deg], which are the discretized rotation angle θm, as shown in FIG. 6. However, the values of i0, i1, ..., i4 may also be 0, 1, ..., 4, which are the values of index IDX. In other words, the value of index IDX is also a normalized value of the discretized rotation angle θm. Therefore, either the value of discretized rotation angle θm or the value of index IDX may be used. Furthermore, the values of y0, y1, ..., y4 representing the torque compensation value TCV are -0.5, 1.01, ..., -0.7, respectively, in the example shown in FIG. 6.
[0054] The complementary function generating circuit 123 performs polynomial approximation every time the rotation angle θm of the motor MT reaches the discretized rotation angle θm and the compensation value table CTBL is updated as shown in Fig. 6. Specifically, the complementary function generating circuit 123 calculates and updates the polynomial coefficients x = (a, b, c, d, e) in equations (2) and (3). The polynomial coefficients x = (a, b, c, d, e) are calculated by the inverse matrix A -1 It can be calculated using equation (4).
[0055]
number
[0056] In equation (4), the inverse matrix A -1The value of "y" is known. The value of "y", which is the torque compensation value TCV, is a value that is updated sequentially. Therefore, for example, in the case of a fourth-order polynomial, the complementary function generation circuit 123 calculates the five polynomial coefficients x=(a, b, c, d, e) by solving five simultaneous linear equations, each of which includes five polynomial coefficients x=(a, b, c, d, e). In this case, the complementary function generation circuit 123 may calculate the five polynomial coefficients x=(a, b, c, d, e) using a commonly known method for solving simultaneous linear equations.
[0057] For example, direct and indirect methods are known for solving simultaneous linear equations. Direct methods include Gauss elimination and LU decomposition. Indirect methods include Gauss-Seidel, Jacobi, and conjugate gradient methods. For example, LU decomposition is a method of decomposing a square matrix, matrix A, into the product of matrix "L" and matrix "U" and then performing an operation. Matrix "L" is a lower triangular matrix or a left triangular matrix. Matrix "U" is an upper triangular matrix or a right triangular matrix.
[0058] Here, as described in FIG. 5, the torque compensation value TCV is updated by learning, and converges to a predetermined value as the learning progresses, i.e., as the suppression of torque vibration progresses. Accordingly, the values of the polynomial coefficients x=(a, b, c, d, e) are also updated by indirect learning, and converge to a predetermined value as the learning progresses. The compensation value calculation circuit 124 inputs an arbitrary rotation angle θm from the rotation angle converter 120, and calculates the torque compensation value TCV at the rotation angle θm based on the fourth-order polynomial generated by the interpolation function generation circuit 123. Then, the compensation value calculation circuit 124 multiplies the calculated torque compensation value TCV by the q-axis current command value Iq in FIG. 2. ** Output as
[0059] [On the boundary value extension method for polynomial approximation] Fig. 7 is a diagram illustrating the boundary value extension method of polynomial approximation performed by the completion function generation circuit 123 in Fig. 4. For example, as shown in the upper part of Fig. 7, assume that a compensation value table CTBL1 is used, which consists of five indexes IDX[0]-IDX[4] with a resolution of 72 [deg], and the final index IDX[4] is 288 [deg]. In this case, the completion function generation circuit 123 generates a fourth-order polynomial based on the compensation value table CTBL1 by solving five simultaneous linear equations associated with the five indexes IDX.
[0060] However, in this case, the torque compensation value TCV obtained by substituting a rotation angle θm of 360 degrees into the fourth-order polynomial may differ from the torque compensation value TCV obtained by substituting a rotation angle θm of 0 degrees into the fourth-order polynomial. That is, a discontinuity may occur in the torque compensation value TCV at a rotation angle θm of 0 degrees (=360 degrees). In this case, a large change may occur between the torque compensation value TCV output based on the polynomial when the rotation angle θm is 359 degrees and the torque compensation value TCV output immediately thereafter when the rotation angle θm returns to 0 degrees. This change may hinder the torque vibration suppression effect.
[0061] 7, the complementary function generation circuit 123 adds an index IDX[5] corresponding to the discretized rotation angle θm of 360 [deg] to the compensation value table CTBL2 while maintaining the resolution of the compensation value table CTBL1. Then, the complementary function generation circuit 123 sets the torque compensation value TCV at 360 [deg] to the same value as the torque compensation value TCV at 0 [deg]. In other words, when updating the torque compensation value TCV at 0 [deg], the complementary function generation circuit 123 also updates the torque compensation value TCV at 360 [deg] to the same value as the value at 0 [deg].
[0062] The complementary function generation circuit 123 then performs polynomial approximation on the compensation value table CTBL2 expanded in this manner. That is, in this example, the complementary function generation circuit 123 generates a fifth-order polynomial by solving six simultaneous linear equations. As a result, as shown in FIG. 7, a discontinuous point does not occur at the rotation angle θm of 0 [deg] (= 360 [deg]). This improves the torque vibration suppression effect. As an example of verification results, the vibration suppression effect without boundary value expansion was approximately 96.9%, while the vibration suppression effect with boundary value expansion was approximately 98.2%.
[0063] [Specific example of operation of the compensation value interpolation circuit] Fig. 8 is a schematic diagram showing a specific example of the operation of the compensation value interpolation circuit 125a shown in Fig. 4. In Fig. 8, six indexes IDX are provided in the compensation value table CTBL using the boundary value extension method described above. Accordingly, the resolution of the discretized rotation angle θm is 72 [deg]. Furthermore, as in the case of Fig. 19, if the torque compensation value TCV is expressed as a 4-byte digital value, the required memory usage capacity is 24 bytes (= 4 bytes × 6).
[0064] The complementary function generation circuit 123 performs polynomial approximation on the compensation value table CTBL. As a result, the complementary function generation circuit 123 calculates six polynomial coefficients x=(a, b, c, d, e, f) and generates a fifth-order polynomial y(i) including the six polynomial coefficients x. In this example, a rotation angle θm of 5.625 [deg] is input from the rotation angle converter 120. In this case, the complementary function generation circuit 123 performs polynomial approximation on the compensation value table CTBL updated at the time of index IDX[0].
[0065] The compensation value calculation circuit 124 inputs the rotation angle θm of 5.625 [deg] and substitutes 5.625 [deg] for the variable "i" of the fifth-order polynomial y(i) generated by the interpolation function generation circuit 123. As a result, the compensation value calculation circuit 124 calculates "0.01", which is the torque compensation value TCV (= y(5.625)) at 5.625 [deg]. Note that in this example, the rotation angle θm is used as the variable "i", but as mentioned above, the value of the index IDX may also be used. In this case, "5.625 / 72" should be substituted for the variable "i".
[0066] <About advance compensation> 8 etc., for the sake of simplicity, the compensation value calculation circuit 124 receives the rotation angle θm, calculates the torque compensation value TCV at the input rotation angle θm, and outputs it. However, in order to reflect the torque compensation value TCV determined in the compensation value table CTBL in the control of the motor MT with higher accuracy, it is more desirable to take control delay into consideration.
[0067] For example, assume that the compensation value calculation circuit 124 inputs a rotation angle θm[t] at a certain time point [t] and outputs a torque compensation value TCV[t] at the input rotation angle θm[t]. In this case, when the torque compensation value TCV[t] is reflected in the motor MT, the actual rotation angle θm of the motor MT is ahead of the rotation angle θm[t]. Therefore, it is desirable for the compensation value calculation circuit 124 to perform lead compensation to compensate for such control delay. As a specific example, when a certain rotation angle θm, for example 5 [deg], is input, the compensation value calculation circuit 124 calculates and outputs a torque compensation value TCV at a rotation angle θm that is ahead of the input rotation angle θm by a predetermined angle, for example 10 [deg].
[0068] <About the verification results> 9A is a diagram showing an example of the results of verifying the vibration suppression effect by applying the method of the first embodiment shown in FIG. 4. FIG. 9B is a diagram showing an example of the results of verifying the vibration suppression effect by applying the method of the comparative example shown in FIG. 17. In FIGS. 9A and 9B, the speed command value ω *9A shows the time-series transitions of the actual rotation speed ω of the motor MT and the torque compensation value TCV. Additionally, FIG. 9A also shows the time-series transitions of six polynomial coefficients (af).
[0069] Here, the number of indexes IDX in the compensation value table CTBL is six in both Figures 9A and 9B. That is, the memory usage capacity is the same in both Figures 9A and 9B. Specifically, Figure 9A uses the compensation value table CTBL2 shown in the lower part of Figure 7. On the other hand, Figure 9B uses a compensation value table CTBL in which the resolution of the discretized rotation angle θm is 60 [deg] (=360 [deg] / 6). In Figures 9A and 9B, a torque vibration component due to a disturbance, that is, a vibration component synchronized with the rotation speed ω, is applied at time t1, and the suppression effect is verified.
[0070] First, in the comparative example shown in Fig. 9B, when the magnitude of the vibration component at the time when the torque vibration suppression converges is compared with the magnitude of the vibration component at the same time when torque vibration suppression is not performed, a vibration suppression effect of approximately 75.1% is obtained. However, the amplitude of the torque compensation value TCV fluctuates greatly. In other words, the torque compensation value TCV is either too large or too small. The case where torque vibration suppression is not performed refers to the case where the torque vibration compensator 108 shown in Fig. 2 is not provided.
[0071] On the other hand, in the method of the first embodiment shown in FIG. 9A, when the magnitude of the vibration component at the time when the suppression of torque vibration has converged is compared with the magnitude of the vibration component at the same time when torque vibration suppression is not performed, a vibration suppression effect of approximately 98.2% is obtained. That is, compared to the method of the comparative example, torque vibration is suppressed with high accuracy while memory usage is reduced. Furthermore, the amplitude of the torque compensation value TCV is almost constant. That is, an appropriate torque compensation value TCV that is neither too large nor too small is obtained. Furthermore, the polynomial coefficient (af) converges to a predetermined value as the suppression of torque vibration progresses.
[0072] Fig. 10 is a schematic diagram comparing the torque compensation value TCV when the methods of the comparative example and the first embodiment are used. In Fig. 10, the method of the comparative example generates a stepped value as the torque compensation value TCV for suppressing or canceling the torque vibration component. On the other hand, the method of the first embodiment can generate a smooth value as the torque compensation value TCV.
[0073] <Configuration of vibration component extractor> Fig. 11 is a block diagram showing a schematic configuration example of the main parts of the vibration component extractor 121 in Fig. 4. In the example shown in Fig. 4, the vibration component extractor 121 is configured using a Fourier transformer FT and an inverse Fourier transformer IFT, but instead, it may be configured using a tracking filter as shown in Fig. 11. The tracking filter has the function of extracting specific frequency components from the input signal IN(t), in this case only components synchronized with the rotational speed ω of the motor MT, and outputting the extracted signal as the output signal OUT(t).
[0074] The tracking filter shown in FIG. 11 includes, for example, a rotating coordinate converter 135, low-pass filters LPF1 and LPF2, and a fixed coordinate converter 136. The rotating coordinate converter 135 converts the input signal IN(t) into a signal in rotating coordinates that is synchronized with the rotation speed ω. The low-pass filters LPF1 and LPF2 extract a DC component from the signal converted into the rotating coordinates and remove high-frequency components. The fixed coordinate converter 136 converts the extracted DC component back into a signal in fixed coordinates. This results in an output signal OUT(t) that is composed only of components that are synchronized with the rotation speed ω.
[0075] By applying such a tracking filter to the vibration component extractor 121 shown in Fig. 2, it is possible to extract a torque vibration component having a speed synchronized with the rotational speed ω of the motor MT, and in turn, a cancellation component for canceling out the torque vibration component. In this case, the torque vibration component can be extracted with a simpler configuration than when a Fourier transformer IF and an inverse Fourier transformer IFT are used. As a result, the processing load is reduced, and the time required to extract the torque vibration component can also be shortened.
[0076] <Major Effects of the First Embodiment> As described above, the method of the first embodiment includes a compensation value interpolation circuit 125a that calculates the torque compensation value TCV for each arbitrary rotation angle θm of the motor MT using the compensation value table CTBL and an interpolation function. A polynomial based on polynomial approximation is used as the interpolation function. This typically enables torque vibration to be suppressed with high precision while reducing memory usage. Specifically, even if the resolution of the discretized rotation angle θm is reduced, a sufficient vibration suppression effect can be obtained. As a result, torque vibration can be suppressed with high precision even when, for example, a low-cost microcontroller with a small memory capacity is used.
[0077] (Second embodiment) <Details of the torque vibration compensator> Fig. 12 is a block diagram showing an example of the configuration of the torque vibration compensator 108 shown in Fig. 2 in a semiconductor device according to the second embodiment. The torque vibration compensator 108b shown in Fig. 12 differs from the example configuration shown in Fig. 4 in the configuration of the compensation value interpolation circuit 125b. As in the case of Fig. 4, the compensation value interpolation circuit 125b calculates the torque compensation value TCV for each arbitrary rotation angle θm of the motor MT using the compensation value table CTBL and an interpolation function. However, unlike the case of Fig. 4, the compensation value interpolation circuit 125b includes an interpolation function calculation circuit 140.
[0078] The interpolation function calculation circuit 140 calculates the torque compensation value TCV using a predetermined linear interpolation function or quadratic interpolation function as the interpolation function. That is, the interpolation function calculation circuit 140 interpolates the torque compensation value TCV at a rotation angle θ located between adjacent discretized rotation angles θm using the torque compensation values TCV at the adjacent discretized rotation angles based on the linear interpolation function or quadratic interpolation function. As a result, the torque compensation value TCV at a rotation angle θ located between adjacent discretized rotation angles θm becomes an approximate value calculated using the interpolation function.
[0079] More specifically, when a linear interpolation function is used, the complementary function calculation circuit 140 calculates the torque compensation value TCV at the target rotation angle θm based on equation (5). When a quadratic interpolation function is used, the complementary function calculation circuit 140 calculates the torque compensation value TCV at the target rotation angle θm based on equation (6).
[0080]
number
[0081]
number
[0082] In equations (5) and (6), u(x i ) is the discretized rotation angle θm corresponding to the index IDX[i]. i Δx is the angle difference [rad] between adjacent indexes IDX, i.e., between adjacent discretized rotation angles θm, and is also the resolution of the discretized rotation angle θm. (xx i ) is the same as the "x i " is the lead angle [rad] of "x", which is the target rotation angle θm, based on ". Note that here, the value of the rotation angle θm is used as the variable "x", but as described in the first embodiment, the value of the index IDX may also be used.
[0083] Fig. 13A is a diagram showing an example of the torque compensation value TCV calculated when a linear interpolation function is used in the complementary function calculation circuit 140 shown in Fig. 12. Fig. 13B is a diagram showing an example of the torque compensation value TCV calculated when a quadratic interpolation function is used in the complementary function calculation circuit 140 shown in Fig. 12.
[0084] As shown in FIGS. 13A and 13B, the torque compensation value TCV at a rotation angle θm located between adjacent discretized rotation angles θm is interpolated based on equation (5) or equation (6). Furthermore, the torque compensation value TCV is interpolated more smoothly using a quadratic interpolation function than a linear interpolation function. Generally, torque vibration can be suppressed more accurately by using a higher-order interpolation function. However, using a higher-order interpolation function increases the amount of calculation.
[0085] <Specific operation example of the compensation value interpolation circuit> Fig. 14 is a schematic diagram showing a specific example of the operation of the compensation value interpolation circuit 125b shown in Fig. 12. In Fig. 14, 32 indexes IDX are provided in the compensation value table CTBL. Accordingly, the resolution of the discretized rotation angle θm is 11.25 [deg] (=360 [deg] / 32). Furthermore, as in the case of Fig. 19, if the torque compensation value TCV is expressed as a 4-byte digital value, the required memory usage capacity is 128 bytes (=4 bytes × 32).
[0086] In this example, the compensation value interpolation circuit 125b, i.e., the interpolation function calculation circuit 140, receives the rotation angle θm of 5.625 [deg] from the rotation angle converter 120. In this case, the interpolation function calculation circuit 140 obtains the torque compensation values TCV[0] and TCV[1] at the indexes IDX[0] and IDX[1] corresponding to the discretized rotation angles θm of 0 [deg] and 11.25 [deg], respectively, from the compensation value table CTBL.
[0087] Then, in this example, the complementary function calculation circuit 140 calculates the linear interpolation function shown in equation (5) using the acquired torque compensation values TCV[0] and TCV[1], u(0) (=0.00) and u(11.25) (=0.02). As a result, the complementary function calculation circuit 140 calculates "0.01" as the torque compensation value TCV at a rotation angle θm of 5.625 [deg]. More strictly, it is desirable that the complementary function calculation circuit 140 perform lead compensation, as described in the first embodiment.
[0088] <About the verification results> 15 is a diagram showing an example of the results of verifying the vibration suppression effect by applying the method of the second embodiment shown in FIG. 12. In FIG. 15, similarly to the cases of FIGS. 9A and 9B, the speed command value ω * , the actual rotational speed ω of the motor MT, and the time-series transition of the torque compensation value TCV are shown. Also, here, as in the cases of FIGS. 9A and 9B, the number of indexes IDX in the compensation value table CTBL is six. That is, the memory usage capacity is the same as in the cases of FIGS. 9A and 9B. Also, the interpolation function used is a linear interpolation function.
[0089] In FIG. 15, a torque vibration component due to a disturbance, i.e., a vibration component synchronized with the rotational speed ω, is applied at time t1, and its suppression effect is verified. As a result, when the magnitude of the vibration component at the time when the torque vibration suppression converges is compared with the magnitude of the vibration component at the same time when torque vibration suppression is not performed, a vibration suppression effect of approximately 96.9% is obtained. In other words, compared to the comparative example method shown in FIG. 9B, torque vibration is suppressed with high precision while reducing memory usage. Furthermore, the amplitude of the torque compensation value TCV is approximately constant. In other words, an appropriate torque compensation value TCV that is neither too large nor too small is obtained.
[0090] Fig. 16 is a diagram showing an example of the results of a comparison of the vibration suppression effect versus memory usage capacity in the methods of the first embodiment, the second embodiment, and a comparative example. As shown in Fig. 16, the vibration suppression effect when the method of the second embodiment is used and the size of the compensation value table CTBL is 1024 bytes is almost the same as the vibration suppression effect when the method of the first embodiment is used and the size of the compensation value table CTBL is 24 bytes.
[0091] As described above, by using the method of the first embodiment, it is possible to obtain the same level of vibration suppression effect with less memory usage compared to the method of the second embodiment. However, the method of the first embodiment requires a larger amount of calculation due to polynomial approximation, i.e., the calculation of simultaneous linear equations, compared to the method of the second embodiment. In other words, the calculation may take a long time. Therefore, it is recommended to select the method of the first embodiment or the method of the second embodiment depending on, for example, the memory capacity and processing power of the semiconductor device 10.
[0092] <Major Effects of the Second Embodiment> As described above, the method of the second embodiment can also achieve the same effects as those described in the first embodiment. That is, typically, it is possible to reduce memory usage while suppressing torque vibration with high accuracy. Furthermore, compared to the method of the first embodiment, although memory usage may increase, it is possible to reduce the processing load associated with calculating the torque compensation value TCV. As a result, it is possible to suppress torque vibration with high accuracy even when using, for example, a low-cost microcontroller with low processing power.
[0093] The invention made by the inventor has been specifically described above based on the embodiments, but the present invention is not limited to the above embodiments and can be modified in various ways without departing from the spirit of the invention. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to those including all of the described configurations. Furthermore, it is possible to replace part of the configuration of one embodiment with the configuration of another embodiment, or to add the configuration of another embodiment to the configuration of one embodiment. Furthermore, it is possible to add, delete, or replace part of the configuration of each embodiment with other configurations.
[0094] Furthermore, each unit is typically implemented by program processing using a CPU (Central Processing Unit). That is, each unit is implemented on the CPU by the CPU executing a program stored in memory. However, the implementation form of each unit is not limited to this software, and may be hardware such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit), or may be a combination of software and hardware.
[0095] The above-mentioned program may be stored in a non-transitory, tangible, computer-readable recording medium and then supplied to a computer. Examples of such a recording medium include magnetic recording media such as hard disk drives, optical recording media such as DVDs (Digital Versatile Discs) and Blu-ray Discs, and semiconductor memories such as flash memories and SSDs (Solid State Drives). [Explanation of symbols]
[0096] 10 Semiconductor devices 20 Inverter 108, 108a, 108b Torque vibration compensator 121 Vibration component extractor 122 Compensation value table update circuit 123 Complementary Function Generator 124 Compensation value calculation circuit 125a, 125b Compensation value interpolation circuit 140 Complementary Function Calculation Circuit CTBL Compensation Value Table Gpwm PWM signal (motor control signal) MEM memory MT motor PRC Processor PWMG PWM signal generator TCV Torque Compensation Value θm rotation angle ω rotation speed ω * Speed command value
Claims
1. A semiconductor device that outputs a motor control signal to an inverter that supplies power to a motor and controls the motor via the inverter, A memory that stores a program; a processor that executes the program stored in the memory; Equipped with the memory further stores a compensation value table in which a compensation value for each discretized rotation angle, which is the discretized rotation angle of the motor, is registered; The processor, based on the program, (a) extracting a vibration component based on a speed deviation between a preset speed command value and a value of the rotation speed of the motor, and calculating an update amount for each of the discretized rotation angles required to suppress the vibration component; (b) updating the compensation value table based on the update amount for each discretized rotation angle; (c) calculating the compensation value for each arbitrary rotation angle of the motor using the compensation value table and an interpolation function, and reflecting the calculated compensation value in the motor control signal; Semiconductor device.
2. 2. The semiconductor device according to claim 1, the compensation value is an approximate value calculated using the interpolation function. Semiconductor device.
3. 2. The semiconductor device according to claim 1, the processor performs polynomial approximation using the compensation value for each discretized rotation angle registered in the compensation value table as an input, to generate a polynomial representing a relationship between the discretized rotation angle and the compensation value as the interpolation function, and calculates the compensation value for each arbitrary rotation angle of the motor based on the polynomial. Semiconductor device.
4. 4. The semiconductor device according to claim 3, the processor performs the polynomial approximation each time the compensation value table is updated. Semiconductor device.
5. 4. The semiconductor device according to claim 3, the discretized rotation angle in the compensation value table includes 0 [deg] and 360 [deg], the processor sets the compensation value at 360 [deg] to the same value as the compensation value at 0 [deg], and performs the polynomial approximation on the compensation value table including the compensation values at 0 [deg] and 360 [deg]. Semiconductor device.
6. 2. The semiconductor device according to claim 1, the interpolation function is a linear interpolation function or a quadratic interpolation function that interpolates the compensation value at a rotation angle located between adjacent discretized rotation angles using the compensation value at the adjacent discretized rotation angles. Semiconductor device.
7. 2. The semiconductor device according to claim 1, The system further includes a PWM (Pulse Width Modulation) signal generator provided downstream of the processor, the processor generates a duty ratio command value according to the magnitude of the compensation value; the PWM signal generator generates a PWM signal based on the duty ratio command value as the motor control signal; Semiconductor device.
8. 2. The semiconductor device according to claim 1, the processor updates the compensation value table by integrating the update amount for each discretized rotation angle. Semiconductor device.
9. A semiconductor device that outputs a motor control signal to an inverter that supplies power to a motor and controls the motor via the inverter, a memory that stores a compensation value table in which a compensation value for each discretized rotation angle, which is the discretized rotation angle of the motor, is registered; a motor controller for controlling the motor; Equipped with The motor controller a vibration component extractor that extracts a vibration component based on a speed deviation between a preset speed command value and a value of the rotation speed of the motor, and calculates an update amount for each discretized rotation angle that is necessary to suppress the vibration component; a compensation value table update circuit that updates the compensation value table based on the update amount for each discretized rotation angle; a compensation value interpolation circuit that calculates the compensation value for each arbitrary rotation angle of the motor using the compensation value table and an interpolation function, and reflects the calculated compensation value in the motor control signal; having Semiconductor device.
10. 10. The semiconductor device according to claim 9, The compensation value interpolation circuit an interpolation function generation circuit that performs polynomial approximation using the compensation value for each discretized rotation angle registered in the compensation value table as an input to generate, as the interpolation function, a polynomial that represents a relationship between the discretized rotation angle and the compensation value; a compensation value calculation circuit that calculates the compensation value for each arbitrary rotation angle of the motor based on the polynomial; Equipped with Semiconductor device.
11. 10. The semiconductor device according to claim 9, the compensation value interpolation circuit includes an interpolation function calculation circuit that calculates the compensation value for each arbitrary rotation angle of the motor based on the predetermined interpolation function; the interpolation function is a linear interpolation function or a quadratic interpolation function that interpolates the compensation value at a rotation angle located between adjacent discretized rotation angles using the compensation value at the adjacent discretized rotation angles. Semiconductor device.
12. A motor control program that outputs a motor control signal to an inverter that supplies power to a motor and controls the motor via the inverter, On the computer, (a) storing in a memory a compensation value table that defines a compensation value for each discretized rotation angle, which is the discretized rotation angle of the motor; (b) extracting a vibration component based on a speed deviation between a preset speed command value and a value of the rotation speed of the motor, and calculating an update amount for each discretized rotation angle required to suppress the vibration component; (c) updating the compensation value table based on the update amount for each discretized rotation angle; (d) calculating the compensation value for each arbitrary rotation angle of the motor using the compensation value table and an interpolation function, and reflecting the calculated compensation value in the motor control signal; A motor control program for executing the above.
13. 13. The motor control program according to claim 12, the step (d) includes a step of performing polynomial approximation using the compensation value for each discretized rotation angle registered in the compensation value table as an input, thereby generating a polynomial that represents a relationship between the discretized rotation angle and the compensation value as the interpolation function, and calculating the compensation value for each arbitrary rotation angle of the motor based on the polynomial. Motor control program.
14. 14. The motor control program according to claim 13, the discretized rotation angle in the compensation value table includes 0 [deg] and 360 [deg], The step (d) includes a step of setting the compensation value at 360 [deg] to the same value as the compensation value at 0 [deg], and performing the polynomial approximation on the compensation value table including the compensation values at 0 [deg] and 360 [deg]. Motor control program.
15. 13. The motor control program according to claim 12, the interpolation function is a linear interpolation function or a quadratic interpolation function that interpolates the compensation value at a rotation angle located between adjacent discretized rotation angles using the compensation value at the adjacent discretized rotation angles. Motor control program.
Citation Information
Patent Citations
Motor controller
JP2001037287A