Motor control device, control method, and program

The motor control device stabilizes current flow and prevents voltage saturation by detecting saturation margins and adjusting target voltages, addressing the challenges of motor control systems during high-speed rotations.

WO2026150757A1PCT designated stage Publication Date: 2026-07-16PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO LTD

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO LTD
Filing Date
2025-12-18
Publication Date
2026-07-16

Smart Images

  • Figure JP2025044268_16072026_PF_FP_ABST
    Figure JP2025044268_16072026_PF_FP_ABST
Patent Text Reader

Abstract

The present invention provides a motor control device, a control method of a washing machine, and a program, which are capable of reducing a risk of voltage of a motor reaching a saturation state, and which are also capable of suppressing excess or insufficient current flowing in a magnetic flux direction of the motor. A motor control device according to the present invention includes a control unit that controls rotation of a motor. The control unit detects a saturation margin that is an index indicating a margin before voltage of the motor reaches a saturation state, adjusts a target voltage of a counter electromotive voltage of the motor on the basis of the saturation margin, and controls current flowing in a magnetic flux direction of the motor, such that the counter electromotive voltage of the motor matches the target voltage.
Need to check novelty before this filing date? Find Prior Art

Description

Motor control device, control method, and program

[0004]

[0001] The present disclosure relates to a motor control device, a control method, and a program.

[0002] Conventionally, in order to avoid the voltage of a motor from reaching a saturation state, field-weakening control for controlling the d-axis current flowing in the magnetic flux direction of the motor is known. In Patent Document 1, a d-axis current table associating the rotational speed at a reference DC voltage with a d-axis current command is referred to, and field-weakening control is performed based on the d-axis current command corresponding to the rotational speed after correction according to the difference between the reference DC voltage and the detected DC voltage.

[0003] Japanese Patent Application Laid-Open No. 2006-320105

[0004] However, in Patent Document 1, there is room for improvement in reducing the risk that the voltage of the motor reaches a saturation state and suppressing an excess or deficiency in the current flowing in the magnetic flux direction of the motor.

[0005] The present disclosure has been made to solve such problems, and provides a motor control device, a control method in a washing machine and a washing and drying machine, and a program for a washing machine and a washing and drying machine that can reduce the risk that the voltage of the motor reaches a saturation state and suppress an excess or deficiency in the current flowing in the magnetic flux direction of the motor.

[0006] A motor control device according to an aspect of the present disclosure includes a control unit that controls the rotation of a motor. The control unit detects a saturation margin, which is an index indicating a margin until the voltage of the motor reaches a saturation state, adjusts a target voltage of the back electromotive force of the motor based on the saturation margin, and controls the current flowing in the magnetic flux direction of the motor so that the back electromotive force of the motor matches the target voltage.

[0007] A control method in another aspect of the present disclosure is a control method for a washing machine and a washer-dryer, the washing machine and the washer-dryer comprising a computer for controlling the rotation of a motor, the computer including detecting a saturation margin which is an indicator of the margin until the voltage of the motor reaches a saturation state, adjusting a target voltage for the back electromotive force of the motor based on the saturation margin, and controlling the current flowing to the motor such that the back electromotive force of the motor matches the target voltage.

[0008] A program in another aspect of the present disclosure is a program for a washing machine and a washer-dryer, the washing machine and the washer-dryer comprising a computer that controls the rotation of a motor, the computer being caused to detect a saturation margin, which is an indicator of the margin until the voltage of the motor reaches a saturation state; to adjust a target voltage for the back electromotive force of the motor based on the saturation margin; and to control the current flowing through the motor so that the back electromotive force of the motor matches the target voltage.

[0009] This disclosure can reduce the risk of the motor voltage reaching a saturation state and can suppress any excess or deficiency in the current flowing in the direction of the motor's magnetic flux.

[0010] A schematic cross-sectional view of the washing machine in the embodiment. A circuit diagram showing the schematic configuration of the control device in the embodiment. A block diagram showing the detailed configuration of the control unit of the control device in the embodiment. A flowchart showing an example of the field weakening control process performed by the control unit. A diagram showing an example of the temporal changes in the motor's rotational speed, voltage coefficient, and target voltage value during the field weakening control process. A diagram showing an example of the behavior of various parameters in the field weakening control process. A diagram showing the relationship between the behavior of the voltage vector under normal conditions and the q-axis current. A diagram showing the relationship between the behavior of the voltage vector during field weakening control and the q-axis current and back electromotive force. A diagram showing an example of the temporal changes in the measured values ​​and command values ​​of the motor's rotational speed and current flowing through the motor when the motor voltage reaches a saturated state. A diagram showing an example of the temporal changes in the measured values ​​and command values ​​of the motor's rotational speed and current flowing through the motor when the motor voltage does not reach a saturated state.

[0011] (Principles of this disclosure) Conventionally, field weakening control has been used to eliminate voltage saturation in permanent magnet synchronous motors used in washing machines and washer-dryers. The outline of field weakening control will be explained below using Figures 7 and 8 and Equation (1).

[0012] Figure 7 shows the relationship between the behavior of the voltage vector V under normal conditions and the q-axis current. Figure 8 shows the relationship between the behavior of the voltage vector V, the q-axis current and the back electromotive force during field weakening control. The d-axis is the axis along the magnetic flux direction of the motor, and the d-axis current is the current flowing in the direction of the magnetic flux. The q-axis is the axis perpendicular to the d-axis and rotates relative to the magnetic flux direction, and the q-axis current is the current flowing perpendicular to the magnetic flux direction, contributing to torque generation. The voltage vector V represents the vector sum of the input voltage Vd in the d-axis direction and the input voltage Vq in the q-axis direction.

[0013] Equation (1) below is the voltage equation for the dq axis of the motor.

[0014] In equation (1), Vd and Vq represent the input voltages in the d-axis and q-axis directions, respectively. Id represents the d-axis current, and Iq represents the q-axis current. φ represents magnetic flux, ω represents rotational speed, φ・ω represents back electromotive force, R represents resistance, and L represents inductance.

[0015] When a motor is rotated at high speed, the back electromotive force φ・ω generated in the motor increases in proportion to the rotational speed ω, and most of the input voltage applied to the motor is used to compensate for this back electromotive force φ・ω. As a result, it becomes difficult to secure the voltage necessary for torque control. As shown in Figure 7, when the input voltage vector V (the vector sum of Vd and Vq) reaches the maximum allowable voltage Vmax, the motor voltage saturates. This phenomenon occurs because the input voltage vector V is consumed by the back electromotive force φ・ω and other voltage components such as the motor load.

