Flux linkage parameter identification method and device, motor controller, storage medium and program product

CN122764071APending Publication Date: 2026-09-15GREBO INTELLIGENT POWER TECHNOLOGY (NINGBO) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202611046086.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-07-14
Publication Date
2026-09-15

AI Technical Summary

Technical Problem

[0004]本申请的主要目的在于提供一种磁链参数辨识方法、装置、电机控制器、存储介质及程序产品,旨在解决现有隐极电机的磁链参数获取过程中需依赖外部设备或对电机硬件进行改造,导致磁链参数获取成本高、效率低的技术问题

Benefits of technology

本申请通过先获取电机在静止状态下的d轴电感和q轴电感,并根据二者的差异程度判断该电机是否为隐极电机,当判定结果为隐极电机时,通过向电机注入第一d轴电流,利用该第一d轴电流产生的定子磁场将转子拖拽至预设位置,以确保后续注入的第二d轴电流能够准确作用于d轴方向,避免因转子位置偏差导致电流矢量方向偏离d轴而无法有效影响d轴磁路;在转子到达预设位置后,再向电机注入预设幅值的第二d轴电流,由于此时d轴电流方向与d轴磁路方向准确对齐,该第二d轴电流能够使d轴磁路发生饱和,从而降低d轴电感,在原本电感基本相等的d轴电感与q轴电感之间制造出电感差异,使原本凸极性极弱的隐极电机获得足以支撑高频注入法有效运行的凸极性;在此基础上,当电机从静止状态加速至预设速度的过程中,由于电机已具备足够的凸极性,高频注入法能够在起动和加速阶段有效提取转子位置信息,确保电机能够顺利加速至预设速度以获得足够的反电势,进而获取磁链参数,最终完成隐极电机在无需外部设备和无需硬件改造条件下的磁链参数辨识。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122764071A_ABST
    Figure CN122764071A_ABST
Patent Text Reader

Abstract

The application discloses a flux linkage parameter identification method and device, a motor controller, a storage medium and a program product, and relates to the technical field of motors.The method comprises the following steps: when the motor is in a stationary state, the d-axis inductance and the q-axis inductance of the motor are obtained; whether the motor is a non-salient pole motor is judged according to the d-axis inductance and the q-axis inductance; when the motor is a non-salient pole motor, a first d-axis current is injected into the motor to position the rotor of the motor to a preset position; after the rotor of the motor reaches the preset position, a second d-axis current with a preset amplitude is injected into the motor to reduce the d-axis inductance of the motor, so that an inductance difference is created between the d-axis inductance and the q-axis inductance of the motor; under the condition that the inductance difference has been created and the motor is driven to accelerate from the stationary state to a preset speed, the flux linkage parameter of the motor is obtained.The application reduces the operation complexity and the equipment cost of the flux linkage parameter identification, has good universality and portability, and improves the acquisition efficiency of the flux linkage parameter.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of motor technology, and in particular to flux linkage parameter identification methods, parameter identification devices, motor controllers, storage media, and computer program products. Background Technology

[0002] Existing methods for identifying flux linkage parameters in a stationary state typically rely on active excitation techniques such as high-frequency signal injection to extract rotor position and then obtain flux linkage parameters. However, the prerequisite for the high-frequency injection method to effectively extract rotor position is that the motor must have sufficient salient polarity, i.e., there must be a certain difference between the d-axis inductance and the q-axis inductance. For salient-pole motors, their d-axis inductance and q-axis inductance are basically equal, resulting in extremely weak salient polarity. This means that the high-frequency injection method cannot effectively extract rotor position in a stationary state, and therefore the flux linkage parameters cannot be obtained.

[0003] To obtain flux linkage parameters, the motor typically needs to be driven from a standstill to a preset speed to generate back electromotive force before flux linkage identification can be performed. However, for salient-pole motors, effective rotor position information cannot be obtained using high-frequency injection when the motor is stationary, making flux linkage parameter identification impossible. Some existing methods for flux linkage parameter identification involve dragging the motor to a certain speed using external equipment or modifying the motor hardware to artificially introduce salient polarity. However, the former increases additional equipment costs and operational complexity, while the latter alters the motor's structure, resulting in poor versatility and inconvenient implementation. Summary of the Invention

[0004] The main objective of this application is to provide a method, device, motor controller, storage medium, and program product for identifying flux linkage parameters, aiming to solve the technical problem that the acquisition of flux linkage parameters for existing salient pole motors requires reliance on external equipment or modification of the motor hardware, resulting in high cost and low efficiency in acquiring flux linkage parameters.

[0005] To achieve the above objectives, this application proposes a method for identifying flux linkage parameters, the method comprising: When the motor is stationary, obtain the d-axis inductance and q-axis inductance of the motor; Based on the d-axis inductance and the q-axis inductance, determine whether the motor is a non-salient pole motor; When the motor is a non-salient pole motor, a first d-axis current is injected into the motor to position the rotor of the motor to a preset position; After the rotor of the motor reaches a preset position, a second d-axis current of a preset amplitude is injected into the motor to reduce the d-axis inductance of the motor, thereby creating an inductance difference between the d-axis inductance and the q-axis inductance of the motor. Under the condition that the inductance difference has been created and the motor is driven to accelerate from a stationary state to a preset speed, the flux linkage parameters of the motor are obtained.

[0006] In one embodiment, the step of determining whether the motor is a salient-pole motor based on the d-axis inductance and the q-axis inductance includes: Calculate the inductance difference between the d-axis inductance and the q-axis inductance; Calculate the ratio of the inductance difference to the q-axis inductance to obtain the relative inductance difference; Compare the relative difference in inductance with a preset inductance threshold; When the relative difference in inductance is less than the preset inductance threshold, the motor is determined to be a non-salient pole motor.

[0007] In one embodiment, after the step of determining whether the motor is a salient-pole motor based on the d-axis inductance and the q-axis inductance, the method further includes: When the motor is a non-salient pole motor, a high-frequency voltage signal is injected into the motor, and the rotor position and rotor speed of the motor are extracted based on the current response generated after the high-frequency voltage signal is injected. Based on the rotor position and rotor speed, the motor is driven to accelerate from the stationary state to a preset speed; After the motor reaches the preset speed, the flux linkage parameters of the motor are calculated based on the motor's voltage, current, stator resistance, and rotor speed.

[0008] In one embodiment, after the step of obtaining the flux linkage parameters of the motor under the condition that the inductance difference has been generated and the motor is driven to accelerate from a standstill to a preset speed, the method further includes: At the preset speed, the first rotor angle and the second rotor angle of the motor are obtained by high-frequency injection method and magnetic flux observer, respectively. The q-axis inductor is corrected based on the angle difference between the first rotor angle and the second rotor angle to obtain the corrected q-axis inductor. Based on the correction amount of the q-axis inductance, the d-axis inductance is corrected to obtain the corrected d-axis inductance.

[0009] In one embodiment, the step of correcting the q-axis inductance based on the angle difference between the first rotor angle and the second rotor angle to obtain the corrected q-axis inductance includes: The initial deviation value is obtained by taking the absolute value of the angle difference; Subtract the preset deviation threshold from the initial deviation value to obtain the effective deviation value, and apply a non-negative constraint to the effective deviation value to obtain the constrained deviation value; The constraint deviation value is integrated to determine the inductance compensation amount, wherein the integration direction is adjusted according to the changing trend of the constraint deviation value during the integration process. The q-axis inductance is adjusted based on the inductance compensation amount to obtain the corrected q-axis inductance.

[0010] In one embodiment, the step of correcting the d-axis inductance based on the correction amount of the q-axis inductance to obtain the corrected d-axis inductance includes: The ratio of the corrected q-axis inductance to the q-axis inductance is used as the correction amount for the q-axis inductance. The corrected d-axis inductance is obtained based on the correction amount of the q-axis inductance and the d-axis inductance.

[0011] Furthermore, to achieve the above objectives, this application also proposes a parameter identification device, which includes: An inductance acquisition module is used to acquire the d-axis inductance and q-axis inductance of the motor when the motor is stationary. The judgment module is used to determine whether the motor is a non-salient pole motor based on the d-axis inductance and the q-axis inductance. The first injection module is used to inject a first d-axis current into the motor when the motor is a non-salient pole motor, so as to position the rotor of the motor to a preset position; The second injection module is used to inject a second d-axis current of a preset amplitude into the motor after the rotor of the motor reaches a preset position, so as to reduce the d-axis inductance of the motor and create an inductance difference between the d-axis inductance and the q-axis inductance of the motor. The flux linkage acquisition module is used to acquire the flux linkage parameters of the motor under the condition that the inductance difference has been generated and the motor is driven to accelerate from a stationary state to a preset speed.

[0012] In addition, to achieve the above objectives, this application also proposes a motor controller, which includes: a memory, a processor, and a computer program stored in the memory and executable on the processor, the computer program being configured to implement the steps of the flux linkage parameter identification method as described above.

[0013] In addition, to achieve the above objectives, this application also proposes a storage medium, which is a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, it implements the steps of the magnetic flux linkage parameter identification method described above.

[0014] In addition, to achieve the above objectives, this application also provides a computer program product, which includes a computer program that, when executed by a processor, implements the steps of the magnetic flux linkage parameter identification method described above.

[0015] One or more technical solutions proposed in this application have at least the following technical effects: This application first obtains the d-axis inductance and q-axis inductance of the motor in a stationary state, and determines whether the motor is a salient-pole motor based on the degree of difference between the two. When the determination result is a salient-pole motor, a first d-axis current is injected into the motor. The stator magnetic field generated by the first d-axis current is used to drag the rotor to a preset position, ensuring that the subsequently injected second d-axis current can accurately act in the d-axis direction, avoiding the current vector direction from deviating from the d-axis due to rotor position deviation, thus failing to effectively affect the d-axis magnetic circuit. After the rotor reaches the preset position, a second d-axis current of a preset amplitude is injected into the motor. Since the direction of the d-axis current is accurately aligned with the direction of the d-axis magnetic circuit at this time, the second d-axis... Current can saturate the d-axis magnetic circuit, thereby reducing the d-axis inductance. This creates an inductance difference between the d-axis and q-axis inductances, which are originally roughly equal. This allows the originally weakly salient-pole motor to acquire sufficient salient polarity to support the effective operation of the high-frequency injection method. Based on this, when the motor accelerates from a standstill to a preset speed, because the motor already has sufficient salient polarity, the high-frequency injection method can effectively extract rotor position information during the start-up and acceleration phases. This ensures that the motor can smoothly accelerate to the preset speed to obtain sufficient back EMF, thereby acquiring flux linkage parameters. Finally, the flux linkage parameters of the salient-pole motor can be identified without the need for external equipment or hardware modifications.