[0016] Figure 9 shows an example of the temporal changes in the measured and commanded values ​​of the motor's rotational speed and current when the motor voltage reaches a saturated state. Figure 10 shows an example of the temporal changes in the measured and commanded values ​​of the motor's rotational speed and current when the motor voltage does not reach a saturated state. Waveforms G81 and G91 in Figures 9 and 10 show the motor's rotational speed. Waveforms G82 and G92 in Figures 9 and 10 show the commanded value of the d-axis current Id. Waveforms G83 and G93 in Figures 9 and 10 show the measured value of the d-axis current Id. Waveforms G84 and G94 in Figures 9 and 10 show the commanded value of the q-axis current Iq. Waveforms G85 and G95 in Figures 9 and 10 show the measured value of the q-axis current Iq.

[0017] As shown in Figure 9, when the motor voltage reaches a saturation state, the measured values ​​of the d-axis current Id and q-axis current Iq (waveforms G83, G85) deviate significantly from their respective command values ​​(waveforms G82, G84), with particularly severe oscillations observed in the q-axis current Iq. The measured value of the d-axis current Id (waveform G83) fails to follow the command value (waveform G82), resulting in a large negative bias. The measured value of the q-axis current Iq (waveform G85) repeatedly oscillates, indicating that the torque control becomes unstable.

[0018] In contrast, as shown in Figure 10, when the motor voltage does not reach a saturation state, the measured values ​​of the d-axis current Id and q-axis current Iq (waveforms G93, G95) follow their respective command values ​​(waveforms G92, G94) with high accuracy. The q-axis current Iq is smoothly controlled, clearly indicating that torque control is stable. Thus, it can be seen that when the motor voltage reaches a saturation state, it has a significant impact on the motor's current control, causing unstable operation, vibration, and noise.

[0019] To avoid this saturation, field weakening control has been conventionally employed. Specifically, in field weakening control, the d-axis current Id is set to negative based on equation (1), thereby reducing the magnetic flux and suppressing the back electromotive force. This creates a margin in the q-axis direction, ensuring sufficient voltage to continue torque control. In other words, as shown in Figure 8, by setting the d-axis current Id to negative, the voltage component R・Id in the d-axis direction is added, and the voltage component ω・L・Id in the q-axis direction is added, adjusting the direction of the voltage vector V. This controls the magnitude of the voltage vector V so that it does not exceed the maximum allowable voltage Vmax. Thus, field weakening control is used as a technique to avoid motor voltage saturation caused by the increase in back electromotive force during high-speed rotation.

[0020] Patent Document 1 describes correcting the detected rotational speed according to the difference between the reference DC voltage and the detected DC voltage, and performing field weakening control based on the d-axis current command corresponding to the corrected rotational speed by referring to the d-axis current table.

[0021] However, the field weakening control described in Patent Document 1 requires the effort of first considering the rotational speeds that may be used for motor control, and then determining the rotational speed and the corresponding d-axis current command to create a d-axis current table. Furthermore, since it does not consider detecting the saturation margin, which is an indicator of the margin before the motor voltage reaches a saturation state, the motor voltage may reach a saturation state due to sudden voltage fluctuations caused by load fluctuations, etc. In addition, since the number of current commands used for field weakening control is limited to the number of rotational speeds listed in the table, it is not possible to flexibly respond to fluctuations in the motor's input voltage and rotational speed, and there is a risk of excess or deficiency in the d-axis current.

[0022] Therefore, the inventors diligently studied a technique for performing field weakening control that can reduce the risk of the motor voltage reaching a saturation state without requiring prior effort, and that can suppress excess or deficiency in the d-axis current, leading to the present disclosure.

[0023] The embodiments will be described in detail below with reference to the drawings. However, unnecessary details may be omitted. For example, detailed explanations of already well-known matters or redundant explanations of substantially identical configurations may be omitted. This is to avoid the following explanation becoming unnecessarily verbose and to facilitate understanding for those skilled in the art.

[0024] Furthermore, the attached drawings and the following description are provided to enable those skilled in the art to fully understand this disclosure and are not intended to limit the subject matter described in the claims.

[0025] (Embodiment) [Overall structure of the washing machine] Figure 1 is a schematic cross-sectional view of the washing machine 100 in this embodiment. The washing machine 100 is a so-called drum-type washing machine and includes a casing 1. An operation panel 10 is provided on the upper front of the casing 1. The operation panel 10 has a display for displaying information, operation buttons for performing operations related to each washing process, an indicator for displaying the status related to each washing process, etc.

[0026] The housing 1 has an opening 4 on its front, upward-sloping surface, into which laundry is loaded. The housing 1 has a door 5 for opening and closing the opening 4. The housing 1 houses a control device 200 (motor control device) for executing one or more washing processes. One or more washing processes include a washing process in which the laundry is washed with detergent, a rinsing process in which the laundry is rinsed, and a dewatering process in which the laundry is dewatered. In the washing and rinsing processes, a washing operation is performed in which the laundry is washed while being agitated in water. In the dewatering process, a dewatering operation is performed in which water is separated from the laundry by centrifugal force.

[0027] The housing 1 includes a water tank 9. The water tank 9 stores water during the washing and rinsing processes. The water tank 9 is elastically supported by a suspension mechanism (not shown) fixed to the bottom wall of the housing 1.

[0028] A water inlet 91 is provided at the top of the peripheral wall of the water tank 9. The water inlet 91 supplies water into the water tank 9 during the washing and rinsing processes. The downstream end of the connecting pipe 82 is connected to the water inlet 91. The upstream end of the connecting pipe 82 is connected to a discharge port 94 provided in an automatic dispensing device 46 for dispensing detergent and fabric softener. The downstream end of the water injection pipe 81 is connected to a water inlet 95 provided in the automatic dispensing device 46. The upstream end of the water injection pipe 81 is connected to a water supply valve 47.

[0029] The automatic dispensing device 46 includes tanks for storing detergent and fabric softener, respectively. The automatic dispensing device 46 also includes a pipeline (not shown) connected to the water inlet 95 and discharge port 94 of the automatic dispensing device 46. Under the control of the control unit 31 (described later), the automatic dispensing device 46 dispenses the indicated amounts of detergent and fabric softener stored in the tanks into the pipeline.