[0016] Through the technical solution of this application embodiment, the non-salient pole motor can be smoothly started and accelerated from a stationary state without the need for external dragging equipment, and no modification to the motor body hardware is required. The salient polarity difference required for high-frequency injection method operation can be created simply by current injection. Thus, the flux linkage parameters of the non-salient pole motor can be obtained without relying on external equipment and hardware modifications. This significantly reduces the operational complexity and equipment cost of motor parameter identification. At the same time, since the motor body structure is not changed, it has good versatility and portability. Overall, it can reduce the cost of obtaining flux linkage parameters and improve the efficiency of obtaining flux linkage parameters. Attached Figure Description

[0017] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.

[0018] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, for those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0019] Figure 1 A flowchart illustrating an embodiment of the flux linkage parameter identification method of this application. Figure 1 ; Figure 2 A flowchart illustrating an embodiment of the flux linkage parameter identification method of this application. Figure 2 ; Figure 3 A flowchart illustrating an embodiment of the flux linkage parameter identification method of this application. Figure 3 ; Figure 4 This is a schematic diagram of the module structure of the parameter identification device of this application; Figure 5 This is a schematic diagram of the device structure of the hardware operating environment involved in the magnetic flux parameter identification method of this application.

[0020] The purpose, features, and advantages of this application will be further explained in conjunction with the embodiments and with reference to the accompanying drawings. Detailed Implementation

[0021] It should be understood that the specific embodiments described herein are merely illustrative of the technical solutions of this application and are not intended to limit this application.

[0022] To better understand the technical solution of this application, a detailed description will be provided below in conjunction with the accompanying drawings and specific implementation methods.

[0023] It should be noted that the execution entity in this embodiment can be a motor controller, such as a microcontroller unit (MCU) for a permanent magnet synchronous motor; it can also be a computing service device with data processing, network communication, and program execution functions, such as a tablet computer, personal computer, or mobile phone; or an integrated circuit or digital signal processor capable of performing the above functions. The following description uses a motor controller as an example to illustrate this embodiment and the subsequent embodiments.

[0024] Based on this, embodiments of this application provide a method for identifying magnetic flux linkage parameters, referring to... Figure 1 , Figure 1 This is a flowchart illustrating an embodiment of the magnetic flux linkage parameter identification method of this application.

[0025] In one feasible embodiment, the application scenarios of the technical solution of this application can be: factory parameter calibration of permanent magnet synchronous motors, parameter matching between motor controllers and different models of motors, parameter self-learning after motor repair and replacement, etc. The application object is a non-salient pole permanent magnet synchronous motor with weak salient polarity, and it is especially suitable for scenarios that require magnetic flux parameter identification in a stationary state and at low to medium speeds without relying on external equipment or modifying the motor hardware.

[0026] In this embodiment, the magnetic flux linkage parameter identification method includes steps S1 to S5: Step S1: When the motor is stationary, obtain the d-axis inductance and q-axis inductance of the motor. It should be noted that this step occurs when the motor is not yet powered on and the rotor is stationary. At this time, the motor has no rotating back EMF, and the motor controller needs to obtain the basic inductance parameters of the motor under no-speed conditions.

[0027] Optionally, a stationary state refers to a state where the motor's rotor speed is zero and the motor has not yet started operating. In this stationary state, the motor controller can calculate the motor's d-axis inductance and q-axis inductance by injecting a specific voltage signal into the motor's stator windings and acquiring the corresponding current response. The d-axis inductance is the inductance component along the d-axis direction, and the q-axis inductance is the inductance component along the q-axis direction. The d-axis is the axis along which the magnetic field of the motor rotor's permanent magnets lies, and the q-axis is the axis that differs from the d-axis by 90° electrical degrees in space.

[0028] Optionally, the specific implementation method can be the high-frequency voltage injection method: the motor controller injects a high-frequency sinusoidal voltage signal into the d-axis direction of the motor, and by detecting the amplitude of the high-frequency current response generated under the excitation of the high-frequency voltage signal, the initial value of the d-axis inductance is calculated using the inverse relationship between the inductance and the current response amplitude; similarly, a high-frequency sinusoidal voltage signal is injected into the q-axis direction of the motor, and the initial value of the q-axis inductance is calculated.

[0029] Understandably, this step, by obtaining the d-axis inductance and q-axis inductance in a static state, provides a data basis for subsequent determination of whether the motor is a salient-pole motor.

[0030] Step S2: Determine whether the motor is a non-salient pole motor based on the d-axis inductance and the q-axis inductance.

[0031] It should be noted that after obtaining the initial values ​​of the d-axis inductance and q-axis inductance, the motor controller uses the difference between the two inductance values ​​to determine the degree of salient polarity of the motor, thereby determining whether the motor is a non-salient pole motor.

[0032] Understandably, this step achieves automatic identification of whether the motor is a salient-pole motor by acquiring inductance parameters, providing triggering conditions for subsequent rotor positioning and flux linkage identification for salient-pole motors.

[0033] Step S3: When the motor is a non-salient pole motor, inject a first d-axis current into the motor to position the rotor of the motor to a preset position; It should be noted that before performing this step, the motor controller has already obtained the d-axis inductance and q-axis inductance of the motor through an offline parameter identification process. The d-axis inductance is the inductance component of the motor stator winding in the d-axis direction, and the q-axis inductance is the inductance component of the motor stator winding in the q-axis direction. The d-axis and q-axis are two coordinate axes in the motor rotor field-oriented coordinate system. This coordinate system uses the direction of the rotor permanent magnet magnetic field as the d-axis direction and the direction perpendicular to the d-axis as the q-axis direction. The d-axis and q-axis are orthogonal to each other. The motor controller calculates the difference between the d-axis inductance and the q-axis inductance and determines whether the difference is less than a preset threshold. If so, the motor is determined to be a salient-pole motor.

[0034] Optionally, the difference between the d-axis inductance and the q-axis inductance can be the absolute value of the difference, i.e., |Ld - Lq|, used to characterize the magnitude of the motor's saliency. The smaller this difference, the weaker the motor's saliency. Salient polarity is the difference in electromagnetic characteristics exhibited when the d-axis inductance and q-axis inductance are not equal. The stronger the saliency, the better the effect of high-frequency injection method in extracting rotor position.

[0035] Optionally, a salient-pole motor is a motor in which the difference between the d-axis inductance and the q-axis inductance is less than a preset threshold, or it can be understood as a motor in which the d-axis inductance is approximately equal to the q-axis inductance and the salient polarity is extremely weak. The magnetic reluctance of the d-axis magnetic circuit and the q-axis magnetic circuit of this type of motor are basically the same, resulting in the d-axis inductance being almost equal to the q-axis inductance. Therefore, it cannot directly support the high-frequency injection method to effectively extract the rotor position in a stationary state.

[0036] Optionally, the first d-axis current is the DC current component applied by the motor controller to the stator windings of the motor. This DC current component, after rotational coordinate transformation, is oriented in the d-axis direction. Essentially, the motor controller applies a specific voltage vector to the three-phase stator windings of the motor by controlling the inverter, causing the current vector synthesized from the current flowing through the stator windings to have a DC component with a preset amplitude in the d-axis direction. In motor control, the d-axis and q-axis are two coordinate axes in a rotating coordinate system. The d-axis direction is aligned with the direction of the rotor permanent magnet magnetic field. Therefore, injecting current into the d-axis is essentially applying a current to the stator windings whose synthesized current vector direction is consistent with the rotor d-axis direction. The amplitude of the first d-axis current can be set according to the motor's rated current, for example, 0.2 to 0.4 times the motor's peak current.

[0037] Optionally, the function of the first d-axis current is to utilize the reluctance torque between the stator magnetic field generated by the d-axis current and the rotor permanent magnet magnetic field to drag the rotor to a preset position. Its physical meaning is as follows: when the motor controller applies a positive current in the d-axis direction to the stator windings, this positive current generates a magnetic field in the stator along the d-axis direction. This magnetic field interacts with the rotor permanent magnet magnetic field, generating a reluctance torque that drags the rotor to rotate, gradually aligning the rotor's d-axis direction with the direction of the stator's resultant current vector. When the rotor's d-axis direction is completely aligned with the stator current vector direction, the rotor reaches the equilibrium position, the reluctance torque is zero, and the rotor stabilizes at this position.

[0038] Optionally, the preset position is an electrical angle position where the direction of the d-axis current vector is aligned with the direction of the rotor permanent magnet magnetic field, specifically, an electrical angle of 0°. The electrical angle is used to describe the electrical rotation period of the rotor magnetic field. When the rotor is positioned at this preset position, the direction of the d-axis current subsequently injected by the motor controller is completely aligned with the direction of the d-axis magnetic circuit, and the current vector can act on the d-axis magnetic circuit to the maximum extent, thereby effectively affecting the saturation degree of the d-axis magnetic circuit.

[0039] Optionally, the specific implementation of the motor controller injecting the first d-axis current into the motor is as follows: the motor controller generates a corresponding switching signal through its internal pulse width modulation module, drives the power switching tube of the inverter to turn on or off, thereby applying a voltage vector in the same direction as the d-axis on the motor stator winding, and thus generating a current along the d-axis.

[0040] Understandably, this step positions the rotor to a preset position by applying a first d-axis current to the salient-pole motor, providing an accurate angular reference for subsequent operations that create inductance differences.

[0041] Step S4: After the rotor of the motor reaches the preset position, a second d-axis current of preset amplitude is injected into the motor to reduce the d-axis inductance of the motor, thereby creating an inductance difference between the d-axis inductance and the q-axis inductance of the motor. It should be noted that after the rotor is positioned in the preset position, the motor controller continues to apply a second d-axis current to the motor. This second d-axis current is also a DC current component, and its direction is the same as the first d-axis current, both along the positive d-axis. Its amplitude can be set according to the target saturation level; for example, it can be greater than or equal to the amplitude of the first d-axis current. Since the rotor is now accurately positioned in the preset position, the direction of the second d-axis current is completely aligned with the direction of the d-axis magnetic circuit. This second d-axis current can effectively act on the d-axis magnetic circuit, avoiding the current vector direction deviating from the d-axis due to rotor position deviation, thus preventing it from effectively affecting the d-axis magnetic circuit.

[0042] Optionally, d-axis magnetic circuit saturation refers to the following: when the motor controller applies a sufficiently large positive excitation current to the d-axis winding, the magnetic flux density in the d-axis magnetic circuit gradually increases and enters the saturation region of the magnetization curve. In the saturation region, the permeability decreases significantly, and the change in flux linkage caused by a unit change in current decreases, manifested as a decrease in the d-axis inductance. When no d-axis current is applied, the d-axis inductance of a salient-pole motor is essentially equal to its q-axis inductance, exhibiting extremely weak salient polarity. When the d-axis magnetic circuit saturates, the d-axis inductance decreases, while the q-axis magnetic circuit, being unexcited, maintains its original permeability, and the q-axis inductance remains essentially unchanged, thus creating a difference between the originally essentially equal d-axis and q-axis inductances.

[0043] Optionally, the inductance difference refers to the difference between the d-axis inductance and the q-axis inductance. The magnitude of this inductance difference depends on the amplitude and duration of the second d-axis current. The larger the amplitude and the longer the duration, the deeper the d-axis magnetic circuit saturation, the greater the reduction in d-axis inductance, and the greater the inductance difference. In this application, the goal of creating the inductance difference is to enable the salient-pole motor to acquire sufficient salient polarity to support the effective extraction of rotor position during subsequent start-up and acceleration using the high-frequency injection method.

[0044] Understandably, this step actively saturates the d-axis magnetic circuit through the second d-axis current, creating an inductance difference in the originally weak salient pole motor, enabling the motor to obtain sufficient salient pole to support the effective operation of the high-frequency injection method, thereby providing conditions for the high-frequency injection method to continuously extract effective rotor position information during the subsequent acceleration process of the motor from a stationary state.

[0045] Step S5: Under the condition that the inductance difference has been created and the motor is driven to accelerate from a stationary state to a preset speed, the flux linkage parameters of the motor are obtained.

[0046] It should be noted that after creating the inductance difference, the motor controller drives the motor to accelerate from a standstill. During acceleration, because the motor already possesses an inductance difference, the high-frequency injection method can continue to operate effectively during the motor's start-up and acceleration phases. That is, the motor controller injects a high-frequency voltage signal into the motor and extracts rotor position information based on the high-frequency current response. This rotor position information is then used to achieve a smooth acceleration of the motor from a standstill to a preset speed.

[0047] Optionally, the preset speed can be the medium operating speed of the motor, at which the back EMF generated by the motor is large enough to ensure that the flux linkage calculation based on the back EMF has a sufficient signal-to-noise ratio. The preset speed can be adaptively adjusted according to the number of pole pairs and rated parameters of the motor.

[0048] Optionally, the flux linkage parameter is the permanent magnet flux linkage, representing the magnitude of the magnetic flux generated by the permanent magnets in the motor rotor. The motor controller can obtain the flux linkage parameter using the back EMF method. Since the d-axis current is zero at this time, the flux linkage calculation does not include the inductance voltage drop term, thus avoiding the influence of inductance identification error on the flux linkage identification result.

[0049] Optionally, after the flux linkage parameters are obtained, the motor controller can choose to stop or switch to normal operation control according to the actual application scenario, and this application does not limit this.

[0050] Understandably, this step accelerates the motor to a preset speed based on the already created inductance difference, enabling the salient-pole motor, which was originally unable to identify flux linkage in a stationary state, to obtain back EMF without relying on external towing equipment and without hardware modification, thereby completing the accurate identification of flux linkage parameters.

[0051] In one feasible embodiment, injecting d-axis current into the motor is because d-axis current can be used to position the rotor and saturate the d-axis magnetic circuit to reduce d-axis inductance, which is a prerequisite for subsequent manufacturing of inductance differences. Specifically, when the motor controller injects d-axis current into the stator winding at a preset electrical angle (e.g., 0° electrical angle), the stator winding generates an armature reaction magnetomotive force with a fixed direction. This magnetomotive force interacts with the magnetic field of the rotor permanent magnet to generate a positioning torque with reluctance properties, dragging the rotor to a position aligned with the direction of the stator magnetic field. At the same time, after the rotor is positioned to the preset position, the continuously injected d-axis current generates an armature reaction magnetomotive force in the d-axis direction that is consistent with the direction of the permanent magnet magnetomotive force. The superposition of the two significantly increases the resultant magnetic flux density in the d-axis magnetic circuit, which can saturate the d-axis magnetic circuit to the maximum extent and obtain the maximum inductance reduction effect, thereby reducing the d-axis inductance value. Since no current excitation is applied in the q-axis direction, the q-axis magnetic circuit is unsaturated, and the q-axis inductance remains essentially unchanged. This creates an inductance difference between the d-axis and q-axis inductance sufficient to support the effective operation of the high-frequency injection method. The reason for using only the d-axis current and not the q-axis current is that the d-axis and q-axis are orthogonally decoupled in the motor's physical structure. The armature reaction magnetomotive force of the d-axis current is collinear with the magnetomotive force of the permanent magnet, and can directly act on the d-axis magnetic circuit to change its saturation level. However, the armature reaction magnetomotive force of the q-axis current is perpendicular to the d-axis direction, and its main function is to generate torque and drive the rotor to rotate. It does not superimpose on the d-axis magnetic circuit to change the saturation state of the d-axis magnetic flux, and therefore cannot achieve the purpose of selectively reducing the d-axis inductance. If current is injected into the q-axis, not only will it fail to create an inductance difference between the d-axis and q-axis, but it will also disrupt the motor's stationary state due to the generated torque, interfering with the normal parameter identification process.

[0052] In one feasible embodiment, before executing the flux linkage parameter identification method of this application, the motor controller will also identify the resistance parameters to obtain the stator resistance required for subsequent flux linkage calculation.

[0053] Optionally, the resistance parameter identification can be performed when the motor is stationary. The motor controller injects two different amplitude d-axis DC voltages into the stator windings of the motor, denoted as Ud1 and Ud2, and collects the corresponding d-axis DC currents for each voltage, denoted as Id1 and Id2. The motor controller calculates the stator resistance based on the ratio of the voltage difference to the current difference between the two injections, i.e., Rs = (Ud2-Ud1) / (Id2-Id1). Since the two voltage injections are performed by dividing the difference, the influence of initial errors and zero drift in current sampling on the resistance identification results can be eliminated.

[0054] Optionally, during the resistance parameter identification process, the motor controller can simultaneously calculate the nonlinear voltage drop value. The nonlinear voltage drop value is the voltage loss caused by nonlinear factors such as inverter dead time and power transistor turn-on / turn-off delay. Specifically, the motor controller calculates the first nonlinear voltage value Udb1 = Ud1 - Rs×Id1 and the second nonlinear voltage value Udb2 = Ud2 - Rs×Id2, and then calculates the actual nonlinear voltage drop value Udb = (Udb1 - Udb2) / 2. This nonlinear voltage drop value is used to correct the voltage term in the subsequent inductance parameter identification to eliminate the influence of inverter nonlinearity on the identification accuracy.

[0055] Optionally, inductance parameter identification can be performed when the motor is stationary. After completing resistance identification, the motor controller injects a high-frequency sinusoidal voltage signal into the stator windings of the motor. The frequency of this high-frequency sinusoidal voltage signal can be any value within the range of 200Hz to 500Hz. The motor controller collects the current response generated after the high-frequency voltage injection, extracts the maximum and minimum current amplitude values ​​within each high-frequency cycle, and records them as IsMagMax and IsMagMin, respectively. The maximum and minimum current amplitude values ​​of multiple high-frequency cycles are accumulated and recorded as IsMagMaxSum and IsMagMinSum, respectively. The motor controller uses the nonlinear voltage loss value Udb calculated in the resistance identification stage for high-frequency voltage correction, i.e., the effective high-frequency voltage is Uh - Udb, where Uh is the amplitude of the injected high-frequency voltage. The motor controller calculates the d-axis inductance using the formula Ld = (Uh-Udb)×Kcal / (IsMagMaxSum×2×π×fh) and the q-axis inductance using the formula Lq = (Uh-Udb)×Kcal / (IsMagMinSum×2×π×fh), where Kcal is the accumulated number of high-frequency cycles, π is pi, and fh is the frequency of the high-frequency voltage signal. By using the corrected effective high-frequency voltage to calculate the inductance, the accuracy of inductance identification can be improved, avoiding identification errors caused by inverter nonlinear voltage losses.

[0056] Optionally, both resistance and inductance parameter identification are completed when the motor is stationary, without the need for the motor to rotate or any external equipment, thus achieving offline acquisition of motor parameters.

[0057] Optionally, if the motor is a salient-pole motor, steps S3 to S5 in the flux linkage parameter identification method of this application need to be performed. If the motor is a non-salient-pole motor (also called a non-salient-pole motor), its inherent salient polarity is sufficient to support the high-frequency injection method to effectively extract the rotor position in a stationary state. The motor controller can directly obtain the rotor position and perform flux linkage identification using the conventional high-frequency injection method, without needing to perform the operation of creating inductance differences in steps S3 and S4 of this application.

[0058] Understandably, the identification of resistance and inductance parameters provides a prerequisite for the flux linkage parameter identification method of this application: the stator resistance is used for resistance voltage drop compensation in subsequent flux linkage calculations, the d-axis inductance and q-axis inductance are used to determine whether the motor is a non-salient pole motor and as a benchmark for subsequent inductance difference calculations, and the nonlinear voltage loss value is used to correct high-frequency voltage to ensure the accuracy of inductance identification.