[0030] A drain outlet 92 is provided at the very bottom of the water tank 9. The drain outlet 92 drains the water used in the washing and rinsing processes. A branch pipe 83 is connected to the drain outlet 92. The branch pipe 83 branches into a drain pipe 84 and a circulation pipe 85. A drain valve 48 is provided in the drain pipe 84. A circulation pump 49 is provided in the circulation pipe 85. A water inlet 93 is provided at the downstream end of the circulation pipe 85.

[0031] The circulation pump 49 draws up water from the tank 9 and recirculates it. Specifically, under the control of the control unit 31 (described later), the circulation pump 49 draws water from the tank 9 via the branch pipe 83, pumps it up through the circulation pipe 85 to the water inlet 93, and injects it back into the tank 9 through the inlet 4. Figure 1 shows an example where the water inlet 93 is located above the front side of the inlet 4, but the water inlet 93 may be located in another position where the water pumped up by the circulation pump 49 through the circulation pipe 85 can be injected into the tank 9 through the inlet 4.

[0032] The water tank 9 contains a bottomed cylindrical drum 3. The drum 3 holds the laundry that is put in through the opening 4. The drum 3 is supported such that its axis V0 is inclined downward from the front to the back. The drum 3 is rotated in both forward and reverse directions by a motor 7 attached to the back of the water tank 9. The rotation of the motor 7 is transmitted to the drum 3 via the rotating shaft 17.

[0033] Multiple through-holes 6 are provided on the circumferential surface of the drum 3, which connect to the water tank 9. Water supplied to the water tank 9 from the water inlet 91 is injected into the drum 3 through the through-holes 6. In addition, water injected again into the water tank 9 from the water inlet 93 via the inlet 4 by the circulation pump 49 enters the drum 3 and is stored in the water tank 9 through the through-holes 6. Furthermore, the drum 3 is provided with agitation protrusions (not shown) for agitating the laundry while it is rotating.

[0034] [Circuit Configuration] Figure 2 is a circuit diagram showing the schematic configuration of the control device 200 in this embodiment. The control device 200 includes a rectifier circuit 21, a choke coil 22, a smoothing capacitor 23, an inverter circuit 24, a current detection unit 28, a voltage detection unit 29, and a control unit 31.

[0035] The rectifier circuit 21 is connected to the commercial power supply 20 and rectifies the AC voltage supplied from the commercial power supply 20. The choke coil 22 and smoothing capacitor 23 constitute a smoothing circuit. This smoothing circuit smooths the AC voltage rectified by the rectifier circuit 21 and outputs a DC voltage.

[0036] The inverter circuit 24 is composed of a three-phase inverter circuit. The inverter circuit 24 converts the DC voltage output from the smoothing circuit into an AC voltage and supplies that AC voltage to the motor 7, thereby driving the motor 7 to rotate.

[0037] The inverter circuit 24 includes six switching elements 24a to 24f. The connection point of switching element 24a and switching element 24b constitutes the U-phase AC output terminal of the motor 7. The connection point of switching element 24c and switching element 24d constitutes the V-phase AC output terminal of the motor 7. The connection point of switching element 24e and switching element 24f constitutes the W-phase AC output terminal of the motor 7.

[0038] The switching elements 24a to 24f are composed of, for example, IGBTs (Insulated Gate Bipolar Transistors). However, this is just an example, and the switching elements 24a to 24f may also be composed of MOSFETs (Metal-Oxide-Semiconductor Field-Effect Transistors). Reverse flow diodes are connected to the switching elements 24a to 24f in the reverse direction. The reverse direction is the opposite direction to the forward direction in which current flows from the collector to the emitter.

[0039] The motor 7 comprises a stator having three-phase windings 7a, 7b, and 7c, and a rotor having two-pole permanent magnets. The motor 7 is configured as a DC brushless motor equipped with three position detection elements 30a, 30b, and 30c. The rotation of the motor 7 is controlled by PWM (pulse width modulation) control by an inverter circuit 24. The rotor position detection signals detected by the position detection elements 30a, 30b, and 30c are input to the control unit 31.

[0040] The current detection unit 28 is composed of, for example, a hard logic circuit equipped with a shunt resistor. The current detection unit 28 detects the current values ​​of the phase currents Iu, Iv, and Iw (Figure 3) flowing through each of the three phases of the motor 7 and outputs the detected current values ​​to the control unit 31. Hereafter, the current values ​​of the three phase currents Iu, Iv, and Iw will be abbreviated as the three phase current values ​​Iu, Iv, and Iw.

[0041] The voltage detection unit 29 is constituted by, for example, a voltage sensor. The voltage detection unit 29 detects the voltage value of the input voltage Vin (Fig. 3) of the motor 7 output from the smoothing circuit including the rectifier circuit 21, the choke coil 22, and the smoothing capacitor 23, and outputs the detected voltage value to the control unit 31. Hereinafter, the voltage value of the input voltage Vin of the motor 7 is abbreviated as the input voltage value Vin of the motor 7.

[0042] The control unit 31 is constituted by a microcontroller (computer) including a CPU (Central Processing Unit), a memory, and their peripheral circuits. The control unit 31 executes one or more washing processes based on the operation instruction input on the operation panel 10 by executing the control program stored in the memory by the CPU. The control unit 31 controls the communication circuit 11 provided in the housing 1 (Fig. 1) to transmit and receive various information with an external device. The external device includes information processing devices such as a smartphone, a tablet terminal, and a personal computer used by the user of the washing machine 100.

[0043] Note that the control unit 31 may be constituted by a hard logic circuit. The hard logic circuit may be constituted by one or more semiconductor chips. A microcomputer and its peripheral circuits may be used in combination with the hard logic circuit.

[0044] Fig. 3 is a block diagram showing the detailed configuration of the control unit 31.

[0045] The control unit 31 includes a current conversion unit 78, a motor speed estimation unit 75, an integrator 77, a saturation margin detection unit 71, a field weakening control unit 72, a voltage conversion unit 73, and a PWM control unit 74. The current conversion unit 78, the motor speed estimation unit 75, the integrator 77, the saturation margin detection unit 71, the field weakening control unit 72, the voltage conversion unit 73, and the PWM control unit 74 are configured by a CPU executing a control program (program) stored in a memory. However, not limited to this, the current conversion unit 78, the motor speed estimation unit 75, the integrator 77, the saturation margin detection unit 71, the field weakening control unit 72, the voltage conversion unit 73, and the PWM control unit 74 may be configured by a hard logic circuit. This hard logic circuit may be composed of one or more semiconductor chips. In combination with the hard logic circuit, a microcomputer and peripheral circuits may be used.