[0059] This embodiment provides a flux linkage parameter identification method. First, the d-axis inductance and q-axis inductance of the motor in a stationary state are obtained. The degree of difference between these two inductances is used to determine whether the motor is a salient-pole motor. If the motor is identified as salient-pole, a first d-axis current is injected into the motor. The stator magnetic field generated by this first d-axis current pulls the rotor to a preset position, ensuring that the subsequently injected second d-axis current accurately acts in the d-axis direction. This avoids the current vector direction deviating from the d-axis due to rotor position deviation, thus preventing effective influence on the d-axis magnetic circuit. After the rotor reaches the preset position, a second d-axis current of a preset amplitude is injected into the motor. Since the direction of the d-axis current is now accurately aligned with the direction of the d-axis magnetic circuit... Alignment: The second d-axis current saturates the d-axis magnetic circuit, thereby reducing the d-axis inductance. This creates an inductance difference between the originally nearly equal d-axis and q-axis inductances, enabling the originally weakly salient-pole motor to acquire sufficient salient polarity to support the effective operation of the high-frequency injection method. Based on this, when the motor accelerates from a standstill to a preset speed, since the motor already has sufficient salient polarity, the high-frequency injection method can effectively extract rotor position information during the start-up and acceleration phases, ensuring that the motor can smoothly accelerate to the preset speed to obtain sufficient back EMF, thereby acquiring flux linkage parameters. Finally, the flux linkage parameter identification of the salient-pole motor is completed without the need for external equipment or hardware modifications. Through the technical solution of this application embodiment, the non-salient pole motor can be smoothly started and accelerated from a stationary state without the need for external dragging equipment, and no modification to the motor body hardware is required. The salient polarity difference required for high-frequency injection method operation can be created simply by current injection. Thus, the flux linkage parameters of the non-salient pole motor can be obtained without relying on external equipment and hardware modifications. This significantly reduces the operational complexity and equipment cost of motor parameter identification. At the same time, since the motor body structure is not changed, it has good versatility and portability. Overall, it can reduce the cost of obtaining flux linkage parameters and improve the efficiency of obtaining flux linkage parameters.

[0060] Based on the above embodiments of this application, in another embodiment of this application, the same or similar content as the above embodiments can be referred to the above description, and will not be repeated hereafter. Based on this, step S2 includes: Step A21: Calculate the inductance difference between the d-axis inductance and the q-axis inductance; It should be noted that after obtaining the d-axis inductance and q-axis inductance, the motor controller calculates the difference between the two to quantify the degree of absolute difference between the d-axis inductance and q-axis inductance.

[0061] Optionally, the inductance difference is the absolute value of the difference between the d-axis inductance and the q-axis inductance to ensure that the inductance difference is always a non-negative number.

[0062] Optionally, the specific implementation of the calculation is as follows: |Ld - Lq|, where Ld is the d-axis inductance, Lq is the q-axis inductance, and |·| is the absolute value sign.

[0063] It is understandable that the difference between the d-axis inductance and the q-axis inductance directly reflects the strength of the motor's saliency; the larger the difference, the stronger the saliency, and the smaller the difference, the weaker the saliency.

[0064] Step A22: Calculate the ratio of the inductance difference to the q-axis inductance to obtain the relative inductance difference; It should be noted that the relative difference in inductance is calculated as Ldelta = |Ld - Lq| / Lq, where Ld is the d-axis inductance, Lq is the q-axis inductance, |Ld - Lq| is the absolute value of the difference between the d-axis inductance and the q-axis inductance, and Lq is the q-axis inductance.

[0065] Optionally, the relative difference in inductance is used to characterize the degree of offset of the d-axis inductance relative to the q-axis inductance, eliminating the influence of the difference in absolute inductance values ​​between different motors on the judgment result, and making the judgment threshold universal across motors.

[0066] For example, if the d-axis inductance Ld is 2.5mH ​​and the q-axis inductance Lq is 2.6mH, then the relative difference in inductance is |2.5-2.6| / 2.6 ≈ 0.038.

[0067] Understandably, this step normalizes the inductance difference to the q-axis inductance, making the subsequent threshold comparison independent of absolute parameters such as motor capacity or number of winding turns.

[0068] Step A23: Compare the relative difference in inductance with a preset inductance threshold; It should be noted that the motor controller compares the relative inductance difference Ldelta with the preset inductance threshold LCoef.

[0069] Optionally, the preset inductance threshold is a value pre-stored inside the motor controller, and its value is set according to the minimum inductance difference required for the high-frequency injection method to effectively extract the rotor position in a stationary state.

[0070] Optionally, the preset inductance threshold can be any value within the range of 0.3 to 0.5. For example, when the preset inductance threshold is 0.3, it means that a motor with a relative inductance difference of less than 30% is determined to be a non-salient pole motor whose salient polarity is insufficient to support the effective operation of the high-frequency injection method.

[0071] Optionally, the comparison can be implemented by the motor controller using its internal comparator or by executing a comparison instruction to determine whether the relative difference in inductance is less than a preset inductance threshold.

[0072] Understandably, by comparing the normalized relative difference with the preset inductance threshold, it is possible to determine whether the salient polarity of the motor meets the starting requirements of the high-frequency injection method.

[0073] Step A24: When the relative difference in inductance is less than the preset inductance threshold, the motor is determined to be a non-salient pole motor.

[0074] It should be noted that when the relative difference in inductance is less than the preset inductance threshold, the motor controller determines that the motor has extremely weak salient polarity and belongs to the non-salient pole motor; conversely, when the relative difference in inductance is greater than or equal to the preset inductance threshold, the motor controller determines that the motor does not belong to the non-salient pole motor, that is, the motor itself has sufficient salient polarity.

[0075] Optionally, the determination result is stored in the register of the motor controller in the form of a flag bit. For example, FlagL = 1 indicates a non-non ...

[0076] Understandably, this step achieves automatic identification and classification of salient-pole motors through threshold comparison, providing a basis for subsequent rotor positioning and flux identification to be performed only on salient-pole motors, thus avoiding unnecessary current injection operations on motors with sufficient salient polarity.

[0077] In one possible implementation, after step S2, the following is included: Step B21: When the motor is a non-salient pole motor, a high-frequency voltage signal is injected into the motor, and the rotor position and rotor speed of the motor are extracted based on the current response generated after the high-frequency voltage signal is injected. It should be noted that when the motor controller determines that the motor is a non-salient pole motor, it means that the motor itself has sufficient salient pole, and there is no need to perform the d-axis magnetic circuit saturation operation in steps S3 and S4. The motor controller directly enters the high-frequency injection start-up process.

[0078] Optionally, a non-salient pole motor refers to a motor in which the difference between the d-axis inductance and the q-axis inductance is greater than or equal to a preset inductance threshold. This type of motor has sufficient salient pole, and there is a difference between its d-axis inductance and q-axis inductance that is sufficient to support the effective operation of the high-frequency injection method. Therefore, the high-frequency injection method can effectively extract the rotor position in a stationary state without the need to construct additional salient pole.

[0079] Optionally, the high-frequency voltage signal is an AC voltage signal with constant amplitude and high frequency applied by the motor controller to the stator winding of the motor. Its frequency can be set to half of the PWM switching frequency. For example, when the PWM switching frequency is 8kHz, the frequency of the high-frequency voltage signal is 4kHz. Optionally, the high-frequency voltage signal can be a square wave voltage signal. The motor controller alternately injects voltages of positive and negative amplitudes in continuous PWM cycles to achieve high-frequency square wave excitation.

[0080] Optionally, the current response refers to the high-frequency current signal generated in the stator winding of the motor under the excitation of a high-frequency voltage signal. The amplitude and phase of the current response are affected by the d-axis inductance and q-axis inductance of the motor, and therefore it contains rotor position information.

[0081] Optionally, the specific implementation of rotor position extraction is as follows: The motor controller performs Clark and Park transformations on the sampled three-phase currents to obtain the d-axis feedback current and q-axis feedback current. The d-axis feedback current of the current PWM cycle is subtracted from the d-axis feedback current of the previous PWM cycle, and then divided by two to obtain the high-frequency d-axis current; similarly, the high-frequency q-axis current is obtained. The motor controller performs phase-locked loop (PLL) calculations on the high-frequency q-axis current, locking it to zero. The angle output by the PLL is the rotor position. Here, the Clark transformation is a mathematical transformation that converts the current in the three-phase stationary coordinate system to the two-phase stationary coordinate system, the Park transformation is a mathematical transformation that converts the current in the two-phase stationary coordinate system to the two-phase rotating coordinate system, and the PLL is a closed-loop control algorithm that enables the estimated angle to track the actual angle in real time.

[0082] Understandably, this step, by directly injecting a high-frequency voltage signal into the non-salient pole motor and extracting the current response, allows the rotor position to be obtained in a stationary state, providing an angular reference for the subsequent starting and acceleration of the motor.

[0083] Step B22: Based on the rotor position and rotor speed, drive the motor to accelerate from the stationary state to a preset speed; It should be noted that after obtaining the initial rotor position in the stationary state in step B21, the motor controller applies a drive voltage using this initial rotor position, causing the motor to start rotating from a standstill and gradually accelerate to a preset speed. During acceleration, because the non-salient pole motor itself has sufficient salient polarity, the motor controller continuously injects a high-frequency voltage signal and continuously extracts the real-time rotor position and rotor speed during motor rotation. These real-time rotor position and rotor speed are used as feedback quantities for the speed loop and current loop, forming a closed-loop control to ensure smooth motor acceleration. That is, only the initial rotor position is obtained in the stationary state, while the rotor speed is continuously extracted and updated during the acceleration process after the motor starts rotating.

[0084] Optionally, the specific implementation of the drive motor acceleration is as follows: the motor controller uses the extracted real-time rotor position and rotor speed as feedback quantities, and uses the preset speed as the speed command. The operating speed loop proportional-integral controller generates the q-axis current command; at the same time, the operating current loop proportional-integral controller generates the d-axis voltage command and the q-axis voltage command; the motor controller generates the switching signal of the inverter power switch tube through pulse width modulation technology according to the above voltage commands, thereby applying the corresponding voltage vector on the motor stator winding to generate driving torque and accelerate the motor.

[0085] Optionally, the specific implementation of continuously extracting rotor position and rotor speed is similar to that of extracting rotor position in step B21. The difference lies in that the motor angle required for the Park transformation during acceleration is the angle estimated in the previous control cycle plus the angle increment of the current cycle, while the rotor speed is obtained by differentiating the angle using a phase-locked loop or through frequency output. Specifically, the motor controller performs high-frequency current extraction and phase-locked loop calculation in each PWM cycle. The frequency output of the phase-locked loop is the rotor speed of the current cycle, and the angle output is the rotor position of the current cycle.

[0086] Optionally, if the high-frequency injection method fails to estimate the angle or experiences convergence anomalies during acceleration due to parameter errors or other reasons, the motor controller can switch to open-loop forced drag mode. This mode assigns the rotor position and speed according to a preset acceleration and angle ramp, no longer relying on feedback information from the high-frequency injection, allowing the motor to continue accelerating to the preset speed to ensure the flux linkage identification process can continue. Open-loop forced drag means the motor controller ignores the actual rotor position feedback and forcibly applies a rotating voltage vector according to a preset angle change rate, causing the motor rotor to rotate following the voltage vector.

[0087] Understandably, this step utilizes the inherent salient polarity of the non-salient pole motor to continuously extract the rotor position and rotor speed during acceleration using a high-frequency injection method, thereby achieving smooth acceleration of the motor from standstill to the preset speed and providing speed conditions for flux linkage identification.

[0088] Step B23: After the motor reaches the preset speed, the flux linkage parameters of the motor are calculated based on the motor's voltage, current, stator resistance, and rotor speed.

[0089] It should be noted that when the motor accelerates to the preset speed, the motor runs at a sufficiently high speed. At this time, the back EMF generated by the motor is large enough, and the motor controller uses this back EMF to calculate the flux linkage parameters.

[0090] Optionally, the voltage is the actual voltage of the motor stator winding. This voltage can be directly acquired by the motor controller, or it can be calculated by the motor controller based on the voltage command value combined with the inverter duty cycle and the DC bus voltage.

[0091] Optionally, the current is the actual current of the motor stator winding, which can be obtained by sampling with a current sensor.

[0092] Optionally, the stator resistance is the phase resistance of the motor stator winding. The method for obtaining this resistance has been described in the preceding steps of this application and will not be repeated here.

[0093] Optionally, the specific implementation of calculating the flux linkage parameters is as follows: After the motor reaches the preset speed, the motor controller briefly sets the d-axis current command to zero, obtains the current q-axis voltage Uqf, q-axis current Iqf, stator resistance Rs, and electrical angular frequency w, and calculates the flux linkage parameters according to Flux = (Uqf-Rs×Iqf) / w. The relationship between the electrical angular frequency w and the rotor speed is w = rotor speed × number of pole pairs × 2π / 60. Since the d-axis current is zero at this time, the flux linkage calculation formula does not include the inductor voltage drop term, and the calculation result of the flux linkage is not affected by inductor identification error.

[0094] Optionally, after the flux linkage parameters are calculated, the motor controller can restore the normal current command, allowing the motor to continue operating according to the actual working conditions.

[0095] Understandably, this step involves directly calculating the flux linkage parameters using the back EMF method after the non-salient pole motor reaches the preset speed, thereby completing the identification of the flux linkage parameters of the non-salient pole motor under conditions without rotor positioning and salient pole construction.

[0096] For example, please refer to Figure 2 , Figure 2 This demonstrates the decision-making process of the motor controller, after completing the initial resistance and inductance identification, selecting the appropriate flux linkage parameter identification path based on different motor types (salient-pole motor or non-salient-pole motor). Specifically: The first scenario: If the current motor is determined to be a salient-pole motor (i.e., the d-axis inductance and q-axis inductance are essentially equal, with extremely weak salient polarity), then the "creating inductance difference" step is initiated. Specifically, a first d-axis current is injected into the motor to position the rotor to a preset position. Then, a second d-axis current of a preset amplitude is injected to saturate the d-axis magnetic circuit, thereby actively reducing the d-axis inductance and creating a sufficient inductance difference between the originally equal d-axis and q-axis inductances required for high-frequency injection. After this operation, the motor acquires salient polarity. A high-frequency voltage signal is then injected into the motor, and the current response is detected to extract the rotor position and speed. Based on this, the motor is driven to accelerate from a standstill to a preset speed, ultimately obtaining the flux linkage parameters.

[0097] The second scenario: If the current motor is determined to be a non-salient-pole motor (i.e., the motor itself has sufficient d-axis and q-axis inductance difference, with strong salient polarity), then the operation of creating the inductance difference mentioned above is unnecessary. A high-frequency voltage signal is directly injected into the motor, utilizing the motor's inherent salient polarity to extract the initial rotor position from a stationary state, and the motor is driven to accelerate from a standstill to a preset speed, thereby obtaining the flux linkage parameters.

[0098] Through the above process, this application can achieve adaptive flux identification path switching based on the inherent characteristics of the motor. Especially for salient pole motors, salient polarity is constructed through pure software-level current injection, eliminating the dependence on external dragging equipment or motor hardware modification.

[0099] Based on the above embodiments of this application, in another embodiment of this application, the same or similar content as the above embodiments can be referred to the above description, and will not be repeated hereafter. In addition, after step S5, the following is also included: Step D1: At the preset speed, the first rotor angle and the second rotor angle of the motor are obtained by high-frequency injection method and magnetic flux observer, respectively. It should be noted that once the motor accelerates to the preset speed, both angle estimation algorithms can operate stably at this speed. The motor controller simultaneously runs the high-frequency injection method and the flux linkage observer to obtain two independent rotor angle estimation values, which are used for subsequent correction of the inductance parameters. The meaning and range of the preset speed have been explained in detail in step S5 above, and will not be repeated here.

[0100] Optionally, the high-frequency injection method is an algorithm that estimates the rotor position by injecting a high-frequency voltage signal into the motor and extracting the current response. The motor controller continuously runs the high-frequency injection method at a preset speed to obtain the rotor angle at the current moment, which is the first rotor angle. Specifically, the first rotor angle is obtained by performing Clark and Park transforms on the sampled three-phase currents to extract the high-frequency d-axis current and high-frequency q-axis current, and then performing a phase-locked loop (PLL) calculation on the high-frequency q-axis current. The angle output by the PLL is the first rotor angle.

[0101] Optionally, the flux linkage observer is an algorithm based on the motor voltage model and current model, which estimates the rotor flux linkage and rotor angle by comparing the differences between the voltage model flux linkage and the current model flux linkage and using a proportional-integral controller for compensation. The motor controller acquires the stator voltage and stator current at the current moment, subtracts the product of the stator resistance and stator current from the stator voltage to obtain the back EMF voltage, and then performs an integral operation on this back EMF voltage to obtain the first and second components of the stator flux linkage under the voltage model at the first moment, specifically the alpha-axis component and beta-axis component of the flux linkage in the stationary coordinate system. Simultaneously, the motor controller calculates the d-axis flux linkage and q-axis flux linkage under the current model according to the motor model formula based on the sampled current at the current moment and the identified inductance parameters, and then performs an inverse Park transform on the d-axis flux linkage and q-axis flux linkage to obtain the alpha-axis component and beta-axis component of the flux linkage under the current model. The motor controller calculates the difference between the voltage model flux linkage and the current model flux linkage, performs proportional-integral (PI) adjustment on this difference to generate a compensation voltage, and feeds this compensation voltage back to the input voltage calculated by the voltage model in the next iteration to correct the integral drift of the voltage model. Then, the motor controller subtracts the product of the alpha-axis component of the sampled current and the q-axis inductance from the alpha-axis component of the voltage model flux linkage to obtain the corrected alpha-axis flux linkage; it also subtracts the product of the beta-axis component of the sampled current and the q-axis inductance from the beta-axis component of the voltage model flux linkage to obtain the corrected beta-axis flux linkage. Based on the corrected alpha-axis and beta-axis flux linkages, and combined with the angle estimated in the previous control cycle and the current motor angle inferred from the current speed, the motor controller calculates the input error signal for the phase-locked loop (PLL). The PLL performs PLL calculations on this input error signal, and the output angle of the PLL is the second rotor angle. Among them, the inverse Park transformation is a mathematical transformation that transforms physical quantities in a two-phase rotating coordinate system to a two-phase stationary coordinate system, and is the inverse transformation of the Park transformation; the proportional-integral regulator is a closed-loop control algorithm that includes proportional coefficients and integral coefficients, used to eliminate the steady-state error of the controlled variable.

[0102] Optionally, the voltage model is a mathematical model based on the motor stator voltage equation. This voltage model does not depend on rotor position information and can estimate the flux linkage using only voltage and current signals. However, the pure integration stage suffers from DC bias and initial value integration drift problems, which need to be corrected using the current model. The current model is a mathematical model based on the motor's d-axis and q-axis inductances. This current model depends on rotor position information, but this position information can be provided by the high-frequency injection method.

[0103] Understandably, this step obtains two independent rotor angle estimates by simultaneously running two angle estimation algorithms with different principles at a preset speed. The high-frequency injection method is sensitive to inductance parameters, while the flux linkage observer is not sensitive to inductance parameters, providing a comparison benchmark for subsequent correction of inductance parameters through angle deviation.

[0104] Step D2: Based on the angle difference between the first rotor angle and the second rotor angle, the q-axis inductor is corrected to obtain the corrected q-axis inductor. It should be noted that the motor controller calculates the difference between the first rotor angle and the second rotor angle to obtain the angle difference, and then corrects the q-axis inductor based on this angle difference. The principle is as follows: the first rotor angle estimated by the high-frequency injection method is sensitive to the value of the q-axis inductor; when there is an error in the q-axis inductor, the angle estimated by the high-frequency injection method will produce a corresponding deviation. However, the voltage model in the flux linkage observer does not depend on the inductor parameters, and its estimated second rotor angle is unaffected by inductor errors and can be considered as an angle reference. Therefore, the angle difference between the first and second rotor angles reflects the magnitude and direction of the q-axis inductor error. Using this angle difference to adjust the q-axis inductor in reverse allows the angle estimation result of the high-frequency injection method to converge to the angle estimation result of the flux linkage observer, thereby achieving online calibration of the q-axis inductor. The angle difference is the difference between the first rotor angle and the second rotor angle.