[0046] The current conversion unit 78 uses the position θ^ of the rotor of the motor 7 output by the integrator 77 to convert the three-phase phase current values Iu, Iv, Iw detected by the current detection unit 28 (FIG. 2) into the current value of the d-axis current Id and the current value of the q-axis current Iq by general three-phase two-phase conversion. Hereinafter, the current value of the d-axis current Id is abbreviated as the d-axis current value Id, and the current value of the q-axis current Iq is abbreviated as the q-axis current value Iq.

[0047] The motor speed estimation unit 75 calculates the current rotational speed ω^ of the motor 7 using the voltage equation shown in the above formula (1), the d-axis current value Id and the q-axis current value Iq, and the voltage values indicated by the d-axis voltage command Vd* and the q-axis voltage command Vq*. Hereinafter, the voltage value indicated by the d-axis voltage command Vd* is abbreviated as the d-axis voltage command value Vd*, and the voltage value indicated by the q-axis voltage command Vq* is abbreviated as the q-axis voltage command value Vq*.

[0048] The integrator 77 calculates the position θ^ of the rotor of the motor 7 by time-integrating the current rotational speed ω^ of the motor 7.

[0049] The saturation margin detection unit 71 detects the saturation margin M based on the input voltage value Vin of the motor 7, the d-axis voltage command value Vd*, and the q-axis voltage command value Vq*. The saturation margin M is an indicator of the margin until the voltage of the motor 7 reaches a saturation state. The input voltage value Vin of the motor 7 is the DC voltage value detected by the voltage detection unit 29 (Figure 2).

[0050] Specifically, the saturation margin detection unit 71 detects the difference between the input voltage value Vin of the motor 7 and the voltage value applied to the motor 7 as the saturation margin M. The voltage value applied to the motor 7 is the vector sum of the d-axis voltage command value Vd* in the d-axis direction and the q-axis voltage command value Vq* in the q-axis direction. In other words, the saturation margin detection unit 71 calculates the voltage value applied to the motor 7 as the square root of the sum of the square of the d-axis voltage command value Vd* and the square of the q-axis voltage command value Vq*. The saturation margin detection unit 71 detects the result of subtracting the voltage value applied to the motor 7 from the effective value of the input voltage value Vin of the motor 7 (= square root of Vin / 2) as the saturation margin M.

[0051] Furthermore, the saturation margin detection unit 71 may also detect the fluctuation range of the current flowing through the motor 7 as the saturation margin M. The current flowing through the motor 7 is the vector sum of the d-axis current Id and the q-axis current Iq. In other words, the saturation margin detection unit 71 calculates the current value flowing through the motor 7 as the square root of the sum of the square of the d-axis current value Id and the square of the q-axis current value Iq. The fluctuation range of the current flowing through the motor 7 is the result of subtracting the current value of the current flowing through the motor 7 calculated by the saturation margin detection unit 71 in the previous instance from the current value of the current flowing through the motor 7 calculated by the saturation margin detection unit 71 this time.

[0052] Alternatively, the saturation margin detection unit 71 may detect the result of subtracting the previous d-axis current value Id from the current d-axis current value Id as the fluctuation range of the current flowing through the motor 7, and detect this fluctuation range as the saturation margin M. Alternatively, the saturation margin detection unit 71 may detect the result of subtracting the previous q-axis current value Iq from the current q-axis current value Iq as the fluctuation range of the current flowing through the motor 7, and detect this fluctuation range as the saturation margin M.

[0053] Alternatively, the saturation margin detection unit 71 may detect the fluctuation range of the voltage applied to the motor 7 as the saturation margin M. Specifically, the saturation margin detection unit 71 may detect the result of subtracting the square root of the sum of the previous d-axis voltage command value Vd* and the previous q-axis voltage command value Vq* from the square root of the sum of the square of the current d-axis voltage command value Vd* and the square of the current q-axis voltage command value Vq* as the saturation margin M.

[0054] Alternatively, the saturation margin detection unit 71 may detect the result of subtracting the previous d-axis voltage command value Vd* from the current d-axis voltage command value Vd* as the voltage fluctuation range applied to the motor 7, and detect this fluctuation range as the saturation margin M. Alternatively, the saturation margin detection unit 71 may detect the result of subtracting the previous q-axis voltage command value Vq* from the current q-axis voltage command value Vq* as the voltage fluctuation range applied to the motor 7, and detect this fluctuation range as the saturation margin M.

[0055] The field weakening control unit 72 adjusts the target voltage of the motor 7's back electromotive force based on the saturation margin M detected by the saturation margin detection unit 71. The field weakening control unit 72 then provides feedback control to the motor 7's d-axis current Id so that the motor 7's back electromotive force matches the adjusted target voltage.

[0056] Specifically, the field weakening control unit 72 includes a target voltage value adjustment unit 721, a differencer 726, a speed control unit 725, a differencer 722, a differencer 723, and a current control unit 724.

[0057] The target voltage value adjustment unit 721 adjusts the target voltage of the back electromotive force of the motor 7 based on the input voltage value Vin of the motor 7, the target rotational speed command ω*, and the saturation margin M. The target rotational speed command ω* is updated as appropriate by the control unit 31 according to the progress of one or more washing processes.

[0058] Specifically, the target voltage value adjustment unit 721 determines that the motor 7 is in an acceleration / deceleration state if the rotational speed indicated by the target rotational speed command ω* is different from the rotational speed indicated by the previous target rotational speed command ω*. The target voltage value adjustment unit 721 determines that the motor 7 is in a steady state if the rotational speed indicated by the target rotational speed command ω* is not 0 and matches the rotational speed indicated by the previous target rotational speed command ω*. The target voltage value adjustment unit 721 determines that the motor 7 is in a stopped state if the rotational speed indicated by the target rotational speed command ω* is 0 and matches the rotational speed indicated by the previous target rotational speed command ω*.

[0059] When the state of the motor 7 changes from a stopped state or a steady state to an acceleration / deceleration state, the target voltage value adjustment unit 721 calculates the product of the input voltage value Vin of the motor 7 and a predetermined first voltage coefficient (for example, 0.5). The target voltage value adjustment unit 721 sets the calculated product as the voltage value of the adjusted target voltage. Hereafter, the voltage value of the target voltage will be abbreviated as the target voltage value.