[0105] Optionally, the motor controller takes the absolute value of the angle difference to obtain the initial deviation value, subtracts the preset deviation threshold from the initial deviation value and applies a non-negative constraint to the result to obtain the constraint deviation value; then, it performs an integral operation on the constraint deviation value to determine the inductance compensation amount; finally, it adjusts the q-axis inductance based on the inductance compensation amount to obtain the corrected q-axis inductance.

[0106] Optionally, the q-axis inductance is the inductance component in the q-axis direction of the motor. This q-axis inductance directly affects the accuracy of the angle estimation using the high-frequency injection method. Its correction process is based on closed-loop integral adjustment of the angle error, which can gradually bring the angle error to an acceptable range.

[0107] Understandably, this step utilizes the sensitivity of the high-frequency injection method to inductance parameters and the insensitivity of the flux linkage observer to inductance parameters. By correcting the q-axis inductance in reverse through angle deviation, it achieves online closed-loop calibration of the q-axis inductance and improves the identification accuracy of the q-axis inductance.

[0108] Step D3: Correct the d-axis inductance according to the correction amount of the q-axis inductance to obtain the corrected d-axis inductance.

[0109] It should be noted that after obtaining the corrected q-axis inductance, the motor controller synchronously corrects the d-axis inductance based on the proportional relationship between the original d-axis inductance and the original q-axis inductance, as well as the correction amount for the q-axis inductance, to obtain the corrected d-axis inductance. The correction amount refers to the difference between the original q-axis inductance and the corrected q-axis inductance. Since the d-axis and q-axis inductances have the same physical structure and magnetic circuit characteristics in the motor, their changing trends are correlated, and the synchronous correction maintains the original proportional relationship.

[0110] Optionally, the motor controller calculates the ratio of the original d-axis inductance to the original q-axis inductance to obtain a proportionality coefficient, i.e., proportionality coefficient = Ld / Lq, where Ld is the original d-axis inductance and Lq is the original q-axis inductance. Then, this proportionality coefficient is multiplied by the corrected q-axis inductance to obtain the corrected d-axis inductance, i.e., LdAct = Ld×LqAct / Lq, where LdAct is the corrected d-axis inductance and LqAct is the corrected q-axis inductance. This method maintains the original proportional relationship between the d-axis and q-axis inductances, adjusting only the overall value synchronously with the correction of the q-axis inductance.

[0111] Optionally, the d-axis inductance is the inductance component in the d-axis direction of the motor, which changes proportionally and synchronously with the correction of the q-axis inductance, ensuring that the relative relationship between the two inductance parameters is consistent with the actual physical characteristics of the motor.

[0112] Understandably, this step achieves synchronous calibration of the d-axis inductance by using proportional synchronous correction, while ensuring that the relative relationship between the d-axis inductance and the q-axis inductance remains unchanged. This results in obtaining the d-axis and q-axis inductances after angle error closed-loop correction, thus completing the online fine-tuning of the inductance parameters.

[0113] In one feasible implementation, step D2 includes: Step D21: Take the absolute value of the angle difference to obtain the initial deviation value; It should be noted that after acquiring the first rotor angle and the second rotor angle, the motor controller calculates the difference between them and then takes the absolute value of this difference to obtain the initial deviation value. The angle difference is the difference between the first rotor angle and the second rotor angle; its sign reflects the relative magnitude between the two angle estimation results. Taking the absolute value of the angle difference converts negative values ​​to positive values, while positive values ​​remain unchanged, resulting in a non-negative initial deviation value. Since subsequent steps only focus on the magnitude of the angle deviation and not its direction, taking the absolute value to uniformly convert the angle difference to a non-negative number facilitates subsequent threshold comparisons and integral calculations.

[0114] Optionally, the initial deviation value ThetaErrAbs =|Theta_HFI-Theta_Flux|, where Theta_HFI is the first rotor angle, Theta_Flux is the second rotor angle, and |·| is the absolute value sign.

[0115] Understandably, this step unifies the angle deviation into an amplitude form by taking the absolute value of the angle difference, providing a unified measurement benchmark for the subsequent quantitative assessment of the degree of deviation.

[0116] Step D22: Subtract the preset deviation threshold from the initial deviation value to obtain the effective deviation value, and apply a non-negative constraint to the effective deviation value to obtain the constrained deviation value; It should be noted that the motor controller subtracts the preset deviation threshold from the initial deviation value to obtain the effective deviation value. Then, it sets the values ​​less than zero in the effective deviation value to zero to obtain the constraint deviation value. The preset deviation threshold, ThetaUseful, represents the acceptable inherent angle deviation between the two algorithms due to differences in algorithm principles and measurement noise. This preset deviation threshold can be set based on actual debugging results; for example, it can be 5°. Because the high-frequency injection method and the flux linkage observer differ in principle, even with perfectly accurate inductance parameters, the angles calculated by the two methods cannot be completely identical, resulting in a small deviation within an acceptable range. The effective deviation value is ThetaErrAct_raw = ThetaErrAbs - ThetaUseful. The non-negative constraint means setting the values ​​less than zero in the effective deviation value to zero, while keeping the values ​​greater than or equal to zero unchanged. That is, the constraint deviation value ThetaErrAct = max(ThetaErrAbs - ThetaUseful, 0), where max(·) is the maximum value function. With this non-negative constraint, when the initial deviation value is less than or equal to the preset deviation threshold, the constraint deviation value is zero, that is, the inductance correction is not triggered; only when the initial deviation value exceeds the preset deviation threshold, the excess part is taken as a valid angle deviation and enters the subsequent integration stage.

[0117] Understandably, this step filters out acceptable inherent angle deviations by setting a preset deviation threshold, and only uses the deviation portion that exceeds the acceptable range as a valid inductor error signal, thus avoiding erroneous corrections caused by inherent differences in the algorithm and improving the accuracy of inductor correction.

[0118] Step D23: Integrate the constraint deviation value to determine the inductance compensation amount, wherein the integration direction is adjusted according to the changing trend of the constraint deviation value during the integration process; It should be noted that after obtaining the constraint deviation value, the motor controller performs an integral operation on the constraint deviation value to generate an inductance compensation amount. During the integration process, it judges whether the compensation direction is correct based on the changing trend of the constraint deviation value and adjusts the integration direction accordingly. The integral operation is a mathematical operation that accumulates the input quantity over time to eliminate the steady-state error of the system. The inductance compensation amount DeltaLq is a compensation value used to adjust the q-axis inductance value. It is continuously accumulated and updated through the integral operation, gradually converging the angle deviation to an acceptable range.

[0119] Optionally, the integration operation is implemented as follows: the motor controller calculates the constraint deviation value ThetaErrAct in each PWM cycle, multiplies the constraint deviation value of the current cycle by the preset integration parameter ki_Lq, and then adds it to the inductance compensation amount of the previous PWM cycle. That is, the update formula for the inductance compensation amount is DeltaLq_new = DeltaLq_Z1 + ki_Lq × ThetaErrAct, where DeltaLq_Z1 is the inductance compensation amount of the previous PWM cycle, ki_Lq is the preset integration parameter, and ThetaErrAct is the constraint deviation value calculated in the current cycle. The integration parameter ki_Lq determines the response speed of the inductance compensation amount to the angle deviation and can be set according to the actual debugging results.

[0120] Optionally, the specific implementation of adjusting the integral direction is as follows: After a preset number of PWM cycles following the start of integral compensation, i.e., after integral compensation has been running for a period of time, the motor controller compares the constraint deviation value of the current cycle with the constraint deviation value of the preset number of cycles prior in real time. For example, starting from the k-th cycle after the start of parameter compensation integral calculation, where k can be 10 to 15 cycles, the motor controller compares the constraint deviation value ThetaErrAct of the current cycle with the constraint deviation value ThetaErrActZk of the k-th cycle prior in each PWM cycle. If the constraint deviation value of the current cycle is greater than the constraint deviation value of the k-th cycle prior, it indicates that the angle deviation has increased after compensation according to the current integral direction, i.e., the compensation direction is incorrect. The motor controller then inverts the integral parameter ki_Lq, i.e., ki_Lq = -ki_Lq, thereby reversing the direction of integral accumulation and causing the inductance compensation amount to converge in the correct direction. Here, the integral direction refers to the direction in which the inductance compensation amount increases or decreases during the integral accumulation process, determined by the sign of the integral parameter ki_Lq.

[0121] Optionally, the trend of the constraint deviation value reflects the effect of the inductance correction. When the constraint deviation value gradually decreases, it indicates that the current integration direction is correct; when the constraint deviation value gradually increases, it indicates that the current integration direction is incorrect and the integration direction needs to be reversed.

[0122] Understandably, this step generates inductance compensation by integrating the constraint deviation value and adaptively adjusts the integration direction according to the changing trend of the constraint deviation value, thereby achieving automatic convergence of the inductance compensation and avoiding angular deviation divergence caused by incorrect compensation direction.

[0123] Step D24: Adjust the q-axis inductance based on the inductance compensation amount to obtain the corrected q-axis inductance.

[0124] It should be noted that after determining the inductance compensation amount, the motor controller uses this compensation amount to adjust the original q-axis inductance, obtaining the corrected q-axis inductance. This adjustment refers to subtracting the inductance compensation amount from the original q-axis inductance.

[0125] Optionally, the adjustment is implemented as follows: the motor controller subtracts the inductance compensation amount DeltaLq from the original q-axis inductance Lq, i.e., LqAct = Lq - DeltaLq, where LqAct is the corrected q-axis inductance. Since the integral direction of the inductance compensation amount has been adjusted to the direction that reduces the angle deviation, after subtracting the inductance compensation amount from the original q-axis inductance, the inductance value changes in the direction that converges the angle deviation.

[0126] Optionally, the motor controller is also equipped with a correction limit for the q-axis inductance, which limits the corrected q-axis inductance to a preset minimum value LqActMin and a maximum value LqActMax, to avoid integral saturation causing the inductance value to exceed a reasonable range and to ensure the stability of the correction.

[0127] Optionally, the inductance compensation can be positive or negative. When the inductance compensation is positive, the original q-axis inductance decreases after subtracting the positive value; when the inductance compensation is negative, the original q-axis inductance increases after subtracting the negative value. The sign reversal of the integral parameter allows the inductance compensation to adaptively change in the direction that converges the angle deviation.

[0128] Understandably, this step completes the closed-loop correction of the q-axis inductor by applying the inductance compensation obtained from the integral operation to the q-axis inductor. This corrected q-axis inductor makes the angle estimation results of the high-frequency injection method more consistent with the angle estimation results of the flux linkage observer, thereby improving the identification accuracy of the q-axis inductor.

[0129] In one feasible implementation, step D3 includes: Step D31: The ratio of the corrected q-axis inductance to the q-axis inductance is used as the correction amount for the q-axis inductance; It should be noted that after obtaining the corrected q-axis inductance, the motor controller calculates the ratio between the corrected q-axis inductance and the original q-axis inductance. This ratio is used to characterize the degree of relative change in the q-axis inductance after correction in step D2.

[0130] Optionally, the ratio of the corrected q-axis inductance LqAct to the original q-axis inductance Lq is LqAct / Lq. This ratio reflects the scaling factor of the q-axis inductance before and after correction. When the ratio is greater than 1, it indicates that the corrected q-axis inductance is larger than the original value; when the ratio is less than 1, it indicates that the corrected q-axis inductance is smaller than the original value; when the ratio is equal to 1, it indicates that the q-axis inductance has not changed. Optionally, after determining this ratio, the motor controller uses it as the correction amount for the q-axis inductance for subsequent synchronous correction of the d-axis inductance. The correction amount is a dimensionless proportionality coefficient used to represent the relative change factor of the inductance parameter.

[0131] Understandably, this step quantifies the correction amount of the q-axis inductance into a relative proportional coefficient by calculating the ratio of the corrected q-axis inductance to the original q-axis inductance, thus providing a basis for the synchronous correction of the d-axis inductance at the same proportion.

[0132] Step D32: Based on the correction amount of the q-axis inductance and the d-axis inductance, obtain the corrected d-axis inductance.

[0133] It should be noted that after obtaining the correction amount for the q-axis inductance, the motor controller multiplies this correction amount by the original d-axis inductance to obtain the corrected d-axis inductance. Optionally, the corrected d-axis inductance LdAct = Ld×(LqAct / Lq), where Ld is the original d-axis inductance, and LqAct / Lq is the correction amount for the q-axis inductance determined in step D31. This method scales the d-axis inductance according to the same ratio as the q-axis inductance, maintaining the original proportional relationship between the d-axis and q-axis inductances, and only adjusting the values ​​synchronously with the correction of the q-axis inductance.

[0134] Optionally, since the d-axis inductance and q-axis inductance have the same physical structure and magnetic circuit characteristics in the motor, their changing trends are correlated. When the q-axis inductance changes due to angle closed-loop correction, the d-axis inductance changes synchronously in the same proportion, which conforms to the physical characteristics of the motor. Optionally, the motor controller can also be set with a correction limit for the d-axis inductance, limiting the corrected d-axis inductance between a preset minimum and maximum value to prevent the d-axis inductance from exceeding a reasonable range due to abnormal correction.

[0135] Understandably, this step achieves synchronous proportional correction of the d-axis inductance by multiplying the d-axis inductance by the correction amount of the q-axis inductance. Under the premise of keeping the relative relationship between the d-axis inductance and the q-axis inductance unchanged, the d-axis inductance after angle error closed-loop correction is obtained, thus completing the online fine-tuning and parameter output of the d-axis inductance and the q-axis inductance.

[0136] This embodiment, after acquiring the flux linkage parameters, first addresses the problem of insufficient salient polarity in salient-pole motors by actively creating salient polarity differences in static and low-to-medium speed states, enabling accurate acquisition of flux linkage parameters without external equipment dragging or hardware modification. Then, after the motor accelerates to a preset speed, it further utilizes the high-frequency injection method and the different sensitivities of the flux linkage observer to inductance parameters. By estimating the angle deviation between the two methods, closed-loop online calibration is performed on the initially acquired inductance parameters, allowing for further fine-tuning of the inductance parameters after flux linkage acquisition. This effectively avoids the impact of residual inductance errors from current sampling fluctuations and voltage nonlinearity in the initial identification stage on parameter accuracy, significantly improving the identification accuracy of inductance parameters. Thus, without relying on external equipment or hardware modifications, a complete and accurate acquisition of the resistance, inductance, and flux linkage parameters of a salient-pole motor is achieved in a fully closed-loop manner, balancing identification accuracy and ease of implementation.

[0137] For example, please refer to Figure 3 , Figure 3 This application demonstrates the process of performing closed-loop correction on the initially identified d-axis and q-axis inductances after the motor reaches a preset speed (medium-speed operation). This correction is achieved by comprehensively comparing angle information obtained through two different principles: high-frequency injection and flux linkage observation. Specifically: First, after the motor reaches the preset speed, the motor controller simultaneously runs two angle estimation algorithms: obtaining the first rotor angle at the current moment through a high-frequency injection method and obtaining the second rotor angle at the current moment through a flux linkage observer. Since the high-frequency injection method is sensitive to deviations in inductance parameters, while the voltage model in the flux linkage observer does not depend on inductance parameters, the angle difference between the two can reflect the error in inductance parameters.

[0138] Then, the angle difference between the first rotor angle and the second rotor angle is calculated, and the absolute value of the angle difference is taken to obtain the initial deviation value. Subsequently, a preset deviation threshold (used to eliminate acceptable inherent errors caused by the difference in the principles of the two algorithms) is subtracted from the initial deviation value, and non-negative constraint processing is performed to obtain the effective constraint deviation value for subsequent correction.

[0139] Next, the aforementioned constraint deviation value is integrated to generate the inductance compensation amount. During this process, the effect of the integral compensation is monitored in real time: if the angle deviation increases after compensation, it indicates an incorrect compensation direction, and the controller will automatically reverse the integration direction. Finally, the calculated inductance compensation amount is applied to the original q-axis inductance, adjusting and outputting the corrected q-axis inductance.

[0140] Then, since the d-axis inductance and q-axis inductance are correlated in the motor's physical structure and magnetic circuit characteristics, the ratio of the corrected q-axis inductance to the original q-axis inductance is calculated to obtain the correction amount for the q-axis inductance. Subsequently, this correction amount is multiplied by the original d-axis inductance to synchronously adjust and obtain the corrected d-axis inductance.

[0141] In summary, after obtaining the flux linkage parameters, the motor controller corrects the inductance parameters by using the angle difference, thus obtaining the high-precision d-axis inductance and q-axis inductance after closed-loop correction of the angle error.

[0142] It should be noted that the above examples are only for understanding this application and do not constitute a limitation on the magnetic flux linkage parameter identification method of this application. Based on this technical concept, more simple transformations can be made, such as the various embodiments can be interacted or combined, all of which are within the protection scope of this application.

[0143] This application also provides a parameter identification device, please refer to... Figure 4 The parameter identification device includes: The inductance acquisition module 10 is used to acquire the d-axis inductance and q-axis inductance of the motor when the motor is stationary. The judgment module 20 is used to determine whether the motor is a non-salient pole motor based on the d-axis inductance and the q-axis inductance. The first injection module 30 is used to inject a first d-axis current into the motor when the motor is a non-salient pole motor, so as to position the rotor of the motor to a preset position; The second injection module 40 is used to inject a second d-axis current of a preset amplitude into the motor after the rotor of the motor reaches a preset position, so as to reduce the d-axis inductance of the motor and create an inductance difference between the d-axis inductance and the q-axis inductance of the motor. The flux linkage acquisition module 50 is used to acquire the flux linkage parameters of the motor under the condition that the inductance difference has been generated and the motor is driven to accelerate from a stationary state to a preset speed.

[0144] Optionally, the determination module 20 is used to obtain the d-axis inductance and q-axis inductance of the motor when the motor is in a stationary state; Based on the d-axis inductance and the q-axis inductance, determine whether the motor is a non-salient pole motor.

[0145] Optionally, the determination module is used to calculate the inductance difference between the d-axis inductance and the q-axis inductance; Calculate the ratio of the inductance difference to the q-axis inductance to obtain the relative inductance difference; Compare the relative difference in inductance with a preset inductance threshold; When the relative difference in inductance is less than the preset inductance threshold, the motor is determined to be a non-salient pole motor.

[0146] Optionally, the parameter identification device includes: a high-frequency injection module, used to inject a high-frequency voltage signal into the motor when the motor is a non-salient pole motor, and extract the rotor position and rotor speed of the motor based on the current response generated after the high-frequency voltage signal is injected; Based on the rotor position and rotor speed, the motor is driven to accelerate from the stationary state to a preset speed; After the motor reaches the preset speed, the flux linkage parameters of the motor are calculated based on the motor's voltage, current, stator resistance, and rotor speed.

[0147] Optionally, the parameter identification device includes: a correction module, used to obtain the first rotor angle and the second rotor angle of the motor respectively at the preset speed by high-frequency injection method and magnetic flux observer; The q-axis inductor is corrected based on the angle difference between the first rotor angle and the second rotor angle to obtain the corrected q-axis inductor. Based on the correction amount of the q-axis inductance, the d-axis inductance is corrected to obtain the corrected d-axis inductance.

[0148] Optionally, the correction module is used to take the absolute value of the angle difference to obtain an initial deviation value; Subtract the preset deviation threshold from the initial deviation value to obtain the effective deviation value, and apply a non-negative constraint to the effective deviation value to obtain the constrained deviation value; The constraint deviation value is integrated to determine the inductance compensation amount, wherein the integration direction is adjusted according to the changing trend of the constraint deviation value during the integration process. The q-axis inductance is adjusted based on the inductance compensation amount to obtain the corrected q-axis inductance.

[0149] Optionally, the correction module is used to use the ratio of the corrected q-axis inductance to the q-axis inductance as the correction amount for the q-axis inductance; The corrected d-axis inductance is obtained based on the correction amount of the q-axis inductance and the d-axis inductance.