[0060] When the state of the motor 7 changes from a stopped state or an accelerating / deceleration state to a steady state, the target voltage value adjustment unit 721 calculates the product of the input voltage value Vin of the motor 7 and a second constant (for example, 0.7) that is greater than the first voltage coefficient. The target voltage value adjustment unit 721 sets the calculated product as the adjusted target voltage value.

[0061] The target voltage value adjustment unit 721 does not perform any processing when the state of the motor 7 changes from a steady state or an acceleration / deceleration state to a stopped state.

[0062] Furthermore, if the saturation margin M is greater than a predetermined first threshold, the target voltage value adjustment unit 721 adds the product of the input voltage value Vin of the motor 7 and the first adjustment coefficient (for example, 0.05) to the adjusted target voltage value. If the saturation margin M is less than or equal to a second threshold which is less than the first threshold, the target voltage value adjustment unit 721 subtracts the product of the input voltage value Vin of the motor 7 and the second adjustment coefficient (for example, 0.05) from the adjusted target voltage value. If the saturation margin M is less than or equal to the first threshold but greater than the second threshold, the target voltage value adjustment unit 721 does not change (remains unchanged) the adjusted target voltage value. Note that the first adjustment coefficient and the second adjustment coefficient may be the same or different.

[0063] The target voltage adjustment unit 721 calculates the d-axis current command value Id* so that the voltage value of the back electromotive force of the motor 7 matches the adjusted target voltage value. Specifically, the target voltage adjustment unit 721 calculates the d-axis current command value Id* using the following equation (2). In equation (2), E* represents the adjusted target voltage value, Vdq represents the square root of the sum of the square of the d-axis current command value Vd* and the square of the q-axis current command value Vq*, and ω^ represents the current rotational speed of the motor 7 calculated by the motor speed estimation unit 75. Kpd represents the proportional gain of the d-axis current Id, and Kid represents the integral gain of the d-axis current Id.

[0064] Id* = Kpd × (E* - Vdq) / ω^ + Kid × Σ (E* - Vdq) / ω^ ... (2) In other words, the target voltage value adjustment unit 721 performs PI control (proportional-integral control) so that the deviation of the magnetic flux of the motor 7, obtained by dividing the difference between the adjusted target voltage value E* and the actual voltage value Vdq of the motor 7 by the current rotation speed ω^ of the motor 7, becomes 0. As a result, the voltage value of the back electromotive force of the motor 7 matches the adjusted target voltage value.

[0065] The differencer 726 calculates the rotational speed deviation ω* - ω^, which is the difference between the rotational speed indicated by the target rotational speed command ω* and the current rotational speed ω^ of the motor 7.

[0066] The speed control unit 725 calculates the q-axis current command value Iq* so that the current rotational speed ω^ of the motor 7 matches the rotational speed indicated by the target rotational speed command ω*. Specifically, the speed control unit 725 calculates the q-axis current command value Iq* using the following equation (3), which includes the rotational speed deviation ω* - ω^ input from the differencer 726. In equation (3), Kpq represents the proportional gain of the q-axis current Iq, and Kiq represents the integral gain of the q-axis current Iq.

[0067] Iq* = Kpq × (ω* - ω^) + Kiq × Σ (ω* - ω^) ... (3) The differencer 722 calculates the deviation Id* - Id of the d-axis current value Id, which is the difference between the d-axis current command value Id* and the d-axis current value Id. The differencer 723 calculates the deviation Iq* - Iq of the q-axis current value Iq, which is the difference between the q-axis current command value Iq* and the q-axis current value Iq.

[0068] The current control unit 724 calculates the d-axis voltage command value Vd* so that the d-axis current value Id matches the d-axis current command value Id*. Specifically, the current control unit 724 calculates the d-axis voltage command value Vd* using the following equation (4), which includes the deviation Id* - Id of the d-axis current value Id input from the differencer 722. In equation (4), Gpd represents the proportional gain of the d-axis current Id, and Gid represents the integral gain of the d-axis current Id.

[0069] Vd* = Gpd × (Id* - Id) + Gid × Σ (Id* - Id) ... (4) The current control unit 724 calculates the q-axis voltage command value Vq* so that the q-axis current value Iq matches the q-axis current command value Iq*. Specifically, the current control unit 724 calculates the q-axis voltage command value Vq* using the following equation (5), which includes the deviation Iq* - Iq of the q-axis current value Iq input from the differencer 723. In equation (5), Gpq represents the proportional gain of the q-axis current Iq, and Giq represents the integral gain of the q-axis current Iq.

[0070] Vq* = Gpq × (Iq* - Iq) + Giq × Σ (Iq* - Iq) ... (5) The voltage conversion unit 73 uses the rotor position θ^ of the motor 7 output by the integrator 77 to convert the d-axis voltage command value Vd* and the q-axis voltage command value Vq* into the U-phase voltage command value Vu*, the V-phase voltage command value Vv*, and the W-phase voltage command value Vw* by a general two-phase to three-phase conversion. Hereafter, the U-phase voltage command value Vu* will be abbreviated as U-phase voltage command value Vu*. The V-phase voltage command value Vv* will be abbreviated as V-phase voltage command value Vv*. The W-phase voltage command value Vw* will be abbreviated as W-phase voltage command value Vw*.

[0071] The PWM control unit 74 uses the input voltage value Vin of the motor 7 to generate a duty cycle signal (PWM signal) D for applying the voltages indicated by the U-phase voltage command value Vu*, the V-phase voltage command value Vv*, and the W-phase voltage command value Vw* to each phase of the motor 7, and outputs it to the drive circuit 27.

[0072] [Field Weakening Control] Next, the field weakening control process performed by the control unit 31 will be explained with reference to Figure 4. Figure 4 is a flowchart showing an example of the field weakening control process performed by the control unit 31. The control unit 31 starts the field weakening control process shown in Figure 4 at the timing when the motor 7 is started to drive, such as when a washing operation command is input from the operation panel 10. Hereinafter, the first voltage coefficient will be assumed to be 0.5 and the second voltage coefficient will be assumed to be 0.7. The first adjustment coefficient and the second adjustment coefficient will be assumed to be 0.05.

[0073] (Step S210) The control unit 31 starts outputting a target rotation speed command ω* according to the progress of the washing process.

[0074] (Step S220) The target voltage value adjustment unit 721 determines the state of the motor 7 based on the target rotational speed command ω*. If the target voltage value adjustment unit 721 determines that the state of the motor 7 is in an acceleration / deceleration state (acceleration / deceleration in step S220), it executes step S231. If the target voltage value adjustment unit 721 determines that the state of the motor 7 is in a steady state (steady state in step S220), it executes step S232. If the target voltage value adjustment unit 721 determines that the state of the motor 7 is in a stopped state (stopped in step S220), it terminates the field weakening control process.

[0075] (Step S231) The target voltage value adjustment unit 721 sets the product of the input voltage value Vin of the motor 7 and the first coefficient "0.5" as the adjusted target voltage value.

[0076] (Step S232) The target voltage value adjustment unit 721 sets the product of the input voltage value Vin of the motor 7 and the second coefficient "0.7" as the adjusted target voltage value.

[0077] (Step S240) If the target voltage value adjustment unit 721 is greater than the first threshold (great in step S240), it executes step S251. If the target voltage value adjustment unit 721 is less than or equal to the second threshold (small in step S240), it executes step S252. If the target voltage value adjustment unit 721 is less than or equal to the first threshold but greater than the second threshold (medium in step S240), it executes step S253.

[0078] (Step S251) The target voltage value adjustment unit 721 adds the product of the input voltage value Vin of the motor 7 and the first adjustment coefficient "0.05" to the target voltage value.

[0079] (Step S252) The target voltage value adjustment unit 721 subtracts the product of the input voltage value Vin of the motor 7 and the second adjustment coefficient "0.05" from the target voltage value.

[0080] (Step S253) The target voltage value adjustment unit 721 is left unchanged without changing the target voltage value.

[0081] After steps S251, S252, and S253, the process proceeds to step S260.

[0082] (Step S260) The field weakening control unit 72 performs feedback control (FB control) of the d-axis current Id so that the back electromotive force of the motor 7 matches the target voltage value.

[0083] (Step S270) The target voltage value adjustment unit 721 refers to the target rotational speed command ω*.

[0084] (Step S280) The target voltage value adjustment unit 721 determines the current state of the motor 7 based on the referenced target rotational speed command ω*. If the current state of the motor 7 has changed from the state of the motor 7 determined in the previous step (Yes in step S280), the target voltage value adjustment unit 721 returns to step S220. In other words, if the current state of the motor 7 has changed from a stopped state or a steady state to an accelerating / deceleration state, or if the state of the motor 7 has changed from a steady state or an accelerating / deceleration state to a steady state, the target voltage value adjustment unit 721 returns to step S220. On the other hand, if the state of the motor 7 has not changed (No in step S280), the target voltage value adjustment unit 721 returns to step S240.

[0085] [Example] An example of the field weakening control process shown in Figure 4 will be described below. Figure 5 is a diagram showing an example of the temporal changes in the rotational speed, voltage coefficient, and target voltage value of the motor 7 during the field weakening control process. The horizontal axis of Figure 5 shows the elapsed time (seconds) since the start of the field weakening control process. Waveform G71 in Figure 5 shows the temporal changes in the voltage coefficient. The voltage coefficient is the ratio of the target voltage value of the back electromotive force to the input voltage value Vin of the motor 7 (= target voltage value of the back electromotive force / input voltage value Vin of the motor 7). Waveform G72 in Figure 5 shows the temporal changes in the target voltage value of the back electromotive force. Waveform G73 in Figure 5 shows the temporal changes in the rotational speed of the motor 7. From the changes in waveform G72 in Figure 5, it can be seen that the target voltage value is actually being appropriately adjusted based on the state of the motor 7 and the saturation margin M.

[0086] For example, during elapsed times t0-t3 and t5-t7, the motor 7 is in an acceleration / deceleration state. At elapsed times t0 and t5, the target voltage value (G72) is set to "motor 7 input voltage value Vin × 0.5". Then, at elapsed times t1, t2, t6, and t7, because the saturation margin M exceeds the first threshold, "motor 7 input voltage value Vin × 0.05" is added. This confirms that when the motor 7 changes to an acceleration / deceleration state, the target voltage value is set based on the state of the motor 7 and then appropriately adjusted based on the saturation margin M.

[0087] During the period from elapsed time t3 to t5, motor 7 was changed from an accelerating state to a steady state. At elapsed time t3, the target voltage value (G72) was set to "motor 7 input voltage value Vin × 0.7". Then, at elapsed time t4, because the saturation margin M exceeded the first threshold, "motor 7 input voltage value Vin × 0.05" was added. This confirms that even when motor 7 is changed to a steady state, the target voltage value is set based on the state of motor 7, and then appropriately adjusted based on the saturation margin M.

[0088] Figure 6 shows an example of the behavior of various parameters in field weakening control processing. The horizontal axis of Figure 6 shows the elapsed time (seconds) since the start of the field weakening control processing shown in Figure 4. Waveform G74 in Figure 6 shows the temporal change in the rotational speed ω of the motor 7. Waveform G75 shows the temporal change in the input voltage Vin of the motor 7. Waveform G76 shows the temporal change in the target voltage value of the back electromotive force of the motor 7. Waveform G77 shows the temporal change in the back electromotive force of the motor 7. Waveform G78 shows the temporal change in the d-axis current value Id. Specifically, it shows the difference between the input voltage Vin of the motor 7 and the target voltage value of the back electromotive force of the motor 7.

[0089] For example, around 23 seconds and 33 seconds of elapsed time, the rotational speed ω (G74) of motor 7 increases, and motor 7 changes to an accelerating state. At this time, the target voltage value of the back electromotive force (G76) is set to 0.5 times the input voltage Vin (G75) of motor 7. This maintains the saturation margin M and prevents the back electromotive force (G77) of motor 7 from getting too close to the input voltage Vin (G75), thereby reducing the risk of the motor 7's voltage becoming saturated.

[0090] Around 32 and 43 seconds of elapsed time, the rotational speed ω (G74) of motor 7 becomes constant, and motor 7 changes to a steady state. At this time, the target voltage value of the back electromotive force (G76) is set to 0.7 times the input voltage Vin (G75) of motor 7. This allows the back electromotive force (G77) of motor 7 to approach a target voltage value (G76) that is higher than that during the acceleration state, while maintaining the saturation margin M, thereby suppressing excessive d-axis current Id.