[0150] The parameter identification device provided in this application, employing the flux linkage parameter identification method in the above embodiments, can solve the technical problem of high cost and low efficiency in obtaining flux linkage parameters of existing salient-pole motors, which requires reliance on external equipment or modification of the motor hardware. Compared with the prior art, the beneficial effects of the parameter identification device provided in this application are the same as those of the flux linkage parameter identification method provided in the above embodiments, and other technical features in the parameter identification device are the same as those disclosed in the methods of the above embodiments, and will not be repeated here.

[0151] This application provides a motor controller, which includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, which are executed by the at least one processor to enable the at least one processor to perform the flux linkage parameter identification method in the first embodiment described above.

[0152] The following is for reference. Figure 5 It shows a schematic diagram of a motor controller suitable for implementing the embodiments of this application. Figure 5 The motor controller shown is merely an example and should not be construed as limiting the functionality and scope of use of the embodiments of this application.

[0153] like Figure 5 As shown, the motor controller may include a processing unit 1001 (e.g., a central processing unit, a graphics processing unit, etc.), which can perform various appropriate actions and processes according to a program stored in a read-only memory 1002 or a program loaded from a storage device 1003 into a random access memory 1004. The random access memory 1004 also stores various programs and data required for the operation of the motor controller. The processing unit 1001, the read-only memory 1002, and the random access memory 1004 are interconnected via a bus 1005. An input / output interface 1006 is also connected to the bus. Typically, the following systems can be connected to the input / output interface 1006: input devices 1007 including, for example, a touchscreen, touchpad, keyboard, mouse, image sensor, microphone, accelerometer, gyroscope, etc.; output devices 1008 including, for example, a liquid crystal display (LCD), speaker, vibrator, etc.; storage devices 1003 including, for example, magnetic tape, hard disk, etc.; and communication devices 1009. The communication device 1009 allows the motor controller to communicate wirelessly or wiredly with other devices to exchange data. Although the diagram shows motor controllers with various systems, it should be understood that it is not required to implement or have all of the systems shown. Alternatively, more or fewer systems may be implemented.

[0154] Specifically, according to the embodiments disclosed in this application, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments disclosed in this application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication device, or installed from storage device 1003, or installed from read-only memory 1002. When the computer program is executed by processing device 1001, it performs the functions defined in the methods of the embodiments disclosed in this application.

[0155] The motor controller provided in this application, employing the flux linkage parameter identification method described in the above embodiments, solves the technical problem of high cost and low efficiency in obtaining flux linkage parameters for existing salient-pole motors, which requires reliance on external equipment or modification of the motor hardware. Compared with the prior art, the beneficial effects of the motor controller provided in this application are the same as those of the flux linkage parameter identification method provided in the above embodiments, and other technical features of this motor controller are the same as those disclosed in the previous embodiment method, and will not be repeated here.

[0156] It should be understood that the various parts disclosed in this application can be implemented using hardware, software, firmware, or a combination thereof. In the description of the above embodiments, specific features, structures, materials, or characteristics can be combined in any suitable manner in one or more embodiments or examples.

[0157] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

[0158] This application provides a computer-readable storage medium having computer-readable program instructions (i.e., a computer program) stored thereon, which are used to execute the magnetic flux parameter identification method in the above embodiments.

[0159] The computer-readable storage medium provided in this application may be, for example, a USB flash drive, but is not limited to, electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems or devices, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to: electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this embodiment, the computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system or device. The program code contained on the computer-readable storage medium may be transmitted using any suitable medium, including but not limited to: wires, optical cables, RF (Radio Frequency), etc., or any suitable combination thereof.

[0160] The aforementioned computer-readable storage medium may be included in the motor controller; or it may exist independently and not be assembled into the motor controller.

[0161] Computer program code for performing the operations of this application can be written in one or more programming languages ​​or a combination thereof, including object-oriented programming languages ​​such as Java, Smalltalk, and C++, and conventional procedural programming languages ​​such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a Local Area Network (LAN) or a Wide Area Network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0162] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0163] The modules described in the embodiments of this application can be implemented in software or hardware. The names of the modules do not necessarily limit the functionality of the unit itself.

[0164] The readable storage medium provided in this application is a computer-readable storage medium that stores computer-readable program instructions (i.e., a computer program) for executing the above-described flux linkage parameter identification method. This solves the technical problem that the acquisition of flux linkage parameters in existing salient-pole motors requires reliance on external equipment or modification of the motor hardware, resulting in high costs and low efficiency. Compared with the prior art, the beneficial effects of the computer-readable storage medium provided in this application are the same as those of the flux linkage parameter identification method provided in the above embodiments, and will not be repeated here.

[0165] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the magnetic flux linkage parameter identification method described above.

[0166] The computer program product provided in this application can solve the technical problem that the acquisition of flux linkage parameters in existing salient-pole motors requires reliance on external equipment or modification of the motor hardware, resulting in high cost and low efficiency in acquiring flux linkage parameters. Compared with the prior art, the beneficial effects of the computer program product provided in this application are the same as those of the flux linkage parameter identification method provided in the above embodiments, and will not be repeated here.

[0167] The above description is only a part of the embodiments of this application and does not limit the patent scope of this application. All equivalent structural transformations made under the technical concept of this application and using the contents of the specification and drawings of this application, or direct / indirect applications in other related technical fields, are included in the patent protection scope of this application.

Claims

1. A method for identifying magnetic flux linkage parameters, characterized in that, The magnetic flux linkage parameter identification method includes: When the motor is stationary, obtain the d-axis inductance and q-axis inductance of the motor; Based on the d-axis inductance and the q-axis inductance, determine whether the motor is a non-salient pole motor; When the motor is a non-salient pole motor, a first d-axis current is injected into the motor to position the rotor of the motor to a preset position; After the rotor of the motor reaches a preset position, a second d-axis current of a preset amplitude is injected into the motor to reduce the d-axis inductance of the motor, thereby creating an inductance difference between the d-axis inductance and the q-axis inductance of the motor. Under the condition that the inductance difference has been created and the motor is driven to accelerate from a stationary state to a preset speed, the flux linkage parameters of the motor are obtained.

2. The method of claim 1, wherein, The step of determining whether the motor is a salient-pole motor based on the d-axis inductance and the q-axis inductance includes: Calculate the inductance difference between the d-axis inductance and the q-axis inductance; Calculate the ratio of the inductance difference to the q-axis inductance to obtain the relative inductance difference; Compare the relative difference in inductance with a preset inductance threshold; When the relative difference in inductance is less than the preset inductance threshold, the motor is determined to be a non-salient pole motor.

3. The method of claim 1, wherein, After the step of determining whether the motor is a salient-pole motor based on the d-axis inductance and the q-axis inductance, the method further includes: When the motor is a non-salient pole motor, a high-frequency voltage signal is injected into the motor, and the rotor position and rotor speed of the motor are extracted based on the current response generated after the high-frequency voltage signal is injected. Based on the rotor position and rotor speed, the motor is driven to accelerate from the stationary state to a preset speed; After the motor reaches the preset speed, the flux linkage parameters of the motor are calculated based on the motor's voltage, current, stator resistance, and rotor speed.

4. The method of claim 1, wherein, After the step of obtaining the flux linkage parameters of the motor under the condition that the inductance difference has been generated and the motor is driven to accelerate from a standstill to a preset speed, the method further includes: At the preset speed, the first rotor angle and the second rotor angle of the motor are obtained by high-frequency injection method and magnetic flux observer, respectively. The q-axis inductor is corrected based on the angle difference between the first rotor angle and the second rotor angle to obtain the corrected q-axis inductor. Based on the correction amount of the q-axis inductance, the d-axis inductance is corrected to obtain the corrected d-axis inductance.

5. The method of claim 4, wherein, The step of correcting the q-axis inductor based on the angle difference between the first rotor angle and the second rotor angle to obtain the corrected q-axis inductor includes: The initial deviation value is obtained by taking the absolute value of the angle difference; Subtract the preset deviation threshold from the initial deviation value to obtain the effective deviation value, and apply a non-negative constraint to the effective deviation value to obtain the constrained deviation value; The constraint deviation value is integrated to determine the inductance compensation amount, wherein the integration direction is adjusted according to the changing trend of the constraint deviation value during the integration process. The q-axis inductance is adjusted based on the inductance compensation amount to obtain the corrected q-axis inductance.

6. The method of claim 4, wherein, The step of correcting the d-axis inductance based on the correction amount of the q-axis inductance to obtain the corrected d-axis inductance includes: The ratio of the corrected q-axis inductance to the q-axis inductance is used as the correction amount for the q-axis inductance. The corrected d-axis inductance is obtained based on the correction amount of the q-axis inductance and the d-axis inductance.

7. A parameter identification device, characterized by The parameter identification device includes: An inductance acquisition module is used to acquire the d-axis inductance and q-axis inductance of the motor when the motor is stationary. The judgment module is used to determine whether the motor is a non-salient pole motor based on the d-axis inductance and the q-axis inductance. The first injection module is used to inject a first d-axis current into the motor when the motor is a non-salient pole motor, so as to position the rotor of the motor to a preset position; The second injection module is used to inject a second d-axis current of a preset amplitude into the motor after the rotor of the motor reaches a preset position, so as to reduce the d-axis inductance of the motor and create an inductance difference between the d-axis inductance and the q-axis inductance of the motor. The flux linkage acquisition module is used to acquire the flux linkage parameters of the motor under the condition that the inductance difference has been generated and the motor is driven to accelerate from a stationary state to a preset speed.

8. An electric machine controller characterized by The motor controller includes: a memory, a processor, and a computer program stored in the memory and executable on the processor, the computer program being configured to implement the steps of the flux linkage parameter identification method as described in any one of claims 1 to 6.

9. A storage medium, characterized by The storage medium is a computer-readable storage medium, and a computer program is stored on the storage medium. When the computer program is executed by a processor, it implements the steps of the magnetic flux linkage parameter identification method as described in any one of claims 1 to 6.

10. A computer program product, characterized in that, The computer program product includes a computer program that, when executed by a processor, implements the steps of the magnetic flux linkage parameter identification method as described in any one of claims 1 to 6.