[0091] After 48 seconds of elapsed time, the target voltage value of the back electromotive force (G76) is maintained, and the target voltage value of the back electromotive force (G76) and the actual back electromotive force (G77) are in close agreement. This confirms that by using feedback control of the d-axis current Id (G78) to make the back electromotive force (G77) follow the target voltage value of the back electromotive force (G76), the risk of the motor 7 voltage becoming saturated can be reduced while maintaining the saturation margin M.

[0092] Thus, as shown in Figure 4, the field weakening control process allows for flexible adjustment of the target voltage value (G76) in response to changes in the rotational speed ω (G74) while maintaining the saturation margin M. This reduces the risk of the motor 7 voltage becoming saturated and suppresses excessive d-axis current Id.

[0093] As described above, in this embodiment, the control device 200 includes a control unit 31 that controls the rotation of the motor 7. The control unit 31 (saturation margin detection unit 71) detects the saturation margin M, which is an indicator of the margin until the voltage of the motor 7 reaches a saturation state. The control unit 31 (field weakening control unit 72) adjusts the target voltage of the back electromotive force of the motor 7 based on the saturation margin M and controls the d-axis current Id flowing in the magnetic flux direction of the motor 7 so that the back electromotive force of the motor 7 matches the target voltage.

[0094] This allows for the detection of a saturation margin M, which is an indicator of the margin before the motor 7's voltage reaches a saturation state. Based on the detected saturation margin M, the target voltage of the motor 7's back electromotive force is adjusted. This reduces the risk of the motor 7's voltage reaching a saturation state if its back electromotive force exceeds the target voltage. Furthermore, since the d-axis current Id flowing in the magnetic flux direction of the motor 7 is controlled so that the target voltage and the motor 7's back electromotive force match, it is possible to suppress any excess or deficiency in the d-axis current Id. As a result, the power consumption of the motor 7 and the noise generated when the motor 7 rotates can be reduced.

[0095] Furthermore, as in this embodiment, the control unit 31 (target voltage value adjustment unit 721) may also lower the target voltage when accelerating or decelerating the rotation of the motor 7 while it is stopped or rotating at a constant speed.

[0096] When the rotation of motor 7, which is stopped or rotating at a constant speed, is accelerated or decelerated, the degree of drop in the input voltage Vin of motor 7 increases. In this configuration, the target voltage is reduced when the rotation of motor 7, which is stopped or rotating at a constant speed, is accelerated or decelerated, thereby reducing the risk of reaching a saturation state due to the drop in the input voltage Vin of motor 7.

[0097] Furthermore, as in this embodiment, the control unit 31 (target voltage value adjustment unit 721) may also increase the target voltage when the motor 7 is rotating at a constant speed while accelerating or decelerating.

[0098] When motor 7 is rotated at a constant speed while accelerating or decelerating, the degree of drop in the input voltage Vin of motor 7 decreases. In this configuration, the target voltage is increased when motor 7 is rotated at a constant speed while accelerating or decelerating, so an increase in the back electromotive force of motor 7 is allowed, and an excess of the d-axis current Id can be suppressed.

[0099] Furthermore, as in this embodiment, in controlling the d-axis current Id flowing in the magnetic flux direction of the motor 7, the d-axis current Id flowing in the magnetic flux direction of the motor 7 may be controlled by feedback so that the back electromotive force of the motor 7 matches the target voltage.

[0100] In this case, the d-axis current Id flowing in the magnetic flux direction of the motor 7 is feedback-controlled so that the back electromotive force of the motor 7 matches the target voltage. Therefore, the control parameters required to match the back electromotive force of the motor 7 to the target voltage can be reduced.

[0101] Furthermore, as in this embodiment, the saturation margin M may be the fluctuation range of the current flowing through the motor 7, the fluctuation range of the voltage applied to the motor 7, or the difference between the input voltage Vin of the motor 7 and the voltage applied to the motor 7.

[0102] In this case, the target voltage of the back electromotive force of the motor 7 can be appropriately adjusted based on the fluctuation range of the current flowing through the motor 7, the fluctuation range of the voltage applied to the motor 7, or the difference between the input voltage Vin of the motor 7 and the voltage applied to the motor 7.

[0103] (Other Embodiments) As described above, the above embodiments have been explained as examples of the technology disclosed in this application. However, the technology in this disclosure is not limited to these embodiments and can be applied to embodiments that have been modified, replaced, added, omitted, etc. Furthermore, it is possible to create new embodiments by combining the components described in the above embodiments.

[0104] Therefore, other embodiments are illustrated below.

[0105] (Modification 1) In the above embodiment, an example was described in which the control device 200 is applied to a washing machine 100, which is a drum-type washing machine. However, the control device 200 can also be applied as a control device for controlling the motor 7 of a top-loading washing machine. Furthermore, the control device 200 can also be applied as a control device for controlling the motor 7 of a washer-dryer. Note that the above drum-type washing machine and top-loading washing machine may be configured as a washer-dryer by having a drying function.

[0106] (Modification 2) In the field weakening control process shown in Figure 4, at least one of steps S231 and S232 may be omitted.

[0107] (Technical 1) A motor control device in one aspect of the present disclosure includes a control unit for controlling the rotation of a motor, the control unit detects a saturation margin, which is an indicator of the margin until the motor voltage reaches a saturation state, adjusts a target voltage for the motor's back electromotive force based on the saturation margin, and controls the current flowing in the direction of the motor's magnetic flux so that the motor's back electromotive force matches the target voltage.

[0108] In this configuration, a saturation margin, which is an indicator of the margin before the motor voltage reaches a saturation state, is detected, and the target voltage of the motor's back EMF is adjusted based on the detected saturation margin. Therefore, the risk of the motor's back EMF exceeding the target voltage and reaching a saturation state can be reduced. In addition, since the current flowing in the direction of the motor's magnetic flux is controlled so that the target voltage and the motor's back EMF match, it is possible to suppress any excess or deficiency in the current flowing in the direction of the motor's magnetic flux.

[0109] (Technical 2) In the motor control device described in Technical 1, the control unit may further reduce the target voltage when accelerating or decelerating the rotation of the motor while it is stopped or rotating at a constant speed.

[0110] When accelerating or decelerating a motor that is stopped or rotating at a constant speed, the degree of drop in the motor's input voltage increases. In this configuration, the target voltage is reduced when accelerating or decelerating a motor that is stopped or rotating at a constant speed, thereby reducing the risk of reaching a saturation state due to the drop in the motor's input voltage.

[0111] (Technical 3) In the motor control device described in Technical 1 or 2, the control unit may further increase the target voltage when the motor is rotating at a constant speed while accelerating or decelerating its rotation.

[0112] When a motor that is accelerating or decelerating is rotated at a constant speed, the degree of drop in the motor's input voltage decreases. In this configuration, the target voltage is increased when the motor is accelerating or decelerating and rotated at a constant speed, so that the motor's back electromotive force increases, and an excess of the d-axis current Id can be suppressed.

[0113] (Technology 4) In the motor control device described in any one of Techniques 1 to 3, the current flowing in the direction of the magnetic flux of the motor may be controlled by feedback control so that the back electromotive force of the motor matches the target voltage.

[0114] In this configuration, the current flowing in the direction of the motor's magnetic flux is feedback-controlled so that the motor's back EMF matches the target voltage. Therefore, the control parameters required to match the motor's back EMF to the target voltage can be reduced.

[0115] (Technical 5) In the motor control device described in any one of Technical 1 to 4, the saturation margin may be the fluctuation range of the current flowing through the motor, the fluctuation range of the voltage applied to the motor, or the difference between the input voltage of the motor and the voltage applied to the motor.

[0116] With this configuration, the target voltage of the motor's back electromotive force can be appropriately adjusted based on the fluctuation range of the current flowing through the motor, the fluctuation range of the voltage applied to the motor, or the difference between the motor's input voltage and the voltage applied to the motor.

[0117] (Technical 6) A control method in another aspect of the present disclosure is a control method for a washing machine and a washer-dryer, the method comprising: a computer detecting a saturation margin, which is an index indicating the margin until the voltage of a motor provided in the washing machine and the washer-dryer reaches a saturation state; adjusting a target voltage for the back electromotive force of the motor based on the saturation margin; and controlling the current flowing to the motor so that the back electromotive force of the motor matches the target voltage.

[0118] This configuration provides the same effects and advantages as the motor control device described in Technical 1.

[0119] (Technical 7) A program in another aspect of the present disclosure is a program for a washing machine and a washer-dryer, the washing machine and the washer-dryer comprising a computer that controls the rotation of a motor, and causing the computer to detect a saturation margin, which is an indicator of the margin until the voltage of the motor reaches a saturation state; adjust a target voltage for the back electromotive force of the motor based on the saturation margin; and control the current flowing to the motor so that the back electromotive force of the motor matches the target voltage.

[0120] This configuration provides the same effects and advantages as the motor control device described in Technical 1.

[0121] This disclosure is applicable to control devices that control the motors of washing machines and washer-dryers.

[0122] 1: Housing 3: Drum 4: Input port 5: Door 6: Through hole 7: Motor 7a, 7b, 7c: Three-phase winding 9: Water tank 10: Operation panel 11: Communication circuit 17: Rotating shaft 20: Commercial power supply 21: Rectifier circuit 22: Choke coil 23: Smoothing capacitor 24: Inverter circuit 24a-24f: Switching element 27: Drive circuit 28: Current detection unit 29: Voltage detection unit 30a-30c: Position detection element 31: Control unit 46: Automatic feeding device 47: Water supply valve 48: Drain valve 49: Circulation pump 71: Saturation margin detection unit 72: Field weakening control unit 73: Voltage conversion unit 74: PWM control unit 75: Motor speed estimation unit 77 : Integrator 78: Current conversion unit 81: Water inlet pipe 82: Connection pipe 83: Branch pipe 84: Drain pipe 85: Circulation pipe 91, 95: Water inlet 92: Drain outlet 93: Water inlet 94: Discharge outlet 100: Washing machine 200: Control device (motor control device) 721: Target voltage value adjustment unit 722, 723, 726: Difference unit 724: Current control unit 725: Speed ​​control unit D: Duty cycle signal (PWM signal) Id: d-axis current Id*: d-axis current command Iq: q-axis current Iq*: q-axis current command Iu, Iv, Iw: Phase current M: Saturation margin V: Voltage vector V0: Axis Vd: Input voltage in the d-axis direction Vd* ω: d-axis voltage command Vin: Motor input voltage Vmax: Maximum allowable voltage Vq: Input voltage in the q-axis direction Vq*: q-axis voltage command Vu*: U-phase voltage command value Vv*: U-phase voltage command value Vw*: U-phase voltage command value θ: Rotor position ω: Rotation speed ω*: Target rotation speed command

Claims

1. A motor control device comprising a control unit for controlling the rotation of a motor, wherein the control unit detects a saturation margin, which is an indicator of the margin until the motor voltage reaches a saturation state, adjusts a target voltage for the motor's back electromotive force based on the saturation margin, and controls the current flowing in the direction of the motor's magnetic flux so that the motor's back electromotive force matches the target voltage.

2. The motor control device according to claim 1, further comprising the control unit, which reduces the target voltage when accelerating or decelerating the rotation of the motor while it is stopped or rotating at a constant speed.

3. The motor control device according to claim 1, wherein the control unit further increases the target voltage when the motor is rotating at a constant speed while accelerating or decelerating its rotation.

4. The motor control device according to claim 1, wherein, in controlling the current flowing in the magnetic flux direction of the motor, the current flowing in the magnetic flux direction of the motor is feedback-controlled so that the back electromotive force of the motor matches the target voltage.

5. The motor control device according to claim 1, wherein the saturation margin is the range of fluctuation of the current flowing through the motor, the range of fluctuation of the voltage applied to the motor, or the difference between the input voltage of the motor and the voltage applied to the motor.

6. A control method for a washing machine and a washer-dryer, the method comprising: a computer detecting a saturation margin, which is an indicator of the margin until the voltage of a motor provided in the washing machine and the washer-dryer reaches a saturation state; adjusting a target voltage for the back electromotive force of the motor based on the saturation margin; and controlling the current flowing to the motor so that the back electromotive force of the motor matches the target voltage.

7. A program for a washing machine and a washer-dryer, wherein the washing machine and the washer-dryer are equipped with a computer that controls the rotation of a motor, and the program causes the computer to: detect a saturation margin, which is an indicator of the margin until the voltage of the motor reaches a saturation state; adjust a target voltage for the back electromotive force of the motor based on the saturation margin; and control the current flowing to the motor so that the back electromotive force of the motor matches the target voltage.