Motor Control Using Piecewise Affine Models

JP2025505533A5Pending Publication Date: 2026-01-28TAU MOTORS INC +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024544413
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-01-10
Filing Date
2023-01-27
Publication Date
2026-01-28

AI Technical Summary

Benefits of technology

【0017】 本開示の前述および他の態様ならびに利点は、以下の説明から明らかになるであろう。説明では、本明細書の一部を形成し、1つまたは複数の実施形態を例示として示す添付の図面を参照する。しかしながら、これらの実施形態は必ずしも本発明の全範囲を表すものではなく、したがって、本発明の範囲を解釈するために特許請求の範囲および本明細書を参照する。以下の説明では、図から図への同様の部分を指すために同様の参照番号が使用される。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A system and method for motor control using a piecewise affine model is disclosed. An electronic controller can determine current values ​​for a motor in a rotating reference frame. Each current value may be associated with one dimension of a set of dimensions of the rotating reference frame. The electronic controller can further determine flux linkage values ​​for each of the set of dimensions of the rotating reference frame using the piecewise affine map based on the current values. The electronic controller can further determine target flux linkage values ​​for each of the set of dimensions of the rotating reference frame. The electronic controller can then control a power switching network coupled between a power source and the motor based on the flux linkage values ​​and the target flux linkage values.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims priority to U.S. Provisional Patent Application No. 63 / 304,527, filed January 28, 2022, U.S. Provisional Patent Application No. 63 / 345,879, filed May 25, 2022, U.S. Provisional Patent Application No. 63 / 409,418, filed September 23, 2022, U.S. Provisional Patent Application No. 63 / 420,360, filed October 28, 2022, and U.S. Provisional Patent Application No. 63 / 479,352, filed January 10, 2023, each of which is incorporated by reference in its entirety herein.

[0002] (Statement regarding federally funded research) Not applicable. [Background technology]

[0003] Electric machines (e.g., electric motors) use magnetic fields and currents to generate torque and ferromagnetic materials to maximize and channel magnetic flux. In particular, modern electric machine designs may aim to minimize core material to reduce motor weight and cost. This relationship between magnetic flux and the current that generates the flux is generally nonlinear and exhibits saturation and cross-saturation. This relationship can be modeled using a magnetic model (MM), also called a flux linkage map. Digital controllers for electric machines, even linearized ones, can use MMs. The accuracy and performance of these controllers can depend heavily on the accuracy of the MM for some machines and applications. MMs can be categorized into static (offline) and dynamic (online) methods and can include other nonlinear drive system effects such as, for example, switching harmonics, switching dead time, iron losses, and machine temperature. Offline MMs can measure inductance at various operating points using one or a combination of finite element analysis (FEA), analytical calculations, and experimental values. The discrete values ​​obtained by these methods may be linked together using various methods. Online MM can use a combination of online estimated parameters from real-time measurements and offline MM to generate a dynamic MM. Such dynamic MM models can have the ability to adapt in real-time to temperature, switch dead time, PWM harmonics, aging, and part failures. Examples of online estimation techniques used in dynamic MM include extended Kalman filters, observer-based LPV, neural networks, and Taylor series approximation. Summary of the Invention [Problem to be solved by the invention]

[0004] Both offline and online MM methods are subject to the computational and memory constraints of the digital signal processor (DSP) used to control the electric motor. Various types of electric motors are manufactured and used in many industries and environments. The complexity of the control techniques may vary depending on the type of motor. As an example of a type of motor, a synchronous motor is an alternating current (AC) motor having a stator driven by AC supply signals (e.g., one signal for each phase of the stator) to rotate the rotor. More specifically, the AC supply signal at the stator windings of the stator generates a magnetic field that interacts with one or more magnetic fields of the rotor to rotate the rotor rotation. The rotor rotation is generally synchronous with the frequency of the AC supply current. The rotor may be a permanent magnet rotor, a wound field rotor, or a hybrid rotor that includes both wound field and permanent magnets. In the case of a permanent magnet rotor, one or more permanent magnets of the rotor generate one or more magnetic fields of the rotor. In the case of a wound field rotor, current is supplied to one or more field windings of the rotor to generate one or more magnetic fields of the rotor. In the case of a hybrid rotor, both the permanent magnets receiving current and the wound field generate the rotor's magnetic field or fields.

[0005] To efficiently drive a synchronous motor, it can be difficult to control the application of current to the stator windings, and in the case of a wound field rotor, the rotor winding, at specific times and amplitudes. For example, a motor controller can control an inverter to provide AC signals to each phase of the motor based on the current rotor position and other characteristics of the motor. The physics of the magnetic fields of each stator winding interacting with the rotating rotor can create complex mathematical problems that are difficult to create and solve to address the factors that lead to efficiently driving the motor, and these challenges can be exacerbated in the case of wound field synchronous (WFS) motors because of the addition of a wound field rotor. WFS motors are also sometimes called wound rotor synchronous machines (WRSM), wound field synchronous machines (WFSM), wound rotor synchronous generators (WRSG), wound field synchronous generators (WFSG), and several other names.

[0006] In some systems, the motor controller operates using a rotating reference frame to simplify motor control. For example, transformations based on Clarke and Park transformations can be used to measure motor characteristics (in a stationary reference frame) and transform them into a direct quadrature null (DQN) space, or a DQN+rotor (R) space or frame of reference (also called DQNR, RDQNull, and RDQO reference frames). In other words, motor characteristics (e.g., stator current, rotor current, and rotor position) can be transformed into D-axis, Q-axis, N-axis (or O-axis), and R (rotor field) values. By using a rotating reference frame in which the stator rotates at the frequency of the AC signal, the AC signal can be treated as a DC signal (i.e., D, Q, N, and R values), simplifying the calculations used to determine the control signals. The desired DQN and R values ​​can be calculated based on the determined DQN and R values ​​and then transformed back into stator and rotor control values ​​in the stationary reference frame to control the motor. In some instances, the rotor field dimensions in this reference frame are referenced using the variables "F" or "f" (i.e., for rotor field) instead of "R" or "r".

[0007] Compared to permanent magnet (PM) synchronous motors, in the RDQN control scheme for WFS motors, the rotor provides additional state cross-coupling between the (stator) D-axis and R (rotor field) in addition to the coupling states between the (stator) D-axis and the Q-axis that may exist for both PM synchronous motors and WFS motors. In other words, for both PM synchronous motors and WFS motors, changes to the D-axis affect the Q-axis and changes to the Q-axis affect the D-axis. However, for WFS motors, additional control complexity exists in that changes to the D-axis affect the R and changes to R affect the D-axis. The cross-coupling between the D-axis and R-components is due, at least in some cases, to the inherent air gap between the stator and rotor. These cross-couplings increase the complexity and present a challenge to designing motors and motor controllers for high performance applications of WFS motors.

[0008] Some embodiments disclosed herein address these and other problems. For example, some embodiments disclosed herein relate to motor control using piecewise affine (PWA) modeling. Such motor control can enable off-line MM-based motor control that reduces the use of computational and memory resources of a motor controller (e.g., DSP) while providing improved motor control accuracy over other off-line MM-based motor control techniques. Although described herein primarily with respect to WFS or permanent magnet synchronous (PMS) motors, motor control using PWA modeling is also applicable to other motor types, including other brushless motors having permanent magnet rotors, induction motors, universal motors, reluctance motors (synchronous and switched), and the like. Furthermore, as is well known, an electric machine that serves as an electric motor, outputting mechanical power from input electrical power, may also operate in reverse and serve as a generator, outputting electrical power from input mechanical power. Thus, for ease of description, the electric machines described herein are generally referred to as electric motors, but are also meant to encompass generators and devices that can operate as both electric motors and generators. That is, the motor control techniques described herein can also be applied to control an electric motor operating as a generator. The term "electric machine" may also be used to refer generically to either or both electric motors and generators. [Means for solving the problem]

[0009] In one embodiment, a motor control system is provided that includes a power switching network configured to be coupled to a power source, a motor coupled to the power switching network, and an electronic controller configured to determine current values ​​for the motor in a rotating reference frame, each associated with one dimension of a set of dimensions of the rotating reference frame, determine flux linkage values ​​for each dimension of the set of dimensions of the rotating reference frame using a piecewise affine map based on the current values, determine target flux linkage values ​​for each dimension of the set of dimensions of the rotating reference frame, and control the power switching network based on the flux linkage values ​​and the target flux linkage values.

[0010] In another embodiment, a method of controlling a motor is provided that includes determining, by an electronic controller, current values ​​for the motor in a rotating reference frame, each associated with a dimension of a set of dimensions of the rotating reference frame, determining flux linkage values ​​for each of the set of dimensions of the rotating reference frame using a piecewise affine map based on the current values, determining, by the electronic controller, target flux linkage values ​​for each of the set of dimensions of the rotating reference frame, and controlling, by the electronic controller, a power switching network coupled between a power source and the motor based on the flux linkage values ​​and the target flux linkage values.

[0011] In another embodiment, a motor system is provided that includes an electronic controller including a processor and a memory, the electronic controller configured to obtain a dataset of current-flux linkage pairs for an operating point of the electric motor, apply a domain decomposition algorithm to the dataset to generate current simplexes and flux linkage simplexes, and store the current simplexes and flux linkage simplexes in the memory.

[0012] In another embodiment, a method of controlling a motor is provided that includes obtaining, by an electronic controller, a dataset of current-flux linkage pairs for an operating point of an electric motor, applying, by the electronic controller, a domain decomposition algorithm to the dataset to generate current simplexes and flux linkage simplexes, and storing, by the electronic controller, the current simplexes and flux linkage simplexes in a memory.

[0013] In another embodiment, a motor system is provided. The motor system includes a power switching network configured to be coupled to a power source, a motor coupled to the power switching network, and an electronic controller. The electronic controller is configured to determine current values ​​for the motor in a rotating reference frame, each associated with one dimension of a set of dimensions of the rotating reference frame, determine target motor control parameter values ​​for each dimension of the set of dimensions of the rotating reference frame based on desired control parameters using a first piecewise affine map that defines a minimum power loss per torque (MPLPT) function, and control the power switching network based on the current values ​​and the target motor control parameter values.

[0014] In another embodiment, a method of controlling a motor is provided that includes determining, by an electronic controller, current values ​​for a motor in a rotating reference frame, each associated with a dimension of a set of dimensions of the rotating reference frame, determining, by the electronic controller, target motor control parameter values ​​for each dimension of the set of dimensions of the rotating reference frame using a first piecewise affine map based on desired control parameters, and controlling, by the electronic controller, a power switching network based on the current values ​​and the target motor control parameter values.

[0015] In another embodiment, a motor system is provided that includes a power switching network configured to be coupled to a power source, a motor coupled to the power switching network, and an electronic controller configured to determine current values ​​for the motor in a rotating reference frame, each associated with one dimension of a set of dimensions of the rotating reference frame, determine target motor control parameter values ​​for each dimension of the set of dimensions of the rotating reference frame based on desired control parameters, and control the power switching network based on the current values ​​and the target motor control parameter values ​​by using a piecewise affine map defined by offline solving of a constrained finite-time optimal control algorithm using sample inputs.

[0016] In another embodiment, a method is provided that includes determining, by an electronic controller, current values ​​for a motor in a rotating reference frame, each associated with a dimension of a set of dimensions of the rotating reference frame, determining, by the electronic controller, target motor control parameter values ​​for each dimension of the set of dimensions of the rotating reference frame based on desired control parameters, and controlling, by the electronic controller, a power switching network based on the current values ​​and the target motor control parameter values ​​by using a piecewise affine map defined by offline solution of a model predictive control algorithm using sample inputs.

[0017] The above and other aspects and advantages of the present disclosure will become apparent from the following description. In the description, reference is made to the accompanying drawings, which form a part of this specification and show one or more embodiments by way of example. However, these embodiments do not necessarily represent the full scope of the invention, and therefore, reference is made to the claims and this specification to interpret the scope of the invention. In the following description, like reference numerals are used to refer to like parts from figure to figure. [Brief description of the drawings]

[0018] [Figure 1] 1 illustrates a motor system according to some embodiments. [Diagram 2] 2 illustrates an example of the motor system of FIG. 1 including a controller that implements a current-flux piecewise affine (PWA) map, according to some embodiments. [Diagram 3] 1 illustrates a process for controlling a motor using a PWA map according to some embodiments. [Figure 4] 1 illustrates a configuration system according to some embodiments. [Diagram 5] Two plots are shown for an example data set of current-flux linkage pairs in the RDQ domain of a three-phase wound field synchronous motor (WFSM). [Figure 6] 1 illustrates the process of generating a PWA map using an irregularly spaced grid of operating points. [Figure 7A-C] 6 shows heatmaps of the respective 2-norm errors of the PWA maps generated using the process in FIG. [Fig. 7D-F] 6 shows heatmaps of the respective 2-norm errors of the PWA maps generated using the process in FIG. [Figure 8A-C] We show examples of PWA maps generated from datasets of regularly sampled current grids that have been downsampled to various degrees. [Figure 9A] 2 illustrates another example of the motor system of FIG. 1 including a controller implementing an MPLPT control scheme according to some embodiments. [Figure 9B] 1 illustrates a process for implementing MPLPT motor control using a piecewise affine model according to some embodiments. [Figure 10A] 1 illustrates relationships between sets of data points that may be considered for use in generating an MPLPT control scheme, according to some embodiments. [Figure 10B] 10B illustrates an example point of the set of data points of FIG. 10A according to some embodiments. [Figure 11]1 illustrates a three-dimensional current slope and current offset of an affine map according to some embodiments. [Figure 12] 1 illustrates the movement of a simplex and an origin according to some embodiments. [Figure 13] FIG. 1 is a cross-sectional view of a WFS motor used to generate experimental MPLPT control results, according to some embodiments. [Figure 14A-B] Figure 14A shows a set of points Γ and the Pareto frontier Γ collected using FEA simulated data of a WFS motor (left) and the corresponding 3D MPLPT currents (right) that serve as candidate points for MPLPT, in accordance with some embodiments. Figure 14B shows the simulated points Γ and the convex Pareto optimal solution Γ (left) and the corresponding 3D MPLPT currents (right) used to construct h(T), in accordance with some embodiments. [Figure 14C] 1 illustrates a piecewise linear function in accordance with some embodiments. [Figure 15A] Power loss versus torque domain FEA simulation results including simulated point Γ and subsets Γp, Γc, Γcc are shown. [Figure 15B] Simulation results are presented including the set of current domains Γ, Γp, Γc, Γcc and the functions hp(Tp), hc(Tp), hcc(Tp), hlin(Tp), and hspl(Tp). [Figure 15C] From top to bottom on the left side, we show the WFS motor test bench experimental results for MTPA PWA including torque (reference, measured, MTPA PWA), speed (reference and measured), copper loss (experimental, MTPA PWA), and from top to bottom on the right side, rotor current (measured, MTPA PWA), d-axis stator current (measured, MTPA PWA), q-axis stator current (measured, MTPA PWA). [Figure 15D]Shown are the WFS motor test bench experimental results of the MTPA PWA after the experimental torque tracking speed reference, from top to bottom on the left, with the MTPA maps hp(T), hc(T), hcc(T), and hspl(T), and the dynamic speed reference including the experimental and post-processed rotor current ir, stator current id, and stator current iq from top to bottom on the right. [Figure 15E] Figure 1 shows WFS motor test bench experimental results for an MTPA PWA with a dynamic torque step of 50 Nm and, from top to bottom, the torque reference T*, recalculated torque from currents hp(T), hc(T), hcc(T), and hspl(T), experimental and post-processed rotor and stator currents ir, iq generated from the hp(T), hc(T), hcc(T), and hspl(T) MTPA functions, and real-time copper losses for each MTPA function. [Figure 16] 2 illustrates another example of the motor system of FIG. 1 implementing a model predictive control (MPC) control scheme according to some embodiments. [Figure 17] 1 illustrates a process for controlling a motor using model predictive control techniques in accordance with some embodiments. [Figure 18] 1 includes a permanent magnet (PM) synchronous motor and implements one or more of a current-flux PWA map, a model predictive control (MPC) control scheme, and an MTPA or MPLPT-based reference generation according to some embodiments. [Figure 19A-B] 1 illustrates regularly gridded PWA map functions of different sizes according to some embodiments. [Figure 20] 1 illustrates an example of a 2-norm flux error distribution for a set of 13×13 regularly gridded current points used to create a current-flux PWA map for a PM synchronous motor, according to some embodiments. [Figure 21] 13 illustrates average and maximum 2-norm flux errors for different current sets used to create a current-flux PWA map for a PM synchronous motor in accordance with some embodiments. [Figure 22] 1 illustrates a simplex mesh, current point placement, and 2-norm flux error distribution for different current-flux PWA maps of a PM synchronous motor in accordance with some embodiments. [Diagram 23] 10 illustrates another example of the motor system of FIG. 1 including a controller for a current-inductance piecewise affine (PWA) map, according to some embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0019] One or more embodiments are described and illustrated in the following description and the accompanying drawings. These embodiments are not limited to the specific details provided herein and may be modified in various ways. Furthermore, there may be other embodiments not described herein. Also, functions performed by multiple components may be integrated and performed by a single component. Similarly, functions described herein as being performed by one component may be distributed and performed by multiple components. Furthermore, components described as performing a particular function may also perform additional functions not described herein. For example, a device or structure that is "configured" in a particular way may be configured in at least that way, but may also be configured in ways not recited.

[0020] As used in this application, "non-transitory computer-readable medium" includes all computer-readable media, but not consisting of a transitory propagating signal. Thus, non-transitory computer-readable media can include, for example, hard disks, CD-ROMs, optical storage devices, magnetic storage devices, Read Only Memory (ROM), Random Access Memory (RAM), register memory, processor cache, or any combination thereof.

[0021] Furthermore, the phrases and terms used herein are for purposes of explanation and should not be considered limiting. For example, the use of "comprising," "including," "containing," "having," and variations thereof herein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. Furthermore, the terms "connected" and "coupled" are used broadly and encompass both direct and indirect connections and couplings and can refer to physical or electrical connections or couplings. Furthermore, the phrase "and / or" used in conjunction with two or more items is intended to encompass the items individually and together. For example, "a and / or b" is intended to encompass a, b, and a and b.

[0022] "Magnetic flux linkage," as used herein, can be described as a change in a magnetic field that can be detected as a voltage between two ends of a conductive element. Furthermore, unless otherwise noted, the term "magnetic flux" is used herein as shorthand or shorthand for "magnetic flux linkage" when discussing the relationship between magnetic fields in electro-mechanical machines and electrical circuits.

[0023] Inductance, as used herein, is a quantity derived from the relationship between the magnetic flux linkage across an electric element and the current through that electric element. Being a nonlinear relationship, such inductance can be described as the instantaneous change in magnetic flux linkage with respect to current (also called "incremental inductance"), such that for a total magnetic flux linkage (λ) at some current (i), λ / i is the "apparent inductance", or for a total field energy at some current (i), determined by the following equation (also called "energy equivalent inductance"):

number

[0024] 1 illustrates a motor system 100 according to some embodiments. The motor system 100 includes a power source 105, a motor drive circuit 110, an electric machine 115 (also referred to as an electric motor or motor 115), and a motor controller 120. The power source 105 provides direct current (DC) power to the motor drive circuit 110. In general, when the motor 115 is driven as a motor, the motor controller 120 is configured to control the motor drive circuit 110 to apply power from the power source 105 to the motor 115 to drive rotation of the motor 115. Similarly, when the motor 115 is operating as a generator, the motor controller 120 is configured to control the motor drive circuit 110 to apply power from the motor 115 to the power source 105.

[0025] In some embodiments, the power source 105 includes a DC power source that provides DC power to the motor drive circuitry 110. The DC power source may be, for example, one or more batteries, solar cells, etc. In some embodiments, the power source 105 includes an AC / DC rectifier that receives alternating current (AC) power from an AC power source, which may be a utility grid or an external generator. In these embodiments, the AC / DC rectifier outputs the DC power to the motor drive circuitry 110. In some embodiments, the AC power source is part of the power source 105 (e.g., in the case of an on-site wind turbine or generator). In some embodiments, the power source 105 includes both a DC power source and an AC / DC rectifier, and DC power from the power source 105 to the motor drive circuitry 110 is provided from one or both sources.

[0026] The motor controller 120 includes an electronic processor 125 and a memory 130 (collectively, processing circuitry). Generally, the motor controller 120 monitors characteristics of the motor 115 based on signals received from one or more motor sensors and provides control signals to the motor drive circuit 110 based on these characteristics. The memory 130 includes one or more of a read-only memory (ROM), a random access memory (RAM), or other non-transitory computer-readable medium. The electronic processor 125 is configured to, among other things, receive instructions and data from the memory 130 and execute the instructions to perform the functions of the motor controller 120, for example, as described herein. For example, the memory 130 includes, among other things, control software that defines a control technique for the motor 115. As described in more detail below, generally, the electronic processor 125 can be configured to execute the control software to monitor characteristics of the motor 115, receive operating parameters (e.g., motor commands from an input device (not shown)), and drive the motor drive circuit 110 according to the operating parameters and monitored characteristics. An input device may be or include, for example, an electric vehicle accelerator pedal, a trigger, a dial, a keypad, a laptop, a smartphone, etc. that outputs one or more operating parameters (e.g., encoded into an analog or digital signal) to motor controller 120. Exemplary operating parameters that may be input and received by motor controller 120 include torque commands and / or speed commands.

[0027] Although motor controller 120, electronic processor 125, and memory 130 are each shown as single units, in some embodiments one or more of these components are distributed components. For example, in some embodiments, electronic processor 125 includes one or more microprocessors and / or hardware circuitry, memory 130 includes one or more memories, and / or motor controller 120 includes one or more motor controllers (e.g., each having its own processor and memory).

[0028] In some embodiments, the motor 115 includes a stator assembly and a rotor assembly. The motor 115 may be a synchronous motor, such as a wound field synchronous (WFS) motor, a permanent magnet synchronous (PMS) motor, or a hybrid synchronous motor having a rotor with both wound field(s) and permanent magnet(s). In such examples, the stator assembly includes a stator core and a number of stator windings on the stator core that are selectively driven with current to induce a magnetic field that rotates the rotor assembly. The stator core may be, for example, a lamination stack formed by a number of laminations. The lamination stack may include a generally annular profile with teeth extending radially inward (in the case of an outer stator) or radially outward (in the case of an inner stator). The stator windings may include conductors that may be wound around the teeth or that otherwise fill the slots between the teeth (i.e., the windings may not actually be wound around another object in some examples). For a WFS or hybrid synchronous motor, the rotor assembly includes a rotor core and one or more field windings selectively driven with current to induce a magnetic field that interacts with the magnetic field of the stator assembly to rotate the rotor assembly. The stator core may be, for example, a lamination stack formed by a plurality of laminations. The lamination stack may include a generally annular profile with teeth extending radially inward (for an outer stator) or radially outward (for an inner stator). The rotor winding may be wound around the teeth or may include a conductor that otherwise fills the slots between the teeth. In embodiments where the motor 115 is a hybrid synchronous motor, the rotor assembly includes a combination of permanent magnets and a field winding. In embodiments where the motor 115 is a PMS motor, the rotor assembly includes one or more permanent magnets and does not include a rotor field winding. Although the motor 115 is primarily described herein as a synchronous motor, in some examples, the motor 115 is of another type, such as an induction motor, a universal motor, a switched reluctance motor, or another type.Although this example of motor 115 is described as including teeth, in some examples, for example when implemented as a slotless motor, motor 115 does not include teeth.

[0029] More generally, regardless of the particular form or type, the motor 115 (or electro-mechanical machine) utilizes one or more controllable magnetic fields that are constructed or energized to provide a force or torque between two or more components. The force or torque can result from the interaction of two or more magnetic fields (at least one of which is controllable), such that relative motion of one component results in a lower energy state due to reduced interference between the magnetic fields. The force or torque can also result from a circuit in which a given magnetic field or combination of magnetic fields must pass through the material of two or more components, such that relative motion of one or more components results in a lower energy state due to a lower reluctance, which is the ratio of magnetomotive force to magnetic field strength, of the magnetic circuit.

[0030] In some embodiments, including embodiments of motors that include a rotor with rotor windings (e.g., WFS motors and hybrid synchronous motors), motor drive circuit 110 includes a stator drive circuit coupled to one or more stator windings of motor 115 and a rotor drive circuit coupled to one or more rotor windings of motor 115. In some embodiments, including embodiments of motor 115 without a rotor winding (e.g., PMS motors), motor drive circuit 110 includes a stator drive circuit coupled to one or more stator windings of motor 115 but does not include a rotor drive circuit.

[0031] The stator drive circuit includes, for example, a plurality of power switching elements connected in a bridge configuration. The power switching elements are, for example, semiconductor switching devices such as field effect transistors (FETs) (e.g., metal oxide semiconductor field effect transistors (MOSFETs)), bipolar junction transistors (BJTs), or insulated gate bipolar transistors (IGBTs). The stator drive circuit may include an output terminal for each phase of the stator assembly of the motor 115. For example, in an embodiment of a stator assembly having three phases, the stator drive circuit may include three output terminals each connected to a terminal of each phase of the stator assembly. The stator drive circuit receives DC power from the DC power supply 105 and receives control signals from the motor controller 120. The control signals may be pulse width modulated control signals having respective duty cycles that control the power switching elements to turn on and off in coordination to drive the stator windings of the motor 115. For example, the motor controller 120, via the control signals, may control the stator drive circuit to generate sinusoidal drive signals at respective output terminals to drive each phase of the stator assembly of the motor 115 with the respective sinusoidal drive signals. Thus, the stator drive circuit may also be referred to as a DC-AC inverter. Each phase of the stator assembly of the motor 115 may be associated with one or more stator windings.

[0032] The rotor drive circuit, if present, includes, for example, one or more additional power switching elements. The power switching elements of the rotor drive circuit may also be connected in a bridge configuration. The rotor drive circuit may include a pair of output terminals coupled across each controllable rotor winding of the rotor assembly of the motor 115. The rotor drive circuit receives DC power from the DC power source 105 and receives control signals from the motor controller 120. The control signals may be pulse-width modulated control signals having respective duty cycles, controlling the power switching elements of the rotor drive circuit to turn on and off in coordination to drive the rotor windings of the motor 115. For example, the motor controller 120, via the control signals, may control the rotor drive circuit to generate a DC voltage across each rotor winding. In some examples, the rotor drive circuit includes a single power switching element, a single passive element (e.g., a diode), or multiple passive elements (e.g., multiple diodes) arranged to control the current through the rotor winding(s).

[0033] The rotor drive circuit provides a power coupling between a stationary (i.e., non-rotating) power source 105 and one or more windings of the rotating rotor assembly. Thus, the rotor drive circuit may include stationary and rotating portions. For example, the rotor drive circuit may include slip rings and brushes that provide a conductive connection between the stationary and rotating portions. In some embodiments, the rotor drive circuit includes another power coupling type.

[0034] In some examples, the rotor drive circuitry is or includes a DC-DC converter that steps down or steps up the DC voltage received from the DC power supply 105 to a desired voltage level for the rotor winding(s).

[0035] (Motor system with piecewise affine (PWA) map-based control) FIG. 2 illustrates a particular example of a motor system 100 according to some embodiments. For example, the motor controller 120 is illustrated as a collection of function blocks with respective inputs and outputs. Each function block may be implemented by dedicated hardware circuitry in the electronic processor 125 of the controller 120, by blocks of software or instructions stored in the memory 130 and executed by the electronic processor 125, or by a combination thereof. The motor drive circuit 110 is further illustrated as including a stator drive circuit 205 and a rotor drive circuit 210. The motor drive circuit 110, the stator drive circuit 205, and the rotor drive circuit 210 may each individually or collectively be referred to as a power switching network. Power switching networks such as these circuits may be configured to switch voltage, current, and / or power. The motor 115 is illustrated as a WFS motor having a three-phase stator with phases (A, B, C) and a rotor field winding (R). As previously mentioned, in other examples, the motor 115 is a permanent magnet synchronous motor, a hybrid synchronous motor, or another motor type. If the motor 115 is a permanent magnet synchronous motor, then a rotor field winding (R) may not be included in the motor 115 and thus the rotor drive circuit 210 may not be included, the motor controller 120 may not sense or control current through the rotor field winding (R), and the control blocks of the motor controller 120 may not receive, process, or generate rotor field components.

[0036] In FIG. 2, the function blocks of the motor controller 120 include Clark Park current conversion block 215, piecewise affine (PWA) current-flux linkage maps 220 and 225, reference generation block 230, difference calculation block 235, flux controller 240, inverse Clark Park voltage conversion block 245, and pulse width modulation (PWM) generation block 250. In other examples, one or more of the function blocks are combined together or distributed into sub-blocks. An example of the operation of the motor system 100 and motor controller 120 of FIG. 2 is provided below with respect to FIG. 3.

[0037] 3 illustrates a process 300 for controlling a motor using a piecewise affine model. Process 300 is described as being performed by motor system 100 of FIG. 2. However, in some embodiments, process 300 may be implemented by another motor system, such as motor systems 900, 1600, and / or 1800. Additionally, although the blocks of process 300 are shown in a particular order, in some embodiments, one or more of the blocks may be performed partially or wholly in parallel, may be performed in a different order than that shown in FIG. 3, or may be bypassed.

[0038] In block 305, the motor controller 120 determines current values ​​for the motor 115 in a rotating reference frame, such as the RDQN reference frame. Each current value is associated with one dimension (or axis) of a set of dimensions for the RDQN reference frame, where the set of dimensions is an R dimension (or field (f)), a D dimension, and a Q dimension (e.g., I f , I d , I q and I f,dq As used herein, the variables F, f, R, and r are used interchangeably to refer to rotor field characteristics. For example, the rotor field current is I r or I f and the rotor field flux linkage is λ r or λ f It can be expressed as:

[0039] For example, to implement block 305, motor controller 120 can determine electrical operating characteristics of motor 115 in a stationary reference frame, determine a rotational position of motor 115 (e.g., of the rotor of motor 115), and convert the electrical operating characteristics and rotational position to current values ​​for motor 115 in the rotating reference frame. For example, to determine the electrical operating characteristics of motor 115 and the rotational position of the rotor in the stationary reference frame, controller 120 can convert the currents in each phase of the stator windings (e.g., collectively Iabc Also known as I a , I b , I c ) and the current in the rotor winding(s) of the motor 115 (e.g., I r Sometimes called I f ) from a current sensor 255 configured to sense the rotor's rotational position. The controller 120 may also receive rotational position measurements (θ) from a rotational position sensor 260 configured to measure the rotor's rotational position. In some examples, the controller 120 may determine the current and rotational motor position using other techniques. For example, the controller 120 may determine the rotor position using a "sensorless" design, for example, by inferring the rotor position by detecting zero crossings, peaks, and / or valleys in a back electromotive force (emf) signal in the stator windings. Additionally, the controller 120 may calculate current values ​​from voltage measurements of the stator windings and / or rotor windings provided by a voltage sensor. To convert the electrical operating characteristics and rotational position to current values ​​for the motor in a rotating reference frame, the motor controller 120 converts the determined motor 115 current i via a Clarke-Park transformation block 215. abc and a Clarke-Park transformation can be performed on the rotational position (θ).

[0040] In block 310, the motor controller 120 is configured to determine a flux linkage or inductance value for each dimension of a set of dimensions of a rotating reference frame based on the current values ​​using the piecewise affine map. For example, the motor controller 120 may determine the flux linkage value λ using the PWA current-flux linkage map 220. f、dq or using the PWA current-inductance map 2320, described in more detail below with respect to FIG. 23, to determine the inductance value L f、dqThe set of dimensions may or may not include a null dimension, and thus the motor controller 120 may or may not determine a flux linkage value for a null axis of the rotating reference frame. As used in block 310, a piecewise affine (PWA) map (e.g., PWA map 220) is a nonlinear current-flux linkage map that is divided into M domains, each having a corresponding affine function that provides a one-to-one mapping of current values ​​to flux linkage values. The affine function for each of the M domains may be linear (i.e., the current-flux linkage relationship may be linearized in each of the M domains). However, in other embodiments, the affine function corresponding to each of the M domains may be a quadratic function, a spline, or the like. Furthermore, each of the M domains corresponds to a simplex (e.g., generated using a domain decomposition or Delaunay triangulation, as described in more detail below). An example of a current-flux linkage PWA map is as follows:

number

[0041] The current-flux linkage PWA map 220 can also correspond to a flux linkage-current PWA map that is the inverse of the current-flux linkage PWA map 220, although this inverse PWA map need not be explicitly utilized by the motor controller 120 in the process 300. An example of this inverse (flux linkage-current) PWA map is as follows:

number

[0042] In some embodiments, using a PWA map (e.g., PWA map 22) to determine flux linkage values ​​based on current values ​​involves a two-step process. First, motor controller 120 identifies on which simplex (or domain) of the PWA map the current values ​​reside. Second, motor controller 120 uses a particular affine function associated with the identified simplex to calculate the flux linkage.

[0043] With respect to the first step, the motor controller 120 can use various techniques to identify simplexes (or domains) of the PWA map on which the current values ​​reside. In one example, the motor controller 120 can repeatedly check the simplexes (e.g., one by one) to determine whether the current values ​​reside on them, and continue to do so until a simplex with a current value is identified. Mathematically, this check can be described as projecting the coordinate(s) of the current(s) as a local coordinate vector onto the local coordinate system of the simplex, where a point is considered to be contained within the simplex if the components of the local coordinate vector are all between 0 and 1. The check of each simplex can include multiplying the current value by a particular transformation matrix associated with the simplex, and determining that (a) if the output is greater than 1, then the input current is not on it, and (b) if the output is less than 1, then the input current resides on the simplex. Here, the transformation matrix can identify n+1 points that create the simplex, with one selected point (p0) creating the origin of the simplex and other points (p1 through p1) within the simplex. n ) are the vectors p x0 In this example, the N vectors can be expressed as one of the vectors p 10 = p1-p0, vector p 20 =p2-p0,...vector p N0 =p n -p0. A set of relative vectors, i.e. vector p 10 , p20 ...p N0 The set of forms the columns of the transformation matrix. Then, the inverse of the transformation matrix is t0 By multiplying the test vector p t can be transformed to a local coordinate system. In some examples, the test vectors are expressed in current space, e.g., r , i d , i q and in units of ampere-turns, or in the flux linkage space, e.g., λ r , λ d , λ q and may be expressed in units of volt-seconds per turn). While this function and matrix are described with respect to a PWA map used to convert current to flux linkage, matrices using the same format and formulas can be used with a PWA map used to convert from flux linkage to current (although with different values, the operating point (e.g., point N) is the same point in both matrices). In some examples, such an operating point is the current through each coil of the motor and the flux linkage of each coil of the motor (e.g., i r , i d , i q , λ r , λ d , λ q However, since only three of these six variables can be specified independently, a shorthand notation with three variables can be used (e.g., i r , i d , i q or λ r , λ d , λ q ).

[0044] In other embodiments, different techniques such as kd-trees, cosine similarity, radial basis functions, Gaussian functions, neural net algorithms, classifier algorithms, etc. may be used to identify simplexes.

[0045] With respect to the second step, once a particular simplex (or domain) is identified, the motor controller 120 uses a particular affine function associated with the identified simplex (or domain) to calculate the flux linkage. For example, referring to the example current-flux linkage PWA map 220 above, if the motor controller 120 identified a simplex I2 in the first step, the motor controller 120 obtains the coefficients L2 (3D slope matrix) and ψ2 (3D intercept matrix) of the associated affine function L2i+ψ2 to calculate the flux linkage (i.e., flux linkage(λ)=L2i+ψ2). For example, the motor controller 120 applies the current values ​​to the affine function to calculate the flux linkage. Here, this may include the motor controller 120 multiplying the current values ​​by the 3D slope matrix L2 and adding the 3D intercept matrix ψ2 to arrive at the flux linkage value. The 3D intercept matrix (ψ) can be thought of as a vector representing the origin of the simplex represented in the flux linkage space. The matrix L is the current space and the flux linkage space (for example, L=t λ * inverse(t i )) may be the product of local coordinate transformation matrices from both

[0046] In block 315, the motor controller 120 is configured to determine a target value for each dimension of the set of dimensions of the rotating reference frame. For example, the motor controller 120 may determine a target flux linkage value λ * f、dq or target current value i * f、dq The motor controller 120 may or may not determine a flux linkage value for a null axis of a rotating reference frame. To determine the target flux linkage value, the motor controller 120 determines a desired control parameter of the motor 115, such as the motor torque (T * ) or motor speed (not shown) can be determined. *The motor controller 120 can then use a reference generation block 230 to convert the desired control parameters into target current values ​​for the motor in a rotating reference frame (e.g., I * f、dq For example, the motor controller 120 may calculate a desired control parameter T * A reference generation block 230 in the form of a look-up table (e.g., stored in memory 130) that maps potential values ​​of to target current values ​​may be used. The look-up table may be pre-populated based on experimental data. The motor controller 120 may then use a piecewise affine (PWA) map 225 to determine target flux linkage values ​​for each dimension of a set of dimensions of a rotating reference coordinate system based on the target current values. The motor controller 120 may use the PWA map 225 to determine target flux linkage values ​​based on target current values ​​in a manner similar to how the PWM map 220 is used to determine flux linkage values ​​based on current values. Note that the two PWA maps 220, 225 shown in FIG. 2 may be duplicated PWA maps, or the motor controller 120 may use one PWA map for both actual and target values ​​(i.e., although two PWA maps are shown, some embodiments include one shared PWA map instead). In another example, the target current value output by reference generation block 230 is used as the target value, as described in more detail below with respect to FIG.

[0047] In block 320, the motor controller 120 is configured to control the power switching network based on the flux linkage or inductor value and the target value (e.g., the target flux linkage value or the target current value). For a description of the control based on the inductor value and the target current value, see the discussion below in connection with FIG. 23. However, returning to FIG. 2, in some embodiments, the motor controller 120 can generate control signals in a stationary reference frame to drive the motor 115 based on the difference between the target flux linkage value and the flux linkage value for the dimension. For example, the motor controller 120 can use the difference block 235 to determine the difference between each flux linkage value and the target flux linkage value for each dimension of a set of dimensions in the rotating reference frame (e.g., the R, D, and Q dimensions, optionally a null dimension). This difference value and the rotational position (θ) of the motor may be provided to the flux controller 240. The flux controller 240 may be, for example, a proportional-integral-derivative (PID) controller, a PI controller, a look-up table, a model-based controller (e.g., implementing model predictive control (MPC), as described in further detail below), or another control device. The motor controller 120 (e.g., via the flux controller 240) can then generate voltage commands for each dimension of a set of dimensions of a rotating reference coordinate system based on the difference values ​​and the rotational position. For example, the flux controller 240 may generate a voltage command V f , V d , V q (collectively V f、dq (also called

[0048] The motor controller 120 can then transform the voltage command from the rotating reference frame to the stationary reference frame. For example, the motor controller 120 can use the inverse Clarke-Park transform block 245 to transform the voltage command V f、dq To calculate the voltage command V in the stationary reference frame, we perform an inverse Clarke-Park transformation on f , V a , V b , and V c (collectively Vf、abc (also called

[0049] Motor controller 120 can then use PWM generation block 250 to generate pulse width modulated control signals for each dimension of the stationary reference frame to control the power switching network to drive the stator of the motor. For example, PWM generation block 250 can be implemented such that motor controller 120 can access respective lookup tables for each of the stator phases and rotor field windings, and motor controller 120 provides voltage commands (e.g., V a is the lookup table for stator phase A, V b is the lookup table for stator phase B, V c is the lookup table for stator phase C, V f is a lookup table for the rotor field winding). The PWM generation block 250 can return the control signal parameters (e.g., duty cycle) for each stator phase and rotor field winding via the lookup table.

[0050] Finally, as part of block 320, the motor controller 120 generates the stator drive control signal D in accordance with the control signal parameters (e.g., at a particular duty cycle indicated by the voltage command). a , D b , D c (collectively D abc ) and the rotor drive control signal D f (D r Control signals including the power switching elements of the stator drive circuit 205 and rotor drive circuit 210 of the motor drive circuit 110 may be provided to the drive circuit 110, including the control signals D abc may be provided to the stator drive circuit 205 to control its power switching elements, and a control signal D fmay be provided to the rotor drive circuit 210 to control its power switching elements.

[0051] In a motor operating mode, the motor drive circuit 110 is controlled based on the control signal to provide power from the power source 105 to the motor 115 to drive rotation of the motor 115. Similarly, in a generator operating mode, the motor drive circuit 110 is controlled based on the control signal to apply power from the motor 115 to the power source 105 (e.g., to charge the power source) and / or to another electrical load.

[0052] (Piecewise Affine (PWA) Map Generation) In some embodiments, the PWA maps generated and used herein are based on a state-space model of the motor that is ultimately controlled. For example, for a WFS motor with an isolated neutral (and therefore generally no zero-axis flux and current) and no damper winding, the voltage equation for the state-space model is:

number

[0053] The torque T of the machine is defined by the following formula:

number

number

[0054] The machine currents are mapped to the machine fluxes using a non-linear map.

number

[0055] This captures the magnetic coupling between the shaft, magnetic saturation, and cross saturation. These equations can be written as a standard state space system using vector notation:

number

number

[0056] As described herein, a PWA map may be generated to represent a nonlinear current-flux map f(·), and a PWA map may be generated to represent a nonlinear flux-current map g(·). In some embodiments, a multi-step process is implemented to generate such a PWA map. The resulting PWA map may be used, for example, in process 300. The multi-step process may be executed by an electronic controller 400 including a processor 405 and a memory 408, as shown in FIG. 4. The electronic controller 400 may be a computing device, such as a server, a local computing device, a cloud-based system including a collection of sub-computing devices. The electronic controller 400 may be separate from the motor controller 120. In some examples, the electronic controller 400 may be communicatively coupled to the motor controller 120 via a network 410 (e.g., one or more of a local area network, a wide area network, a cellular network, a telecommunications network, etc.). In some examples, the network 410 is communicatively coupled to the motor controller 120 temporarily prior to operation of the motor controller 120 to control a motor (e.g., motor 115). For example, the communication coupling can be used by electronic controller 400 to configure motor controller 120 to have and / or implement a PWA map (e.g., PWA map 220 and / or 225) generated by electronic controller 400. Motor controller 120 can, in some examples, be disconnected from electronic controller 400 after a configuration phase to implement offline operation using PWA map(s) 220 and / or 225. The elements of FIG. 4 can be referred to as a configuration system 420.

[0057] The processor 405 and memory 408 may be similar to the processor 125 and memory 130 of the motor controller 120 described above, although in at least some embodiments they may have increased processing power and memory capabilities as compared to the motor controller 120, which may have space and power constraints. Additionally, although described in the singular, the electronic controller 400 may include one, two, or more controllers (e.g., each having a processor and memory) operating in a distributed manner. Similarly, the processor 405 and memory 408 of the electronic controller 400 may include one, two, or more respective processors and memories operating in a distributed manner.

[0058] The resulting PWA map generated by the electronic controller 400 is received by the motor controller (e.g., on memory 130 of the motor controller 120) and stored in the motor controller, enabling the motor controller to control the motor while offline (e.g., not connected to a remote processing system) in the manner described above with respect to process 300.

[0059] In some embodiments, as described in process 300, to generate a PWA map for use in controlling an electric motor (e.g., motor 115), electronic controller 400 (1) obtains a data set of current-flux linkage pairs for an operating point of the electric motor, (2) applies a domain decomposition algorithm to the data set to generate current simplexes and flux linkage simplexes, and (3) uses the simplexes to generate a PWA map (or function) (e.g., f PWA or g PWA )

[0060] With respect to the first step, to obtain a dataset of current-flux linkage pairs for an operating point of the electric motor, the electronic controller 400 (or another electronic controller) can generate a dataset by running a simulation of the motor (e.g., using finite element analysis), estimate or calculate the flux linkages based on voltage and current observations over time, and potentially other system parameters such as resistance, torque, rotational speed, etc., through experimentation to generate the dataset, or generate the dataset through a combination of simulation and experimentation. As an example, in RDQN space, the dataset may be: (i r ,i d ,i q ;λ r ,λ d ,λ q ) in the input signal. In this example, the null dimension (N) may be ignored if the system is intended to have zero current under nominal operation. The size of the data set may depend on the number of operating points of the motor considered. The more operating points, the larger the data set. In some embodiments, the operating points may be selected to be significant operating points for the motor, or operating points that constitute all or a majority of the motor's operating domain. See additional discussion below regarding selection of operating points.

[0061] Turning to the second step, the electronic controller 400 applies a domain decomposition algorithm to the data set to generate a current simplex and a flux linkage simplex. In other words, the electronic controller 400 generates a current simplex and a flux linkage simplex based on a domain decomposition technique. Various domain decomposition algorithms or techniques, also called domain subdivision algorithms, can be applied to generate the current simplex and the flux linkage simplex. For example, the domain decomposition algorithm or technique may be a Delaunay triangulation. In another example, the domain decomposition algorithm or technique may be an irregularly sampled but rectangular decomposition, such as a quadtree algorithm, a box tree algorithm (also called an octree), or a KD tree algorithm (depending on the number of independent dimensions). In another example, the domain decomposition algorithm is an alpha shape algorithm or technique. The Delaunay triangulation is a known mathematical meshing algorithm or technique, and the quadtree, box tree, KD tree, and alpha shape are also known domain decomposition algorithms or techniques. In some examples, the electronic controller 400 applies domain decomposition to the current points (that make up the current-flux linkage pairs of the operating point) from the previous step to generate current simplexes, and applies domain decomposition to the flux linkage points (that make up the current-flux linkage pairs of the operating point) from the previous step to generate flux linkage simplexes.

[0062] In some examples, to compute a Delaunay triangulation for a set of current points (e.g., for N current points), one can first construct a Voronoi diagram of the current points. The Voronoi diagram divides the current space into N Voronoi cells, with every point in a Voronoi cell being closer to a single point in the original set of current points than any other point. To obtain the Delaunay triangulation, one can find the dual of the Voronoi diagram. In general, a Delaunay triangulation maximizes the minimum angle within the simplices it creates, thus reducing "skinny" simplices. Such skinny simplices may be undesirable in this context. Here, "skinny" simplices may be described by their aspect ratio. In other words, simplices with aspect ratios above a threshold amount may be considered "skinny" and simplices with aspect ratios below a threshold amount may be considered "non-skinny". The aspect ratios of the simplices may be enhanced by sampling the space, or Delaunay construction, if desired.

[0063] For the resulting current simplexes generated, each simplex is connected to another simplex at a shared boundary such that all simplexes are connected within the domain, and no simplex overlaps another simplex in the domain. Additionally, a simplex may be defined such that one side is a closed domain and the other is an open domain such that any point in the domain (even if it is on the boundary) belongs to only one simplex in the Delaunay construction. In an example using a three-phase WFSM, assuming an RDQ domain with no position (theta) dependency, each simplex may be a tetrahedron (a three-dimensional shape). If theta (θ) is included in the domain (e.g., an RDQ θ domain), each simplex may be a four-dimensional shape. Thus, each simplex may be n-dimensional, where n is the number of variables or dimensions of the domain.

[0064] Flux-linked simplexes are similar to current simplexes; that is, for the resulting flux-linked simplex generated, each simplex is connected to another simplex at a shared boundary such that all simplexes are connected within the domain, and no simplex overlaps another simplex in the domain. Additionally, simplexes may be defined such that one side is a closed domain, and the other is an open domain such that any point in the domain (even if it is on the boundary) belongs to only one simplex in the Delaunay construction. Additionally, each simplex may be n-dimensional, where n is the number of variables or dimensions of the domain.

[0065] In some embodiments, in the resulting simplex, each current simplex is associated with exactly one flux linkage simplex (and vice versa), and further, each coordinate in each current simplex is associated with exactly one coordinate in the associated flux linkage simplex (and vice versa), in other words, for each coordinate in current space, there is one and only one coordinate in flux linkage space.

[0066] FIG. 5 includes two plots for an example data set of current-flux linkage pairs in the RDQ domain of a three-phase WFSM. On the left side of FIG. 5, a first plot 500 of each of the current simplexes generated by a Delaunay triangulation algorithm run on the example data set is shown. On the right side of FIG. 5, a second plot 505 of each of the flux linkage simplexes generated by a Delaunay triangulation algorithm run on the example data set is shown. Each current simplex in the first plot 500 corresponds to a flux linkage simplex on the second plot 505 (and vice versa), and further, each coordinate in each current simplex is associated with one and only one coordinate in the associated flux linkage simplex (and vice versa).

[0067] Moving to the third step of PWA map generation, the electronic controller 400 creates a PWA map (or function). For example, a particular PWA map may be generated by converting current into flux linkage (f PWA (i)) (e.g., PWM map 220 or 225 in FIG. 2), or the magnetic flux linkages can be mapped to currents (g PWA(λ)). The PWA map divides the original domain into M subsets, where each subset is defined as a simplicial. A simplicial is the simplest possible polytope in any D-dimensional space. For example, a simplicial for three dimensions, such as the exemplary WFS motor, has the form of a tetrahedron. A D-dimensional simplicial can be defined as the convex hull of its D+1 vertices (called the V-notation). Alternatively, a simplicial can be defined by its faces, which are defined as affine inequalities (called the H-notation). For example,

number

number

[0068] Continuing with the example of a simplex tetrahedron, each tetrahedron I j is defined by four vertices. jo If we use the support vector, we can move the origin as shown in the following equation.

number

number

number

[0069] The non-zero vertices can be interpreted as a basis, and since affine maps are isomorphic, the relative positions of vectors in the current and flux simplex are the same.

number

number

number

[0070] To find the magnetic flux vector λ, we use the following formula: k of Multiply with the basis vector of JPEG2025505533000031.jpg7138.

number

[0071] These previous four equations can be simplified using vector notation, where: JPEG2025505533000033.jpg7138 and The basis of JPEG2025505533000034.jpg7138 is a matrix.

number

number

number

number

number

number

[0072] Rewritten in RDQ notation, the equation for the currents associated with the flux linkages of a non-saturating WFS motor has the following form:

number

number

[0073] The diagonal terms of L are the rotor (L rr ) and stator (L dd , L qq ) and the off-diagonal terms are the mutual inductances between the three axes. Typically, L rq , L dq , L qr , L qd and can be neglected, but L dr and L rd produces a cross-coupling effect.

[0074] (Operating point selection and PWA map optimization) In some examples, a regularly spaced grid of operating points is used in the first step of PWA map generation. Generally, the more operating points selected in the first step, the more simplexes are generated in the second step, and the larger and / or more complex the PWA map will be. As the size and / or complexity of the PWA map increases, the accuracy of the PWA map may improve until it reaches an approximate peak. In some examples, the electronic controller may downsample the operating points such that fewer than the total number of available operating points are used to generate the PWA map. Such downsampling may generally reduce the size and / or complexity of the PWA map, resulting in a decrease in accuracy. Depending on the amount of downsampling, the amount of available operating points, etc., the decrease may be minimal or at least within the design tolerances of a particular system. Thus, the number of operating points used to generate the PWA map may be a balance between the size and / or complexity of the PWA map and the desired accuracy of the PWA map.

[0075] In some examples, an irregularly spaced grid of operating points is used in the first step of PWA map generation. The irregularly spaced grid of operating points may allow for a reduction in points in some parts of the motor's operating domain (e.g., where the current-flux linkage relationship is more linear), an increase in points in other parts of the motor's operating domain (e.g., where the current-flux linkage relationship is more nonlinear), or both. By selectively reducing operating points, particularly those where the current-flux linkage relationship may be more linear, the loss of accuracy due to removal of operating points may be minimized or limited while improving memory and processing efficiency based on a smaller and / or less complex PWA map. Similarly, by selectively adding operating points, particularly those where the current-flux linkage relationship may be more nonlinear, the accuracy of the PWA map may be maximized or improved with a minimized or reduced impact on memory and processing efficiency. As a result, a PWA map generated using an irregularly spaced grid of operating points may provide higher accuracy, higher responsiveness, and lower computational requirements compared to a PWA map generated using a regularly spaced grid of operating points.

[0076] Several techniques can be used to generate a PWA map using an irregularly spaced grid of operating points. For example, FIG. 6 shows a PWA map f using an irregularly spaced grid of operating points. oig 6 shows a first process 600 for generating a PWA map f oigmay be the current-flux PWA map, but a similar process can be used to generate the flux-current PWA map. In this example, the electronic controller (e.g., electronic controller 400) can start with an initial set of operating points and iteratively generate the PWA map, finding for each PWA map the portion of the operating domain that has a high or highest error rate (e.g., from random sampling) and adding the operating points of that portion to be used in the next successive PWA map that is generated. As shown in FIG. 6, this iterative process may be repeated until the operating points reach a predetermined threshold N (i.e., until |Ip|>=N). In other examples, the process may be repeated until the PWA map reaches a desired accuracy (e.g., the average of k error values ​​I is less than a threshold).

[0077] More specifically, in block 605, the electronic controller 400 may define initial set of current points and corresponding flux points that define the full operating area of ​​the machine (e.g., the motor 115). The electronic controller 400 may obtain the initial set from a memory (e.g., the memory 408) or an external memory or an input / output interface. In the illustrated example, the initial set includes eight current points and eight flux points that make up eight current-flux operating point pairs. However, in other examples, the initial set includes a different number (more or less) of current-flux operating point pairs. Additionally, in some examples, the initial set of current points and flux points may define an operating area of ​​the machine that is less than the full operating range.

[0078] In block 610, the electronic controller 400 calculates a PWA function f for the set of current points and flux points. oig For example, the electronic controller 400 creates the current and flux meshes by performing a domain decomposition (e.g., a Delaunay triangulation algorithm) on an initial set of current points and corresponding flux points using the techniques described above, and defining a PWA function for each simplex of the two meshes.

[0079] In block 615, the electronic controller 400 determines whether the PWA map generation process 600 is complete. For example, the electronic controller 400 may determine the number of operating points (e.g., current point I p ) may be compared to a predetermined threshold N. In response to the number of operating points being equal to or greater than the predetermined threshold, the electronic controller 400 may determine that the PWA map generation process 600 is complete, and the PWA map f generated from the most recent execution of block 610 may be compared to a predetermined threshold N. oig may be output or stored (e.g., in memory 408 or 130). In response to the number of operating points being less than the predetermined threshold, the electronic controller 400 may proceed to block 620. In other examples, the electronic controller 400 may determine that the PWA map generation process 600 is complete based on another criterion, such as whether the most recently generated PWA map reaches a desired accuracy (e.g., the average of k error values ​​(E) is less than a threshold), whether the number of iterations reaches an iteration threshold, etc.

[0080] In block 620, the electronic controller 400 calculates the error between the most recently generated PWA map and the high-fidelity function. The high-fidelity function can serve as a baseline for judging the accuracy of the PWA map. For example, the electronic controller 400 may calculate the error between the output function (PWA map) f oig and high-fidelity functions (e.g., f S,44×31×42 ), where

number

[0081] In block 625, the electronic controller 400 determines the maximum error (Error) in the error set, for example by comparing each of the resulting values ​​in the error set, and selects the random current i corresponding to the maximum error. max and the random magnetic flux λ max(eg, from the calculation in the previous block 620 associated with the maximum error).

[0082] In block 630, the electronic controller 400 adds the maximum error point to the current and flux set. For example, the electronic controller 400 may use the previous current set and the previous flux set and add i max A, the magnetic flux is set to λ max A new current set and a new flux set are created by adding . In this manner, the current set and flux set are each increased in size by one point. The electronic controller 400 then returns to block 610 to create an updated PWA function based on the new current set and flux set. At block 615, steps 610-630 may be repeated until the electronic controller 400 determines that the PWA generation process 600 is complete.

[0083] 7A-7F show heat maps of the 2-norm error of PWA maps generated using the process of FIG. 6. In the illustrated example, additional operating points are added to each successive PWA map generated by an iteration of the process. The error heat maps are associated with a selected subset of the iterations of the process that illustrate the trend of the average error decreasing as the number of points increases. The illustrated heat maps start with 8 points and increase to 27 points, the points are shown in the figures as black dots, and the average error present generally decreases (from 15% to 6%) as operating points are added. The title of each heat map includes the number of points and the average error. In particular, FIG. 7A includes 8 points and an average error of 15%, FIG. 7B includes 9 points and an average error of 12%, FIG. 7C includes 10 points and an average error of 28%, FIG. 7D includes 11 points and an average error of 10%, FIG. 7E includes 21 points and an average error of 9%, and FIG. 7F includes 27 points and an average error of 6%. The error scale for each heatmap varies as indicated by the vertical error key to the right of each heatmap, with the maximum error for the heatmap at the top of the key (e.g., 57.877% in Figure 7A).

[0084] An irregularly spaced grid of operating points is used to generate the PWA map (f oig In another example technique used to generate the PWA map, the electronic controller can start with a large initial set of operating points and successively remove operating points, rather than starting with a small initial set and adding operating points. For example, in this technique, the electronic controller can start with a large initial set of operating points and then iteratively generate PWA maps, finding for each PWA map the portion of the operating domain that has a low or lowest error rate (e.g., from random sampling), and remove the operating points in that portion to be used in the next successive PWA map that is generated. This process may be repeated until the operating points reach a predetermined threshold N (i.e., until |Ip|<=N). In another example, the process can be repeated until the PWA map falls within a desired accuracy range (e.g., the average of k error values ​​(E) is within a predetermined range). This process is sometimes referred to as downsampling.

[0085] In some embodiments, further memory and processing efficiencies can be obtained by selectively reducing the samples or operating points that make up the data set (from the first step of PWA map generation above). For example, rather than using regular sampling, in some embodiments the electronic controller uses a data set derived from irregular sampling, e.g., generally linear areas of operation may have fewer samplings than generally non-linear areas of operation. An exemplary process for irregular sampling is described above with respect to the flowchart of FIG. 6. In some embodiments, other techniques for selecting operating points to make up the data set are used. For example, the controller may select points (randomly or regularly gridded) and construct an L matrix. The controller may then perform a cosine similarity function and test the output. If the output is above a certain accuracy threshold or score, the controller may remove one or more points from the data set (e.g., if the mapping is above a size or complexity threshold) or exit the process. If the output falls below a certain threshold or score, the controller may add additional points to the data set. If the process is not then exited, the controller may repeat the process on the modified data set. If the process is exited, the controller can move to another area and repeat the process, or if all areas are completed, the mapping can be completed based on the final data set. This technique generally focuses on the data set of operating points that provide a mapping with sufficient accuracy and sufficiently reduced memory footprint and complexity. In other embodiments, other criteria can be used to test specific areas to determine if the process is complete.

[0086] The plots of Figures 8A-8C include examples of PWA maps generated to various degrees from a downsampled regularly sampled current grid data set. In particular, Figures 8A, 8B, and 8C each include four plots, with each plot of the regularly gridded data set being at one of the following sampling levels: 8x8x8 grid, 4x4x4 grid, 3x3x3 grid, and 2x2x2 grid. Figure 8A illustrates an example of a PWA map generated to various degrees from a downsampled regularly sampled current grid data set. q λ sliced ​​at =0 r vs. i d and i r FIG. 8B shows a plot of i q λ sliced ​​at =0 d vs. i d and i r FIG. 8C shows a plot of i d λ at =0 q vs. i d and i q The plot of is shown.

[0087] As discussed above, some techniques for selecting operating points to form the irregular grid used to generate the PWA map include starting with a smaller set of operating points and adding operating points to the set to arrive at the irregular grid of operating points, while other techniques include starting with a larger set of operating points and removing operating points from the set to arrive at the irregular grid of operating points. In some examples, techniques that include starting with a smaller set and adding operating points to the set are less computationally demanding (e.g., by electronic controller 400) than starting with a larger set and removing operating points, reducing the amount of processing and memory resources used. This reduction in resources may occur because, for example, creating a mesh and performing a domain decomposition (e.g., see block 610) on a smaller set of operating points is less computationally demanding than performing such operations on a larger set of operating points.

[0088] The resulting PWA map, such as that ultimately produced using process 600 or variations thereof, may be used by a motor controller to control a motor (e.g., by motor controller 120 to control motor 115) as described herein. Additionally, the resulting PWA map may be used as a representation of the motor controller and motor for simulation purposes. For example, this use of the PWA map may be beneficial because the PWA map accurately represents the associated nonlinear motor and its flux-based control using fewer processing and memory resources than other modeling techniques used for motors. Thus, running a simulation with the PWA map may be performed more quickly and with fewer processing and memory resources than other modeling techniques.

[0089] Based on experimental testing using various numbers of current-flux pair operating points (ranging from 8 points to 90 points), the amount of memory used (in kilobytes (kB)) and computation time (in microseconds (μs)) increases nonlinearly with the number of simplexes used in the current-flux PWA map. Nevertheless, the memory used and computation time remained within a range suitable for a typical motor controller, even at relatively high fidelity. For example, with 45 operating points used to create the mesh, the memory used was still less than 20 kB and the computation time was less than 50 μs. Indeed, with 30, 40, 45, and 48 operating points, the computation time was between 20 and 40 μs, and with 8, 12, 18, and 24 operating points, the computation time was less than 20 μs. Furthermore, with 8, 12, 18, 24, 30, and 40 operating points, the memory usage was less than 10 kB, and with 45, 48, and 60 operating points, the memory usage was between 10 kB and 20 kB.

[0090] (Use of other current-flux linkage maps) In some embodiments of the process 300, instead of using a PWA map as described above, another mapping from the simplex resulting from the domain decomposition to the flux linkages of the currents is generated and used in the process 300. For example, instead of using a piecewise function that includes multiple linear relationships, a piecewise function that includes multiple quadratic functions is used to provide the current-flux linkage map. In general, a quadratic function can allow for the use of even fewer data points while maintaining the accuracy of the representation. However, the amount of computation to perform the inverse lookup (e.g., to solve the quadratic function from the flux linkages to the currents) may increase. However, in some embodiments, such as a motor controller implementing the process 300, the motor controller may not include an inverse lookup to map the flux linkages to the currents, and the increased complexity may be irrelevant. In some environments, such as simulation or motor analysis, the increased complexity may have a larger potential impact.

[0091] Other techniques can include, for example, K-nearest neighbors (KNN), which includes a search method that can be used to find nearby simplexes. KNN or other similar methods utilize a distance metric as a way to build a tree, for example, a higher dimensional KD tree or a ball tree. Given a data point, this tree returns the K nearest simplexes. The metric defined can be any metric that is said to be a "true metric" in the mathematical sense, where a true metric satisfies each of the following conditions: 1:d(x,y)>=0 2: d(x,y) == d(y,x) 3: d(x,y)==0 if and only if x==y To find a simplex adjacent to a data point using this method, in some cases the center of the simplex is used as the "neighborhood."

[0092] Another technique involves cosine similarity, which can be used when comparing data points as high dimensional vectors where the returned angle gives the relative (not absolute) similarity between the two vectors being compared. The vectors can potentially include neural embeddings of high dimensional data in a low dimensional space. As more dimensions are included in the simplex, reducing the number of related neighboring simplexes becomes a larger task. Simplexes may be discarded, thereby reducing the number of points required when generating the PWA map, based on whether the simplex has high cosine similarity to its neighbors. Due to linearity within the simplex, the cosine similarity can be taken between the gradients within the two simplexes being compared.

[0093] Another technique involves decision trees, where a classification tree is fitted to a dataset. For example, the "random forest" technique takes many decision trees using different subsets of the dataset and averages their results to make it much more robust while still giving a confidence score to the prediction, which can be used in some cases. Additionally, gradient boosting is a method that can be used that creates many individual decision trees. It then creates additional trees by focusing on places where previous trees did not work well, rather than weighting each tree equally as in random forests.

[0094] Neural networks can also be utilized, including fully connected networks for less complex problems, convolutional networks, recurrent networks (particularly useful for time series problems), and / or generative networks.

[0095] (Simple Generation Process) In some embodiments, a singular generation process is provided, executed by electronic controller 400 including, for example, processor 405 and memory 408. As mentioned above, processor 405 and memory 408 may be similar to the processor and memory of motor controller 120 described above, although in at least some embodiments, they may have increased processing power and memory capabilities relative to motor controller 120, which may have space and power constraints. Additionally, although described in the singular, electronic controller may include one, two, or more controllers (e.g., each having a processor and memory) operating in a distributed manner. Similarly, the processor and memory of the electronic controller may include one, two, or more respective processors and memories operating in a distributed manner.

[0096] In some embodiments, the simplex generation process includes electronic controller 400 (1) obtaining a data set of current-flux linkage pairs for the operating points of the electric motor, (2) applying a domain decomposition algorithm to the data set to generate current simplexes and flux linkage simplexes, and (3) storing the current simplexes and flux linkage simplexes in a memory (e.g., memory 408 and / or memory 130). The first two steps can be performed similarly to the first two steps for PWA generation described in the previous section. In a third step, electronic controller 400 may store the current simplexes and flux linkage simplexes in the electronic controller's memory and / or another memory with which the electronic controller is in communication.

[0097] The generated simplex can then be used to generate PWA maps or other maps of current and flux linkage, as described above, and for other purposes. For example, the simplex may be integrated into a motor analysis or simulation system and used by the system to convert current values ​​to flux linkage values ​​and / or flux linkage values ​​to current values. This includes state space modeling and finite element analysis. The simplex may also be used to generate accurate models of machines with irregular grids.

[0098] (Current-inductance PWA map) FIG. 23 illustrates a specific example of a motor system 100 including a current-based controller identified as motor system 2300, according to some embodiments. The component descriptions for FIGS. 1 and 2 above apply equally to components in FIG. 23 that share the same element numbers or names, unless otherwise noted herein. For example, motor controller 120 is again illustrated as a collection of function blocks having respective inputs and outputs. Each of the function blocks may be implemented by dedicated hardware circuitry in electronic processor 125 of controller 120, by blocks of software or instructions stored in memory 130 and executed by electronic processor 125, or by a combination thereof. Motor drive circuit 110 is further illustrated as including stator drive circuit 205 and rotor drive circuit 210. Motor 115 is illustrated as a WFS motor having a three-phase stator with phases (A, B, C) and a rotor field winding (R), and motor system 2300 will be described primarily with respect to a WFS motor. However, in other examples, motor 115 is a permanent magnet synchronous motor, a hybrid synchronous motor, or another motor type. If motor 115 is a permanent magnet synchronous motor, a rotor field winding (R) may not be included in motor 115 and thus rotor drive circuit 210 may not be included, motor controller 120 may not sense or control current through the rotor field winding (R), and control blocks of motor controller 120 may not receive, process, or generate rotor field components.

[0099] In contrast to FIG. 2, the motor system 2300 of FIG. 23 includes a current-inductance PWA map 2320, which is a function of the input current value i r,dq (i f,dq (shown as inductance value L r,dq (L f,dq ) to the target current value (i * r,dq ) and the current value (i r,dq) is provided to a difference operator 235, which provides the determined difference to a current controller 2340. Also, instead of the flux controller 230 of FIG. 2, a current controller 2340 is provided. The current controller 2340 provides the determined current difference (i r,dq -i * r,dq ) and inductance (L r,dq ) as input and generate a voltage command V based on these values. f,dq For example, to determine the voltage command, the current controller 2340 multiplies the inverse of the inductance value (which may form a matrix) by the determined current difference (e.g., V f,dq =L r,dq -1 (i r,dq -i * r,dq )) can be multiplied by the inverse inductance matrix (L r,dq -1 ) may be a direct output of the PWA map 2320 and is received by the current controller 2340 as an inductance value. In such cases, in some examples, the matrix inversion may be an offline calculation.

[0100] The voltage output is provided to an inverse Clarke-Park transform block 245, which is ultimately used to control the motor 115 in a manner similar to that described with respect to FIG. 2. For example, the current controller 2340 may be f , V d , and V q (collectively V f,dq or V r,dq 2. The current-based controller 2340 may output a voltage command (also referred to as a voltage command) that may then be used to control the motor (e.g., via the inverse Clarke-Park transform block 245, the PWM generation block 250, and the motor drive circuit 110) in a manner similar to that described above with respect to FIGURE 2. The current-based controller 2340, like the flux controller 240, may be, for example, a proportional-integral-derivative (PID) controller, a PI controller, a look-up table, or another control device.

[0101] The PWA map 2320 uses the current input (i r,dq ) to the inductance value output by the PWA map (e.g., L r,dq or L r,dq -1 ). More specifically, as described above, the PWA map includes a plurality of affine functions, each of the plurality of affine functions associated with a respective domain of the plurality of domains. The PWA map 2320 may be generated using techniques similar to those described above with respect to the current-flux linkage map 220, except for an updated equation that accounts for the relationship between current and inductance instead of the relationship between current and flux linkage, which may be derived from the relationship of inductance to flux linkage and current (see, e.g., the above discussion of incremental inductance, apparent inductance, and energy equivalent inductance). To obtain an inductance from a set of inputs to the PWA map 2320, a controller (e.g., the motor controller 120) may identify a first domain that corresponds to the set of inputs and is selected from the plurality of domains. The first domain is associated with a first affine function of the plurality of affine functions. The controller may then apply the set of inputs (i.e., the current values ​​and one or more additional motor characteristics) to the first affine function to determine an inductance value for each dimension of the rotating reference frame. In some examples, each of the multiple domains associated with a respective affine function corresponds to a simplex provided by running a domain decomposition algorithm on a data set of input / output pairs for multiple operating points of the motor, where the input of each input / output pair includes a current value and the output includes a corresponding inductance value for the operating point of the motor.

[0102] In some examples, the motor system 2300 of FIG. 23 includes a minimum power loss per torque (MPLPT) control block to function as a reference generating block 230, such as the MPLPT block 905 of FIG. 9A (described below), and / or the flux controller 2340 is implemented as an MPC controller, as further described with respect to FIG. 16.

[0103] (PWA map for MPLPT control scheme) In some examples, the motor system 100 implements a minimum power loss per torque (MPLPT) control scheme. The MPLPT control scheme can reduce or minimize electrical losses in the motor 115 given a reference torque (e.g., an input torque command indicating a desired output torque of the motor 115) while taking into account saturation and cross-saturation. By using MPLPT to reduce electrical losses, i.e., copper and iron losses, the motor system 100 provides power-efficient torque control of the motor 115. To implement the MPLPT control scheme, the MPLPT optimization problem is solved using a convex Pareto frontier of simulated or measured data points. Magnetic saturation and cross-saturation effects are captured using points sampled throughout the full machine operation. The filtered solution set is mapped to current space using piecewise affine functions that approximate the currents using piecewise linear functions for a given torque. This set of piecewise linear functions allows the machine controller 120 to implement MPLPT online or as an offline lookup table. Although this section focuses on WFS motors, similar concepts are applicable to other motor types including PMS motors, hybrid synchronous motors, universal motors, induction motors, and reluctance motors (synchronous and switched).

[0104] Directly controlling the torque of any machine is generally difficult because the controller may control and regulate some combination of voltage, current, or flux. A typical approach is to define a reference torque, which is then directly mapped to a reference set of currents. This mapping is generally not unique and there is no optimal solution since torque is a non-convex function of current. The problem is typically called maximum torque per ampere (MTPA), but in this work it is rephrased as minimum power loss per torque (MPLPT) to include iron losses. The MPLPT problem is made more complex by adding strong saturation to the flux of WFS motors, which operate in linear and nonlinear magnetic regions to prevent high flux errors during saturation and cross-saturation.

[0105] Existing online MTPA methods can be computationally expensive on the controller, while offline MTPA methods involve adding cross-coupling torque terms and additional variables that reduce the saturated inductance to approximate saturation effects, resulting in equations and large lookup tables that are difficult to optimize.

[0106] In some examples, the MPLPT approach proposed herein uses Pareto-optimal simulation or experimental values ​​for the MPLPT as candidate points for the MPLPT current path. The convex Pareto-optimal points are used to reduce the solution set and the points are connected using a piecewise affine (PWA) function. This approach produces a set of linear functions that are computationally inexpensive to run on the controller for any reference torque of the machine.

[0107] FIG. 9A illustrates a particular example of a motor system 100, identified as motor system 900, implementing such an MPLPT control scheme, according to some embodiments. The component descriptions for FIGS. 1 and 2 above apply equally to components in FIG. 9A that share the same element numbers or names, unless otherwise noted herein. For example, the motor controller 120 is again illustrated as a collection of function blocks having respective inputs and outputs. Each of the function blocks may be implemented by dedicated hardware circuitry in the electronic processor 125 of the controller 120, by blocks of software or instructions stored in memory 130 and executed by the electronic processor 125, or by a combination thereof. The motor drive circuit 110 is further illustrated as including a stator drive circuit 205 and a rotor drive circuit 210. The motor 115 is illustrated as a WFS motor having a three-phase stator with phases (A, B, C) and a rotor field winding (R), and the motor system 900 will be described primarily with respect to a WFS motor. However, in other examples, motor 115 is a permanent magnet synchronous motor, a hybrid synchronous motor, or another motor type. If motor 115 is a permanent magnet synchronous motor, a rotor field winding (R) may not be included in motor 115 and thus rotor drive circuit 210 may not be included, motor controller 120 may not sense or control current through the rotor field winding (R), and control blocks of motor controller 120 may not receive, process, or generate rotor field components.

[0108] In contrast to FIG. 2, the motor system 900 of FIG. 9A does not require input desired control parameters (e.g., motor torque (T * )) to the target current value i * r,dq2, or via other mapping functions (e.g., look-up tables, real-time execution functions, etc.). Furthermore, in some embodiments, the function blocks or maps 905 and 910 may be implemented as piecewise affine maps that map input desired control parameters (e.g., motor torque (T * ) to the target magnetic flux linkage value λ * r,dq These can be combined into a single piecewise affine map that maps

[0109] Furthermore, in some embodiments, the flux controller 240 in the controller 120 may implement a current-based motor control rather than a flux linkage-based control as shown in FIG. 9A. For example, there may be no current-flux linkage maps 910, 915 in the controller 120 and the target current value i * r,dq and the measured current value i r,dq may be provided to the difference calculation block 235 of the controller 120. The difference calculation block 235 of the controller 120 then calculates the target current value i * r,dq and the measured current value i r,dq 9A to a current-based controller that replaces the flux controller shown in FIG. 9A. The current-based controller block, like the flux controller 240, may be, for example, a proportional-integral-derivative (PID) controller, a PI controller, a look-up table, or another control device. Whether flux-based or current-based, the controller block (and thus the motor controller 120) may generate voltage commands for each dimension of a set of dimensions of a rotating reference frame based on the received difference values ​​and the rotational position (θ) of the motor. For example, the flux controller 240 may generate voltage commands V f , V d , and V q (collectively V f、dqor V r,dq 2. The voltage commands may then be used to control the motor (e.g., via the inverse Clarke-Park transformation block 245, the PWM generation block 250, and the motor drive circuitry 110) in a manner similar to that described above with respect to FIG.

[0110] FIG 9B illustrates a process 950 for implementing MPLPT motor control using a piecewise affine model. Process 950 is described as being performed by motor system 900 of FIG 9A. However, in some embodiments, process 950 may be implemented by another motor system, e.g., motor systems 100, 1600, or 1800. Additionally, although the blocks of process 950 are shown in a particular order, in some embodiments one or more of the blocks may be performed partially or wholly in parallel, may be performed in a different order than that shown in FIG 9B, or may be bypassed.

[0111] In block 955, the motor controller 120 determines current values ​​for the motor 115 in a rotating reference frame, such as the RDQN reference frame. Each current value is associated with one dimension (or axis) of a set of dimensions for the RDQN reference frame, where the set of dimensions includes an R dimension (or field (f)), a D dimension, and a Q dimension (e.g., i f , i d , i q , and i f,dq As used herein, the variables F, f, R, and r are used interchangeably to refer to rotor field characteristics. For example, the rotor field current is i r or i f and the rotor field flux linkage is λ r or λ f It can be expressed as:

[0112] For example, to implement block 955, motor controller 120 can determine electrical operating characteristics of motor 115 in a stationary reference frame, determine a rotational position of motor 115 (e.g., of the rotor of motor 115), and convert the electrical operating characteristics and rotational position to current values ​​of motor 115 in a rotating reference frame. For example, to determine the electrical operating characteristics of motor 115 and the rotational position of the rotor in the stationary reference frame, controller 120 can convert the currents in each phase of the stator windings (e.g., collectively i abc Also called i a , i b , i c ) and the current in the rotor winding(s) of the motor 115 (e.g., i r Sometimes called f ) from a current sensor 255 configured to sense the rotor's rotational position. The controller 120 may also receive rotational position measurements (θ) from a rotational position sensor 260 configured to measure the rotor's rotational position. In some examples, the controller 120 may determine the current and rotational motor position using other techniques. For example, the controller 120 may determine the rotor position using a "sensorless" design, for example, by inferring the rotor position by detecting zero crossings, peaks, and / or valleys in a back electromotive force (emf) signal in the stator windings. Additionally, the controller 120 may calculate current values ​​from voltage measurements of the stator winding and / or rotor winding(s) provided by a voltage sensor. To convert the electrical operating characteristics and rotational position to current values ​​for the motor in a rotating reference frame, the motor controller 120 converts the determined motor 115 current i via a Clarke-Park transformation block 215. abc and a Clarke-Park transformation can be performed on the rotational position (θ).

[0113] In block 960, motor controller 120 determines target motor control parameter values ​​for each dimension of the set of dimensions of the rotating reference coordinate system using the first piecewise affine map based on the desired control parameters. For example, motor controller 120 may determine a target motor control parameter value for each dimension of the set of dimensions of the rotating reference coordinate system based on the desired motor torque value (T * ) The desired control parameters may be received in the form of input commands or reference values ​​that may be indicative of the desired control parameters. The desired control parameters may be retrieved from a memory (e.g., memory 130) or may be received via input / output devices of motor controller 120 (e.g., from a user operating a keyboard, push buttons, levels, dials, etc.).

[0114] The motor controller 120 can then apply the MPLPT function block 905 to the desired control parameters. For example, the MPLPT function block 905 may apply the input desired control parameters (e.g., motor reference torque (T * )) to the target current value i * r,dq Alternatively, in some embodiments, the function blocks or maps 905 and 910 may implement a piecewise affine (PWA) map that maps the input desired control parameters (e.g., reference torque (T * )) to the target magnetic flux linkage value λ * r,dq Additional details describing the MPLPT function block 905 and its generation of the PWA map are provided below.

[0115] The PWA map of the MPLPT function block 905 is used to calculate the desired control parameter (e.g., reference torque (T * ) based on the target motor control parameter value (e.g., i * r,dqTo determine the reference torque (T), the motor controller 120 may use the PWA map in a manner similar to that described above with respect to the PWA maps 220, 225 to convert inputs to outputs. More specifically, to use the PWA map in the MPLPT function block 905, the motor controller 120 may determine a desired control parameter (e.g., a reference torque (T)) selected from multiple domains of the PWA map. * A first domain corresponding to the PWA map affine function (e.g., a reference torque (T)) can be identified, and the first domain is associated with a first affine function of the PWA map. The motor controller 120 then determines a desired control parameter (e.g., a reference torque (T)) by * )) may be applied to the first affine function to determine target motor control parameter values ​​for each dimension of the set of dimensions of the rotating reference coordinate system. For example, as described in more detail below, the PWA map of the MPLPT function block 905 may be calculated using the formula: PWA (T p ), and each feature of the PWA map may be defined as m j T p +i j Thus, once a particular affine function of the PWA map is identified, the motor controller 120 can determine the reference torque (T * ) was inserted into the identified functions and solved to generate the target motor control parameter values.

[0116] In some examples, the output current values ​​of the MPLPT function block 905 are intermediate target motor control parameter values ​​that are then further converted to (final) target motor control parameter values ​​by a current-flux linkage map 910. If the controller 240 of FIG. 9A is a current-based controller rather than a flux-based controller, or if the MPLPT function block 905 is a reference torque (T * ) to the target magnetic flux value (λ * ), the output current value of the MPLPT function block 905 is the (final) target motor control parameter value.

[0117] In block 965, the motor controller 120 controls the power switching network based on the current values ​​and the target motor control parameter values. For example, the motor controller 120 can generate control signals in a stationary reference frame to drive the motor 115 based on the difference between the target motor control parameter values ​​(e.g., the flux linkage values ​​output by block 910) and the flux linkage values ​​for each dimension (e.g., output by block 915). For example, the motor controller 120 can use the difference block 235 to determine the difference between each flux linkage value and the target flux linkage value for each dimension of a set of dimensions in the rotating reference frame (e.g., the R, D, and Q dimensions, optionally a null dimension). This difference value and the rotational position (θ) of the motor may be provided to the flux controller 240. The flux controller 240 may be, for example, a proportional-integral-derivative (PID) controller, a proportional-integral (PI) controller, a look-up table, a model-based controller (e.g., implementing model predictive control (MPC), as described in more detail below), or another control device. The motor controller 120 (e.g., via the flux controller 240) can then generate a voltage command for each dimension of the set of dimensions of the rotating reference coordinate system based on the difference value and the rotational position. For example, the flux controller 240 may generate a voltage command V f , V d , V q (collectively V f、dq (also called

[0118] The motor controller 120 can then transform the voltage command from the rotating reference frame to the stationary reference frame. For example, the motor controller 120 can use the inverse Clarke-Park transform block 245 to transform the voltage command V f、dq To calculate the voltage command V in the stationary reference frame, we perform an inverse Clarke-Park transformation on f , V a , V b , and V c (collectively V f、abc (also called

[0119] Motor controller 120 can then use PWM generation block 250 to generate pulse width modulated control signals for each dimension of the stationary reference frame to control the power switching network to drive the stator of the motor. For example, PWM generation block 250 can be implemented such that motor controller 120 can access respective lookup tables for each of the stator phases and rotor field windings, and motor controller 120 provides voltage commands (e.g., V a is the lookup table for stator phase A, V b is the lookup table for stator phase B, V c is the lookup table for stator phase C, V f is a lookup table for the rotor field winding). The PWM generation block 250 can return the control signal parameters (e.g., duty cycle) for each stator phase and rotor field winding via the lookup table.

[0120] Finally, as part of block 965, the motor controller 120 generates the stator drive control signal D in accordance with the control signal parameters (e.g., at a particular duty cycle indicated by the voltage command). a , D b , D c (collectively D abc ) and the rotor drive control signal D f (D r Control signals including the power switching elements of the stator drive circuit 205 and rotor drive circuit 210 of the motor drive circuit 110 may be provided to the drive circuit 110, including the control signals D abc may be provided to the stator drive circuit 205 to control its power switching elements, and a control signal D f may be provided to the rotor drive circuit 210 to control its power switching elements.

[0121] In a motor operating mode, the motor drive circuit 110 is controlled based on the control signal to provide power from the power source 105 to the motor 115 to drive rotation of the motor 115. Similarly, in a generator operating mode, the motor drive circuit 110 is controlled based on the control signal to apply power from the motor 115 to the power source 105 (e.g., to charge the power source) and / or to another electrical load.

[0122] (MPLPT question description) As described above, the MPLPT block 905 calculates the torque for a given reference torque T * Winding (copper) loss π lc (i, λ) and core loss π lcr The loss π, which can include the sum of (i, λ), l The goal may be to minimize (i, λ), or the focus may be on minimizing copper losses (for example, when core losses have less or negligible impact, such as when the machine is operating below base speed and there is little or no field weakening). The output of the MPLPT block 905 is the reference current i * (as shown in FIG. 9A) and / or the reference flux λ * The winding loss may be JPEG2025505533000047.jpg7141, and the core loss can be defined as JPEG2025505533000048.jpg6141, where i is the current, λ is the magnetic flux, T is the torque, R is a matrix defining the winding resistance that approximates the DC and (skin effect and proximity effect) AC winding losses, and G is a matrix defining the core conductance that approximates the (eddy current and hysteresis effects) core losses. The problem solved by the MPLPT block 905 (MPLPT equation) can be written as follows: Torque reference T * For the MPLPT reference current i * and the reference magnetic flux λ * is given by, assuming that copper losses dominate over core losses:

number

number

[0123] Furthermore, g(λ)=i may define a current-flux relationship for the motor, such as defined by a current-flux map φ(·), which may be obtained by finite element analysis (FEA) or experimental measurement. An equation that may be used to relate current to flux linkage in a non-saturated WFS motor has the form λ=Li+ψ, where L is the inductance matrix and ψ is the flux offset vector.

number

[0124] Finally, τ(i, λ) = T * p is the quadratic torque function for a specific reference torque T * p to be limited.

[0125] If T is the set of allowable mechanical torques, then for all T * p The solution set for ∈T is the current I , magnetic flux Λ,torque T , and power loss P and are shown in the following formulas.

number

[0126] This can be combined as follows:

number

[0127] This optimization problem is a function of π lc (i, λ), τ p (i, λ) and the state space model equation JPEG2025505533000056.jpg7140 is difficult to solve because g(λ)=i. Therefore, Gamma There is no analytical solution for

[0128] This formulation already accounts for saturation and cross-saturation inside the machine since the data points include i and λ together. Thus, the change in inductance L throughout the machine is also modeled. Another dimension that can be added to the data set is the variable resistance matrix R, either from experimental measurements or FEA analysis. If the diagonal terms in the matrix R increase at the same rate with temperature, then the solution set Gamma may remain unchanged, but the losses may be higher.

[0129] (MPLPT quantitative solution) In this section, a quantitative solution to the MPLPT problem is provided assuming low speed operation of the motor 115. In these conditions, copper losses dominate over winding losses and the machine operates below base speed (i.e., no field weakening).

[0130] Taking a large sample of random experimental or simulated data points, we can obtain an approximate solution to the MPLPT optimization problem in the above formula (i.e., subject to the constraints stated, [i *,λ * ]=argminπ lc (i,λ)). The FEA simulated data points have current i and flux λ, whereas the experimental data points have known current i and approximated flux λ using a flux linkage map approximation, for example via a current-flux map φ(·). These points are expressed as τ(i,λ) and p l (i, λ) is used to calculate the torque T per pole pair. p and power loss P l to, or Torque per pole pair T using JPEG2025505533000057.jpg8141 p and copper loss π lc It can be directly mapped to (i, λ).

[0131] The set of data points for all experiments is shown below.

number

[0132] The data points are then compared to their power loss Γ to see which point is optimal. 2,k , and Gamma Counter torque for It can be plotted according to JPEG2025505533000059.jpg8140.

[0133] From the set of all data points, there is a Pareto optimal or efficient set of values. That is, there exists some subset of all values ​​that is the most efficient for a given neighborhood. This subset, and the neighborhood for each member of the subset, is called Γ 2,k As the Pareto front without increasing The set of all Pareto optimal points is called the Pareto frontier. The Pareto frontier for a WFS motor is defined as Γ p Every point in the Pareto frontier has its own torque. The Pareto frontier point Γ generated by this method p can be considered as candidate points of a general MPLPT function existing in the three-dimensional current space I.

[0134] The line connecting all the Pareto optima is not necessarily convex. Therefore, the new set Γ c is defined as the maximal subset of Pareto optimal points that, when line segments are added between the points, creates a convex piecewise linear function.

[0135] The minimum torque point occurs at zero losses and no point can have negative losses, so the minimum torque T p,min ∈T p The point Γ corresponding to j,x is always Γ c In addition, the maximum torque T p,max ∈T p The point Γ corresponding to j,x is also always at this setting, regardless of losses, since no point can have a higher torque.

[0136] All adjacent Γ in the 3-dimensional current space (I) c The curvature of the set of lines connecting the points is not necessarily convex. cc line segments are created between the points, which when grouped in current space create a convex piecewise linear function, Γ cis defined as the maximal subset of points in cc The piecewise linear function created is a two-dimensional space JPEG2025505533000061.jpg8140 and 3D space This shows that the image is convex in JPEG2020.8140. By these definitions, The relationship JPEG2025505533000063.jpg7140 is satisfied.

[0137] Gamma The points in are MPLPT optimal, and c Since Γ is different, c The loss at the points in is always the same torque Gamma This is more than the loss in c teeth, Gamma or JPEG2025505533000064.jpg7140 can contain points. Sets Γ, Γ p ,Γ c ,Γ cc and Gamma The relationship between the power dissipation Γ is shown in FIG. 10A and a set of exemplary points is shown in FIG. 2,k and reverse torque JPEG2025505533000065.jpg7140 is on the axis.

[0138] Convex Pareto optimal point Γ c Connecting with a line segment produces optimal torque and power loss trajectories rather than using any of the internal Pareto optimal points. cc Connecting the points in with line segments produces less optimal torque and power loss trajectories than using any of the interior Pareto optimal points. Connecting the Pareto optimal points using straight line segments is a valid approximation to the densely sampled points. In some examples, c Adjacent points in are within a minimum ε Euclidean distance of each other to be considered close enough to approximate a line between them. If two points are not close enough to meet this requirement, more points are simulated or measured.

[0139] The generation of the convex Pareto frontier can be obtained using a modified divide-and-conquer algorithm on the set of solutions, Γ cc This is repeated to obtain the two-dimensional JPEG2025505533000066.jpg8140 Gamma in space p ,Γ c , and Γ cc Line segments created using The concatenation of JPEG2025505533000067.jpg7140 into the current space can be modeled using a piecewise affine map. Each set can have unique properties.

[0140] The above description is just one technique for selecting significant data points as a subset of all data points. In other examples, other techniques are used to perform such subset identification. Regardless of the selection algorithm, a PWA, or equivalent mapping technique, can be constructed from the resulting subset.

[0141] Piecewise Affine Maps (PWA) for MPLPT In some examples, a piecewise affine (PWA) map or function is used to represent the approximate MPLPT solution path. The PWA map divides the nonlinear map into M domains in which the function can be linearized. The torque domain Γ 1,k is the torque region T j , but can be equivalently divided into power dissipation regions. Moving forward, a point in this space is p,k or Γ 1,k Similarly, the current domain Γ 3,k is the current area I j and the current is i k or Γ 3,k Therefore, we can obtain the PWA torque-current map, or MPLPT function, h(T p ) is shown in the formula below.

number

[0142] As mentioned before, the PWA map divides the original domain into M sets. Each subset is defined to be the simplest possible polytope in any D-dimensional space, a simplex that is a line segment in a single dimension of the given problem. A D-dimensional simplex can be defined as the convex hull of its D+1 vertices (called the V-notation). Alternatively, a simplex can be defined by its faces, which are defined as affine inequalities, called the H-notation.

number

number

number

[0143] In the shifted dimensions, the simplex is defined by the following equation:

number

number

[0144] The non-zero vertices can be interpreted as a basis, and since affine maps are isomorphic, the relative positions of vectors in the current and flux simplex are the same.

number

[0145] The α coefficient can be obtained similarly to how Space Vector Modulation (SVM) calculates the relative on-time. Also, JPEG2025505533000079.jpg7140 is Projected based on JPEG2025505533000080.jpg8140.

number

[0146] The relative length of the vectors is obtained by dividing the magnitude of the projection by the magnitude of the basis vectors.

number

[0147] Current Vector To find JPEG2025505533000083.jpg6139, α is It is multiplied with the basis vectors of JPEG2025505533000084.jpg8139.

number

[0148] The alpha coefficients in these equations can be set equal, resulting in the following equations:

number

[0149] Solving for i gives the resulting linear map.

number

number

[0150] (Example Experimental Results for MPLPT Control) Experimental results from a simulation implementing MPLPT control are described below for an example 65 kW WFS motor having the cross-section shown in FIG. 13 and including the following characteristics: [Table 1]

[0151] This experimental example is provided for the MPLPT path from the most negative to the most positive mechanical torque. In this case, the motor torque range is 0 Nm / p to 112 Nm / p, and the copper loss range is 0 kW to 3.23 kW. The graph on the left of Figure 14A shows the set of points Γ and the Pareto frontier Γ collected using FEA simulation data of the WFS motor. p , and the graph on the right side of Fig. 14A shows the corresponding 3D MPLPT currents that are candidate points for MPLPT. In this example, the Pareto optimal point Γ p There are too many to all be used in the MPLPT route.

[0152] The obtained Pareto convex point Γ c is shown in Figure 14B. More specifically, the left graph in Figure 14B shows the simulated points Γ and the convex Pareto optimal solution Γ c , and the graph on the right of Fig. 14B shows the corresponding 3D MPLPT currents used to construct h(T). Applying the PWA map h(T) to the set of Pareto-convex points results in the piecewise linear function shown in Fig. 14C. The function h(T) in this case follows a mostly smooth curve, although it is occasionally jagged. The distance between the points varies. c There are 60 points and 59 line segments.

[0153] Further filtering of the points in c, or different ways of filtering the points to produce different h(T), can be implemented to obtain specific qualities in the MPLPT path, which may include convexity, smoothness, etc. Costs can be assigned to the distance between points, the angle of adjacent line segments, and other parameters. The selected technique used in this first simulation study strictly minimized torque power loss without considering other potentially desirable qualities of the MPLPT path. However, in other examples, other techniques are used where other qualities of the MPLPT path are considered.

[0154] Additional experimental results from further simulations implementing MPLPT control were performed using the same example 65 kW WFS motor with the cross section shown in Figure 13. The motor was again computationally modeled using the Finite Element Method (FEM) and analyzed using Finite Element Analysis (FEA) to generate a complete set of data points Γ. The set Γ p , Γ c , Γ cc are obtained by post-processing using the techniques described above. These sets are the two-dimensional JPEG2025505533000090.jpg8139 space and the three-dimensional (Γ 3,k ) space. The majority of the points from the FEA analysis are not in these sets. Of the 57,288 generated data points, the set size is |Γ p |=403, |Γ c |=60, |Γ cc |=47 or less than 1%. p , Γ c , Γ cc The MTPA function generated using is a "linear" MTPA ({h lin (T p )}) and Γ cc Cubic spline interpolation MTPA(h spl (T p)) is evaluated.

[0155] Further experiments were also performed using the WFS motor test bench. The motor test bench was configured to operate using the control diagram of Figure 9A. Five h(T p ) function (i.e., h p (T p ), h c (T p ), h cc (T p ), h lin (T p ), h spl (T p )) were converted into controller code and evaluated on a Texas Instruments TMS320F28379D real-time microcontroller to test their computation time and memory size. In the PWA formula, each h(T p If N points are used to create a function, then N-1 lines (or subdomains) are used. Thus, the memory size is JPEG2025505533000091.jpg7139 (coefficients + boundary conditions). Cubic spline interpolation requires twice as much memory because it must store four coefficients (a cubic polynomial) instead of two. PWAh(T p The computation time of the cubic spline h has two components: a (cold start) search, which takes Nlog(N) time, and two floating-point operations. spl (T p ) uses the same search, but requires Horner's method, which requires six floating-point operations, so it takes three times as long, and both JPEG2025505533000092.jpg7139 computation time. As more inputs and outputs are added, the cubic spline interpolation tends to increase in complexity by a factor of 2 for PWA. lin (T p )teeth, JPEG2025505533000093.jpg7139 computation and memory size, but is highly inaccurate. A summary of the MCU performance is shown in Table II. The times of other control operations of the control loop are shown in Table III. [Table 2] [Table 3]

[0156] For real-time evaluation, several tests were performed. The first involved rotating the WRS motor at a fixed speed of 1000 1 / min using a coupled industrial drive. The WRS motor executes variable torque steps from 0.5 to 44 Nm following a torque reference over a period of 120 seconds. The experimental MTPA function used was h lin It was. p (T p ), h c (T p ) and h cc (T p )(and h spl (T p The MTPA reference generated offline by ) is shown in Figure 15C and applied to the requested torque in post-processing. A drive cycle emulating the operation of a passenger car is also run, and the reference speed trajectory is applied, along with a coupled industrial drive to simulate the non-linear torque load due to vehicle dynamics. This experiment is useful to demonstrate the operation of the MTPA function under dynamically changing speeds and torques (including negative torque operation). It is shown in Figure 15D. The torque is expressed as i q is symmetric around and therefore the map h p (T p ), h c (T p ), h cc (T p ) and h spl (T p ) is the requested torque, -T p Enter the negative of i and then use the function output q -i qFinally, a zoomed-in view of a torque step showing the transient behavior of the controller and the MTPA function is shown in Figure 15E.

[0157] In all experiments, the linear MTPA function h lin (T p ) has the worst performance and incurs up to 70% additional copper loss in some cases. This comes at the expense of very fast computation and very small memory size.

[0158] Function, h p (T p ), h p (T p ) and h cc (T p ) have different properties that are useful for different applications. The average copper losses are shown in Table IV. As expected, the function h c (T p ) is h p (T p ) and h cc (T p ), but all three are within 1% of each other. The PWA MTPA function is a cubic spline h spl (T p ) with the trade-off of losing smoothness at I. [Table 4]

[0159] h(T p ) function is a piecewise linear approximation of Γ, which introduces an error in the generated current. This error is expressed as p (Expected torque) is τ p (h(T p )) and i=h(T p ) is a set of current standards. The function h c (T p ) and h cc (T p ) is T p >10Nm / p with minimal error, hp (T p ) has very low error over all torques. Spline MTPAh spl (T p ) and Linear MTPAh lin (T p ) bounded the PWA interpolation with a torque error, which appears in each of the torque plots in Figures 15C, 15D, and similarly in Figure 15E.

[0160] Finally, for each h(T p ) the shape of the MTPA orbital is different. p (T p ) is jagged, so that even small torque changes produce large differences in current (as seen in Figure 15C). cc (T p ) has the property that it is least jagged and I is convex. c (T p ) is a compromise between the two.

[0161] In summary, each of the PWA MTPA functions performs well in terms of memory, computation time, average copper loss, and torque error. Furthermore, the function h p (T p ) has a particularly low torque error, and the function h c (T p ) has particularly low average copper losses and the function h cc (T p ) has particularly fast computation time, has particularly small memory, and is convex.

[0162] In contrast, two-criterion MTPA functions tend to operate at the extremes of two or more criteria. For example, the function h lin (T p ) is fast to calculate and has small memory, but has very high error and very high average copper loss. Furthermore, the function h spl (T p ) has a small torque error, but the calculation time is slow.

[0163] MPC controller for WFSM using PWA map(s) In some examples, the motor system 100 implements a model predictive controller. Electric machines, particularly WFS motors, can have strong nonlinear coupling between the direct (d) and rotor (r) dimensions. Some electric machines use ferromagnetic materials to maximize and channel the magnetic flux. Such machines generally operate in a nonlinear magnetic regime and tend to exhibit saturation and cross-saturation. The relationship between current and flux linkage is modeled using a magnetic model (MM), which may also be referred to as a flux linkage map. Such maps tend to be linearized and represented as inductance or transfer functions for motor control. Motor controllers can use explicit or implicit MMs as part of their control scheme.

[0164] An offline MM can measure inductance at various operating points using one or a combination of finite element analysis (FEA), analytical calculations, and experimental values. Some WRS motor controllers use linearized offline MMs that can include sliding mode control, maximum torque, passivity-based control, and predictive DC control. Capturing nonlinear flux is much easier using online estimation methods. Some examples include Kalman filters, flux linkage observers, and iterative numerical solvers. However, with online methods, estimation and advanced control may require additional microcontroller resources and / or computation time to complete a closed-loop control cycle.

[0165] As provided in some examples herein, PWA functions can be used to construct offline MM look-up tables (LUTs) for incorporating nonlinear fluxes. These PWA functions linearly simplify the state-space equations and reduce computation time. Instead, the saved computation time can be spent solving a constrained finite-time optimal control (CFTOC) MPC problem. Thus, in some examples, a motor controller is provided that implements MPC control using PWA functions that linearly simplify the MPC state-space equations.

[0166] FIG. 16 illustrates a specific example of a motor system 100, identified as motor system 1600, according to some embodiments. The component descriptions for FIGS. 1, 2, and 9A above apply equally to components in FIG. 16 that share the same element numbers or names, unless otherwise noted herein. For example, the motor controller 120 is again illustrated as a collection of function blocks having respective inputs and outputs. Each of the function blocks may be implemented by dedicated hardware circuitry in the electronic processor 125 of the controller 120, by blocks of software or instructions stored in memory 130 and executed by the electronic processor 125, or by a combination thereof. The motor drive circuit 110 is further illustrated as including a stator drive circuit 205 and a rotor drive circuit 210. The motor 115 is illustrated as a WFS motor having a three-phase stator with phases (A, B, C) and a rotor field winding (R), and the motor system 1600 will be described primarily with respect to a WFS motor. However, in other examples, motor 115 is a permanent magnet synchronous motor, a hybrid synchronous motor, or another motor type. If motor 115 is a permanent magnet synchronous motor, a rotor field winding (R) may not be included in motor 115 and thus rotor drive circuit 210 may not be included, motor controller 120 may not sense or control current through the rotor field winding (R), and control blocks of motor controller 120 may not receive, process, or generate rotor field components.

[0167] In contrast to FIG. 2, the motor system 1600 of FIG. 16 includes an MPC control block 1605, as described in more detail below. Furthermore, the current-flux linkage maps 1610 and 1615 may be implemented as piecewise affine maps as described above with respect to FIG. 2, or may be implemented via other mapping functions (e.g., look-up tables, real-time execution functions, etc.). Furthermore, in some embodiments, the input desired control parameters (e.g., motor torque (T * )) to the target current value i * r,dqA function block or map 1620 that converts the input desired control parameters (e.g., motor torque (T * )) to the target current value i * r,dq ) to the input desired control parameters (e.g., motor torque (T * ) to the target magnetic flux linkage value λ * r,dq ),

[0168] Additionally, in some embodiments, the controller blocks in the controller 120 may implement current-based motor control rather than flux linkage-based control as shown in FIG. 16. For example, the current-flux linkage maps 1610, 1615 may not be present in the controller 120 and the target current value i * r,dq and the measured current value i r,dq may be provided to the difference calculation block of the controller 120. The difference calculation block of the controller 120 then calculates the target current value i * r,dq and the measured current value i r,dq θ to a current-based MPC controller block 1605 that replaces the flux controller block shown in FIG. 16. Whether flux-based or current-based, the MPC controller block 1605 (and thus the motor controller 120) can generate voltage commands for each dimension of a set of dimensions in a rotating reference frame based on the received difference values ​​and the rotational position (θ) of the motor. For example, the flux controller may generate a voltage command V f , V d , and V q (collectively V f、dq or V r,dq2. The voltage commands may then be used to control the motor (e.g., via the inverse Clarke-Park transformation block 245, the PWM generation block 250, and the motor drive circuitry 110) in a manner similar to that described above with respect to FIG.

[0169] FIG 17 illustrates a process 1700 for controlling a motor using model predictive control techniques. Process 1700 is described as being performed by motor system 1600 of FIG 16. However, in some embodiments, process 1700 may be implemented by another motor system, such as motor systems 100, 900, and / or 1800. Additionally, although the blocks of process 1700 are shown in a particular order, in some embodiments one or more of the blocks may be performed partially or wholly in parallel, may be performed in a different order than that shown in FIG 17, or may be bypassed.

[0170] In block 1705, the motor controller 120 determines current values ​​for the motor 115 in a rotating reference frame, such as the RDQN reference frame or the rotor-alpha-beta (rαβ) reference frame. Each current value is associated with one dimension (or axis) of a set of dimensions of the rotating reference frame. For example, in the RDQN reference frame, the set of dimensions includes an R dimension (or field (f)), a D dimension, and a Q dimension (e.g., i f , i d , i q , and i f,dq As another example, in an rαβ reference frame, the set of dimensions includes the r dimension (or field (f)), the α dimension, and the β dimension (e.g., i f , i α , i β , and i f,αβ In some examples involving MPC control, the rαβ reference frame can be used instead of the RDQN reference frame because the state equations in the rαβ reference frame are independent of the velocity ω and linear.

[0171] For example, to implement block 1705, motor controller 120 can determine electrical operating characteristics of motor 115 in a stationary reference frame, determine a rotational position of motor 115 (e.g., of the rotor of motor 115), and convert the electrical operating characteristics and rotational position to current values ​​of motor 115 in the rotating reference frame. For example, to determine the electrical operating characteristics of motor 115 and the rotational position of the rotor in the stationary reference frame, controller 120 can convert the currents in each phase of the stator windings (e.g., collectively i abc Also called i a , i b , i c ) and the current in the rotor winding(s) of the motor 115 (e.g., i r Sometimes called f ) from a current sensor 255 configured to sense the rotor's rotational position. The controller 120 may also receive rotational position measurements (θ) from a rotational position sensor 260 configured to measure the rotor's rotational position. In some examples, the controller 120 may determine the current and rotational motor position using other techniques. For example, the controller 120 may determine the rotor position using a "sensorless" design, for example, by inferring the rotor position by detecting zero crossings, peaks, and / or valleys in a back electromotive force (emf) signal in the stator windings. Additionally, the controller 120 may calculate current values ​​from voltage measurements of the stator winding and / or rotor winding(s) provided by a voltage sensor. To convert the electrical operating characteristics and rotational position to current values ​​for the motor in the RDQN rotating reference frame, the motor controller 120 converts the determined motor 115 current i via a Clarke-Park transformation block 215. abc and the rotational position (θ). The motor controller 120 (e.g., in transform block 215) may further perform an inverse Park transform on the current values ​​in the RDQN rotating reference frame (e.g., applying an inverse Park transform matrix (P -1) to obtain a current value in the rαβ reference frame. In some examples, the Clarke-Park transformation block 215 may instead multiply the determined current I abc and a Clarke transformation block that directly transforms the rotational position (θ) (by applying the Clarke transformation matrix) to produce current values ​​for the motor 115 in the rαβ reference frame.

[0172] In block 1710, motor controller 120 determines target motor control parameter values ​​for each dimension of a set of dimensions of a rotating reference coordinate system based on the desired control parameters. For example, motor controller 120 may determine a desired motor torque value (T * The desired control parameters may be received in the form of input commands or reference values ​​that may indicate a desired motor speed (ω) or a desired motor velocity (ω). The desired control parameters may be retrieved from a memory (e.g., memory 130) or may be received via input / output devices of motor controller 120 (e.g., from a user operating a keyboard, push buttons, levels, dials, etc.).

[0173] The motor controller 120 then uses a reference generation block 230 to convert the desired control parameters into target current values ​​for the motor in a rotating reference frame (e.g., i * f、dq or i * f,αβ For example, the motor controller 120 may convert the desired control parameter T *A reference generation block 230 in the form of a look-up table (e.g., stored in memory 130) that maps potential values ​​of to target current values ​​may be used. The look-up table may be pre-populated based on experimental data. The motor controller 120 may then use a piecewise affine (PWA) map 225 to determine target flux linkage values ​​for each dimension of a set of dimensions of a rotating reference coordinate system based on the target current values. The motor controller 120 may use the PWA map 225 to determine target flux linkage values ​​based on target current values ​​in a manner similar to how the PWM map 220 is used to determine flux linkage values ​​based on current values. Note that the two PWA maps 220, 225 shown in FIG. 17 may be duplicated PWA maps, or the motor controller 120 may use one PWA map for both actual and target values ​​(i.e., although two PWA maps are shown, some embodiments include one shared PWA map instead).

[0174] In some examples, the reference generation block 230 is implemented as an MPLPT function block 905 as described above with respect to FIGS. 9A-9B. In such a case, the motor controller 120 can apply the MPLPT function block 905 to the desired control parameters. For example, the MPLPT function block 905 can apply an input desired control parameter (e.g., a motor reference torque (T * )) to the target current value i * r,dq or the target magnetic flux linkage value λ * r,dq It is possible to implement a piecewise affine (PWA) map that maps to

[0175] In some examples, the output current values ​​of the reference generator block 230 are intermediate target motor control parameter values ​​that are then further converted to (final) target motor control parameter values ​​by the current-flux linkage map 225. If the controller 240 of FIG. 17 is a current-based controller rather than a flux-based controller, or if the reference generator block 230 is a reference torque (T * ) to the target magnetic flux value (λ * ), the output current value of the reference generation block 230 is the (final) target motor control parameter value.

[0176] In block 1715, the motor controller 120 controls the power switching network based on the current values ​​and the target motor control parameter values ​​by using the piecewise affine map defined by the offline solution of the model predictive control algorithm using the sample inputs. For example, in some scenarios, the MPC controller 1605 may use the difference calculation block 235 (e.g., λ * Based on the difference value received from the motor (-λ) and the rotational position (θ) of the motor, a control signal (e.g., a voltage command (V r,dq )) which is the target flux value (λ) output by the PWA map 1610. * ) and the magnetic flux value (λ) output by the PWA map 1615. The reason why the control is based on the current value and the target motor control parameter value is that at least the MPC controller 1606 determines the current value (e.g., i r,abc , i r,dq ) and the target flux value (λ * ) (target motor control parameter values) is used to generate control.

[0177] The MPC algorithm includes an MPC optimization problem or equation, as described in further detail below. In some examples, the MPC controller 1605 implements "explicit MPC." In such examples, prior to execution of the process 1700, an MPC optimization problem is solved offline, and control laws are generated therefrom and stored in the MPC controller 1605. The control laws are then accessed and implemented to control the motor 115 during real-time operation of the motor 115 in block 1715. For example, an MPC optimization problem (e.g., described below) is solved offline for all or a subset of possible inputs, and then used to generate a piecewise affine map ("MPC PWA map") that is stored in the controller 120 (e.g., as part of the MPC controller 1605) prior to motor operation. The MPC PWA map defines multiple domains, each with an associated control law. In real time while the motor is operating, the MPC controller 1605 receives measurements (e.g., received difference values ​​and the rotational position (θ) of the motor) that indicate which domains of the MPC PWA are active. Thus, the MPC controller 1605 identifies the active domains and the feedback control laws associated with the active domains. The MPC controller 1605 then uses the identified control laws to generate control signals (e.g., voltage commands (V r,dq )).

[0178] In some examples, the explicit MPC provides the feedback control law as an MPC PWA map of the following form:

number

[0179] In other examples, the MPC controller 1605 solves the MPC optimization problem online (i.e., in real time during the operation and control of the motor 115) to generate a control signal. For example, the MPC controller can solve the MPC optimization problem online analytically (e.g., using MPC equations without constraints) or numerically (e.g., using a real-time numerical solver such as a gradient method or Newton solver).

[0180] As described above, the MPC controller 1605 can implement flux-linkage-based control or current-based control. In some embodiments, the MPC controller 1605 can implement hybrid current and flux-linkage-based control. For example, the MPC optimization problem or some cost functions of the MPC can be formulated in the flux and / or current domain and can include a PWA map as an equality constraint in the optimization problem.

[0181] The controller blocks (e.g., the flux controller, the current-based controller, the MPC controller 1605) of the motor controller 120 in the various embodiments provided herein are described and illustrated as receiving a difference value (e.g., the difference between the target flux value λ * r,dq and the measured flux value λ r,dq or the difference between the target current value i * r,dq and the measured current value i r,dq ), but in some examples, the controller block receives a reference value and a measured value, and for example, the difference calculation is integrated into the controller block. In other words, the difference calculation blocks shown in FIGS. 2, 9A, and 16 may be part of the controller block, and its control algorithm or algorithms may be adjusted to consider the measured value and the reference value without an explicit difference calculation between these two values.

[0182] (MPC algorithm) Model predictive control (MPC) or receding horizon control (RHC) is a control technique that involves solving a constrained finite-time optimal control (CFTOC) problem, which finds the minimum-cost path from a start state to an end state. In this CFTOC problem, the rαβ reference frame form of the machine equations can be used because the state equations are independent of the speed ω and linear. Therefore, in this section, the flux λ, current i, and end voltage can be assumed to be in the reference frame form of rαβ. In this CFTOC problem, the (discrete-time) state equation f is expressed as follows:

number

number

[0183] RHC is a process that transforms the starting state λ0 to the desired state λ in N time steps. N The set of inputs V that reach 0→N and then select the first value in the set to find the optimal input for the plant. JPEG2025505533000101.jpg6140 is provided. N is called the horizon length. The known state variables at the current time k are λ(k), and the calculated future state variables at time k are λ k and the predicted state for time t+k calculated at time k is denoted as λ t+k|k The same notation is used for input Also valid for JPEG2025505533000102.jpg6140.

[0184] Input is Let us represent an input trajectory of length N starting at JPEG2025505533000103.jpg7139 as the set below.

number

[0185] The starting state is denoted by λ0, and the input values ​​and the state at the end of the trajectory are Represented as JPEG2025505533000105.jpg7139.

[0186] The cost J0 of a given trajectory can be calculated by:

number

[0187] In some cases, an additional term called "input cost" is added. JPEG2025505533000110.jpg6133 is used to penalize the sum of the changes in the input over all steps. When using a voltage-source inverter, varying the termination voltage may not be associated with significant drawbacks, so we can set R=0 and this term is not included.

[0188] The CFTOC problem can be defined as follows:

number

number

[0189] V 0→N But it is compact. If JPEG2025505533000113.jpg7135 is continuous, then there exists at least one optimal cost and trajectory. The optimal output trajectory for the problem is expressed as follows:

number

[0190] At t=0, the first solution of the trajectory is the input to the system, and at t=1, the CFTOC problem is re-solved and the first solution of the new trajectory is the input to the system. This process is repeated indefinitely.

number

[0191] In either case, the horizon length is N time steps ahead of the current time, so the horizon is always further ahead in time, i.e. "backwards" from the current viewpoint.

[0192] Optimal input after solving CFTOC to state λ(t) The RHC control law that associates JPEG2025505533000116.jpg8135 is JPEG2025505533000117.jpg6135, where the following formula is satisfied:

number

[0193] At any positive time k(c k The control law for the system plant By combining with JPEG2025505533000119.jpg7135, the closed-loop control equation c cl is expressed as the following formula.

number

[0194] In some cases, the CFTOC problem (i.e., finding the optimal cost or value function J * 0(λ(t)) is solved using the Multi-Parametric Toolbox 3.0 (MPT3), which is specifically designed to solve MPC with PWA system functions. As shown in FIG. 16, in some examples, the measured state flux λ is calculated using the feedback current i and the PWA map 1615. The MPT3 solver can solve the CFTOC problem using a Linear Complementarity Problem (LCP) solver that can solve linear problems (LP) and quadratic problems (QP). The output provided by the MPT3 solver can be the MPC PWA function described above. The MPC PWA function can have a different function for each combination of active and inactive equality constraints.

[0195] Simulations of the MPC controller 1605 controlling a 65 kW WFS motor have shown that the described MPC controller 1605 is feasible and viable for use in speed-based and torque-based control of a WFS motor.

[0196] (PWA map for permanent magnet synchronous machines) As mentioned above, in some embodiments, the motor 115 is a permanent magnet (PM) synchronous motor. Among other applications, PM synchronous motors may be used for high energy density applications due to their high efficiency and mechanical simplicity. For example, PM synchronous motors have been used in the automotive sector, including electric and all-electric air propulsion drives. Controller performance for PMS motors may depend on the accuracy of machine parameters such as stator inductance, stator resistance, and permanent magnet (PM) flux. These parameters may change in real time and are temperature, position, and current dependent. For example, stator resistance increases nonlinearly with temperature, PM flux may decrease (demagnetize) at high temperatures, and stator inductance saturates at high currents. The controller may account for these variations using online parameter estimation, offline parameter look-up tables (LUTs), or a combination thereof.

[0197] Online parameter estimation can estimate parameters using real-time feedback of the drive system. Feedback can include current, voltage, speed, and position. Online parameter estimation methods include receding horizon estimation, recursive least squares, neural networks, and extended Kalman filters. Offline parameter LUTs can use data of the machine from analytical calculations, FEA analysis, and experiments (or a combination thereof) to approximate parameters given various operating points of the machine. Data points are interpolated in various ways to produce various desired characteristics depending on the parameters and application. Generally, online parameter estimation requires more computation time than offline LUTs, but is more accurate over the life of the motor (or associated vehicle) by detecting machine degradation and partial failures. Online parameter estimation can use more sensors or sensorless techniques than offline LUTs. Additionally, systems using offline parameter LUTs can occupy more memory (e.g., on the motor controller's digital signal processor (DSP)) and can function with fewer sensors.

[0198] In some examples provided herein, a virtual flux motor controller is provided for controlling a PM synchronous motor that relies on a flux linkage magnetic model of the PM synchronous motor. The flux linkage exhibits saturation and cross saturation at high currents, introducing nonlinearities in the machine model. The virtual flux motor controller can regulate the flux of the machine by using a field-oriented control, such as model predictive control (MPC). As described in more detail herein, the virtual flux motor controller can use a piecewise affine (PWA) flux linkage magnetic model, also referred to as a PWA map or function, that locally linearizes the inductance and flux offsets of the machine. Thus, the magnetic model, and therefore the state-space model of the system, can be linear while capturing saturation effects, allowing for robust control and efficient operation. A magnetic model of the PM synchronous motor may be constructed using the PWA function. This magnetic model can enable the use of a virtual flux model predictive control (VF-MPC) motor controller that also accounts for saturation and cross saturation effects in the MM. The model can be created using FEA simulation data points and can be validated with experimental data points. Additionally, in some examples, models can be optimized using irregularly gridded points (e.g., maximum torque per ampere (MTPA) ranges, derating ranges, or full current ranges) as described herein, which may result in smaller average and maximum flux errors. In one example, using only 40 irregularly gridded points, the average flux error was less than 1% and the maximum error was less than 2%. This result represents an approximately 5-10% reduction in average flux error and an approximately 80-100% reduction in maximum flux error compared to the regularly gridded model.

[0199] As mentioned above, in some embodiments, motor 115 is a permanent magnet (PM) synchronous motor. For example, motor 115 as shown and described with respect to FIGS. 1, 2, 9A, 16 may be a PM synchronous motor. In such embodiments, the rotor of a PM synchronous motor includes a permanent magnet and does not include an energizable magnetic field (in contrast to a WFS motor and in contrast to a hybrid WFS motor having a rotor with at least one permanent magnet and at least one energizable magnetic field). Thus, in such embodiments, motor drive circuit 110 may not include rotor drive circuit 210, but may still include stator drive circuit 205. Additionally, the monitored or determined rotor field characteristics (e.g., i r , λ r ), rotor field control related variables (e.g., v r , D r ), and the corresponding portions of the controller 120 that operate to determine or generate these rotor field elements, can be modified to not determine or generate these rotor field elements. For example, blocks 905, 910, and 915 of FIG. 9B may be modified to not determine or generate these rotor field elements. r or output i r , i * r , λ r、 λ * r , and the flux controller does not need to receive λ * r -λ r or output v r , and the PWM generation block does not need to receive v r or output D r Similar modifications may exist to the systems shown in Figures 2 and 16 when implemented with a PM synchronous motor.

[0200] FIG. 18 also discloses a motor 115 in the form of a PM synchronous motor. More specifically, FIG. 18 illustrates a specific example of a motor system 100, identified as a PM synchronous motor system 1800, according to some embodiments. The descriptions of components in FIG. 1, FIG. 2, FIG. 9A, and FIG. 16 above apply equally to components in FIG. 18 that share the same element numbers or names, unless otherwise provided herein. For example, the motor controller 120 is again illustrated as a collection of function blocks having respective inputs and outputs. Each of the function blocks may be implemented by dedicated hardware circuitry in the electronic processor 125 of the controller 120, by blocks of software or instructions stored in the memory 130 and executed by the electronic processor 125, or by a combination thereof. The motor drive circuit 110 is further illustrated as including a stator drive circuit 205, but not a rotor drive circuit (as the rotor has no excitable fields). 2, 9A, and 16, motor 115 is shown as a PM synchronous motor having a three-phase stator having phases (A, B, C), and motor system 1800 is described primarily with respect to a PM synchronous motor, however, in other examples, motor 115 is a WFS motor, a hybrid synchronous motor, or another motor type.

[0201] The motor controller 120 of the motor system 1800 is similar to the motor controller 120 shown in Figs. 2, 9A, and 16, but its function blocks are adapted for a PM synchronous motor. For example, the control blocks of the motor controller 120 in the motor system 1800 may not receive, process, or generate rotor field components (since the rotor lacks an excitable field). The control blocks otherwise perform substantially similar functions to the similarly named components of Figs. 2, 9A, and 16. For example, the virtual flux controller 1805 may generate control signals (voltage commands) based on the motor position and the difference between the reference flux and the determined flux (similar to the flux controllers 240 and 1605). The PWA maps 1810 and 1815 may convert input current values ​​to flux values ​​based on PWA functions (similar to the maps 220, 225, 910, 915, 1610, 1615). The Clarke-Park transformation block 1817 converts the determined current i abc and the rotational position (θ) of the motor 115 to convert the input values ​​to a rotating reference frame (e.g., DQ reference frame) (similar to transformation block 215). The MTPA block can convert the reference torque to a reference current using a maximum torque per ampere transformation function or an MPLPT reference transformation function (similar to reference MPLPT block 905). The inverse Clarke-Park transformation block 1845 can transform the input voltage from a rotating reference frame (e.g., DQ reference frame) to a stationary reference frame (e.g., ABC reference frame) (similar to inverse transformation block 245). The PWM generation block 1850 can convert the input voltage command to a PWM control signal (D abc ) can be converted to

[0202] Additionally, in some embodiments, an input desired control parameter (e.g., motor torque (T * )) to the target current value i * r,dqThe function block or map 1820 that converts to may be implemented as a lookup table or other function that does not implement MPLPT or MTPA, as described with respect to block 230. For a motor system 1800 that uses speed control commands, the reference torque (T * ) is the reference torque T * A reference speed ω is subtracted by the measured speed ω, which is fed to the PI controller to generate * In the case of a motor system 1800 using a torque control command, the reference torque (T * ) may be input (e.g., from a memory, pedals, knobs, switches, keypads, etc.). In some examples, the function blocks or maps 1810 and 1820 may input desired control parameters (e.g., motor torque (T * ) to the target magnetic flux linkage value λ * dqに These can be combined into a single piecewise affine map that maps

[0203] (PM synchronous motor model) In the following sections, a model for a PM synchronous motor is provided. The model is similar to the WFS motor model described above, but is updated to account for the lack of an excitable rotor field. A PMSM is a three-phase synchronous machine that can be dynamically described by a state-space model.

number

[0204] Compensated Termination Voltage JPEG2025505533000122.jpg8135 is the termination voltage incorporating resistive voltage drops. The compensated termination voltage can include inverter non-idealities such as switch-on voltage drops and dead times. The PWA formulation presented later can include non-existent parameters such as damper windings, zero sequence currents, etc., which are omitted for simplicity. Furthermore, position-dependent effects can be added to the PWA model as the 3rd, 4th, ... nth dimension of the existing 2D dq PWA model. This formulation is compatible with any PM synchronous machine, regardless of the saliency ratio (IPMSM, SPMSM, etc.).

[0205] The torque of a PMSM is modeled by the following equation:

number

number

[0206] The sets I and Λ represent the full operating current and flux range of the machine. The relationship between current i and flux λ is nonlinear and saturates. Cross saturation makes the d-axis flux dependent on the d-axis and q-axis currents, and similarly for the q-axis flux. The functions f(i) and g(λ) model this relationship as follows:

number

[0207] The function f(i) is useful for calculating or estimating the flux λ of a machine given a feedback current, and g(λ) is useful for estimating i using an observer instead of direct measurement. Typically, g(λ) is computationally more difficult to obtain than f(i). The map f(·) may be a LUT constructed using measured points or finite element analysis (FEA) points interpolated by some method.

[0208] The compensated termination voltage is given by the vector JPEG2025505533000126.jpg8134, where U is the voltage operating range of the machine. The machine can therefore be described as a standard linear state space system of the form:

number

number

[0209] The input is the compensated voltage u, the state is the flux λ, and the output is the current i. This state space model can be used in an MPC controller, such as one that may implement the flux controller block 1805. The state λ is scaled according to the machine operating point by a piecewise affine map f pwa It is linearized using (i).

[0210] Piecewise Affine (PWA) Magnetic Model for PM Synchronous Motors As mentioned above, the motor 115 implemented as a PM synchronous motor can have its magnetic model represented as a PWA map. As previously mentioned (e.g., for the WFS motor above), the PWA map divides the nonlinear map into M domains where the functions are linearized. Thus, the PWA current-flux map can be expressed as:

number

[0211] The reciprocal of f(·) is shown in the following formula.

number

[0212] The process of creating this PWA map is: 1) I P 2) I P ,domain decomposition (e.g., Delaunay triangulation) of, all,L, j and ψ j 4) Calculate all L j and ψ j I j The process of creating a PWA map (I P In step 1 of the process of selecting I P ⊆I is the set of measured, simulated, or estimated current points used to create the PWA map. The corresponding flux set Λ p In general, at least in some instances, the set of all current-flux point pairs for the motor may be too large to create a corresponding PWA map, since the resulting PWA map may be too large for the DSP of the motor controller 120, which has a finite memory. Thus, a current-flux point pair (I P and the corresponding flux point Λ p ) may be identified or selected.

[0213] In some instances, I P can be regularly gridded, and I P i d and i q The data points are uniformly separated. The corresponding flux points Λ are not necessarily regularly gridded.

[0214] In other examples, I P can be irregularly gridded. Irregularly gridded I P can produce a higher accuracy PWA map for the same number of regularly gridded points because the flux errors are not evenly distributed. Irregularly gridded current points can also target areas in I and Λ that may be used more frequently, such as derated operations and MTPA.

[0215] Techniques for selecting a subset of current-flux point pairs for use in PWA map generation, including optimizing the PWA map, are described further below. Similar strategies to those described with respect to the process 600 of FIG. 6 and the WFS motor can be used.

[0216] Step 2 of creating a PWA map p In the domain decomposition of the PWA function, a domain decomposition algorithm (e.g., Delaunay triangulation) is applied to the current-flux pairs to obtain M subdomains of the PWA function. That is, constructing a PWA map or function involves dividing a domain I and an image Λ into M subdomains I j and the sub-image Λ j These M subdomains are connected and the resulting maps are not inconsistent. In other words, a point i ∈ I may be in one or more subdomains if and only if they map to the same point λ ∈ Λ. Thus, the domain can be divided into non-overlapping simplexes except on the boundary. For any point i ∈ ∂I on the boundary, jis expected to be part of more than one subdomain to ensure continuity. All points in the same λ∈∂Λ are also part of more than one subdomain. j In contrast, every point in the interior of a subdomain is part of exactly one subdomain.

[0217] The M subdomains are partitioned into the Delaunay triangulation DT(I P ) (or another domain decomposition algorithm) to identify unique and connected simplexes. P To compute the Delaunay triangulation for I P We can construct the Voronoi diagram using I P The Voronoi diagram of I space is P | Divide into Voronoi cells, and every point in a Voronoi cell is closer to I than any other point. P It is close to a single point in . To obtain the Delaunay triangulation, find the dual of the Voronoi diagram.

[0218] The Delaunay triangulation DT(I P ) is DT(I P ) that no point i∈I is inside two simplexes. In general, DT(I P ) is unique such that there is no set of D+2 points such that one of the points is strictly inside the smallest enclosing hypersphere of the set of points. Each subset is defined to be the simplest possible polytope in any D-dimensional space, a simplex that is a triangle in two dimensions of the given problem.

[0219] A D-dimensional simplicial can be defined as the convex hull of its D+1 vertices (called the V-notation), or alternatively, a simplicial can be defined by its faces, defined as affine inequalities (called the H-notation), as follows:

number

number

[0220] Step 3 of creating a PWA map is to calculate the subdomain coefficient (L j and ψ j ) is calculated for each simplex I j is defined by three vertices. One vertex i can be moved so that the origin shown in JPEG2025505533000134.jpg8135 can be moved. j0 Let be the support vector. In the shifted dimension, the simplex is defined as follows:

number

number

[0221] The non-zero vertices can be interpreted as a basis, and since affine maps are isomorphic, the relative positions of vectors in the current and flux simplex are the same.

number

[0222] The α coefficient can be obtained similarly to how Space Vector Modulation (SVM) calculates the relative on-time. Then, as in the following equation: It can be projected based on JPEG2025505533000141.jpg7135.

number

number

[0223] Magnetic Flux Vector To find JPEG2025505533000144.jpg6134, use the following formula: k To Multiply the basis vectors of JPEG2025505533000145.jpg8135.

number

[0224] The motor flux then results from the shift of the origin.

[0225] This calculation can be simplified using vector notation, where JPEG2025505533000147.jpg8134 are the respective matrices.

number

number

[0226] Substituting the original coordinates, we get the following equation:

number

number

[0227] In step 4 of creating the PWA map (assigning coefficients to simplexes), the coefficient L j and ψ j is the simplex I j Putting all these functions together produces a PWA map (magnetic model) for the motor 115 as a PM synchronous motor. Examples of regularly gridded PWA map functions of different sizes are shown in Figures 19A and 19B.

[0228] (Magnetic model optimization) As described above, step 1 of creating the PWA map can use a regularly gridded set of current points, but in some instances, an irregularly gridded set of current points is used. The irregularly gridded set of current points can be selected to optimize the PWA map. For example, an irregularly gridded set of current points can be selected to optimize the PWA map for a particular number of points (f PWA ) can be selected to minimize the flux error. P) by selectively choosing f PWA Selecting the region that minimizes the flux error of may depend on the application. The 2-norm flux error is a metric that can be used to measure the flux error of a PWA map to a reference magnetic model (e.g., FEA spline) at any given point. PWA To create a 13x13 regularly gridded I P An example of the 2-norm flux error distribution using is shown in Figure 20. The flux error can be highest when the flux linkage is most nonlinear.

[0229] In some examples, we present an optimized irregularly gridded current point map I of N points for use in generating a PWA map of a PM synchronous motor. P 6 is used by electronic controller 400 (of FIG. 4) to identify the set of current points I to reduce or minimize the maximum 2-norm flux error. P In some examples, in contrast to the algorithm of FIG. 4, the first set of current points in block 605 may be selected to be the minimum number of points (I P ,Λ P ), which is chosen to be four current points corresponding to four flux points. This minimum number of current points (4) provides a square in the dq current space). Otherwise, process 600 can be implemented in a similar manner to generate a PWA map from an N-point optimized irregular grid.

[0230] Using this technique, three regions of interest were identified: the total current range (I), the approximate MTPA orbital region (I MTPA ), and the approximate derated current area (I derated ) is evaluated and investigated. I represents the absolute maximum current limit. I derated represents the typical rated or continuous current limit, and ||i dq ||≦i rated In this case, i rated = 0.75pu. MTPAis a region, not an area, in which the temperature variations of the PM synchronous motor parameters are considered.

[0231] The PWA method of constructing a magnetic model can be evaluated by the flux error. In the following section, we consider the PWA map (f PWA ) is evaluated. The current points used to build the model were taken from a large pool of experimental data points, and the corresponding flux points were estimated using a least-squares approximation. For reference, I * In the regularly gridded total current space (I P =I) PWA is also used. * is constructed using a square grid, i.e. 2×2, 3×3, ... 6×6, so N=4, 9, ... 36. The data in this section come from an interior PM synchronous motor IPMSM. The magnetic model is S and compared to a high-fidelity spline-interpolated magnetic model constructed using many FEA data points.

[0232] The flux error in the magnetic model corresponds to the error in the state-space model of the system and the torque. f using the irregular optimization algorithm described above with respect to Figure 6 PWA and f S The 2-norm flux error between i and I can be evaluated by sampling many random current points i∈I. The average and maximum of this error within the optimization area for various values ​​of N are shown in Figure 21. Among the irregular optimized functions, the error is smallest for the MTPA area since it is the smallest area by area, and the error is largest for I since it is the largest area. I * It can be seen that the (regularly gridded) mean and maximum errors are significantly worse by margins of about 5-10% and about 80-100%, respectively.

[0233] The error distribution of these magnetic models is not uniform. As an example, a regular grid of 36 points (6 × 6) of current points (I *) and an irregularly gridded function of 40 points (I,I MTPA ,I derated ) is shown in Figure 21. All simplex I j A simple mesh I consisting of M are shown in the top row, and the I P The layout of points in is shown in the middle row, and the 2-norm flux error distribution is shown in the bottom row. The 2-norm flux error is minimized in the area of ​​interest, which is especially MTPA and I derated It is clear that there is a low flux error for

[0234] In Fig. 22, information on three irregularly gridded magnetic models and a regular grid magnetic model is shown in each column. More specifically, the top row shows all the simplex I j A simple mesh I consisting of M The middle row shows the I P The diagram shows the arrangement of points in . The bottom row shows the 2-norm flux error distribution determined for each magnetic model. The first column is for PWA maps generated using regularly gridded current points that cover I. The second column is for PWA maps generated using irregularly gridded current points that optimize I. The third column is for PWA maps generated using irregularly gridded current points that optimize I. MTPA The fourth column shows the PWA map generated using irregularly gridded current points that optimize I derated We target PWA maps generated using irregularly gridded current points that optimize

[0235] Thus, to generate a PWA map for a PM synchronous motor using one or more of the various techniques described herein, the PM synchronous motor system 1800 of FIG. 18 provides a motor controller 120 that controls the motor 115 using current-flux linkage PWA maps (e.g., PWA map 1810 and / or PWA map 1815). As described, these PWA maps can be generated based on a regularly gridded current space or based on an irregularly gridded current space. Furthermore, these PWA map(s) generated based on an irregularly gridded current space can have a higher current point density in regions with nonlinear behavior that can increase the accuracy of the map and / or a lower current point density in regions of linear behavior that can reduce the overall size of the map (reducing the memory space used to store the map in the motor controller 120 or elsewhere). These PWA map(s) also allow for more precise or accurate transformations between the current domain and the flux domain and the inversion of the associated matrices. Additionally, the PWA map(s) also allow for more accurate motor models with fewer points, as well as, in some embodiments, the ability to optimize the irregular points needed to describe or represent a given machine for a desired accuracy or computation.

[0236] As discussed above, the motor system 1800 can be used to implement one or more of the methods 300, 950, and 1700. In other words, as discussed above, a PM synchronous motor can be used in conjunction with these methods 300, 950, and 1700.

[0237] For example, referring back to the method 300 of FIG. 3 in conjunction with the system 1800 of FIG. 18, in block 305, the motor controller 120 of the system 1800 determines current values ​​for the PM synchronous motor 115 in a rotating reference frame, such as a DQ reference frame. Each current value is associated with one dimension (or axis) of a set of dimensions of the DQ reference frame. For example, as described with respect to the system 100 of FIG. 2, the motor controller 120 of the system 1800 can determine electrical operating characteristics of the motor 115 in a stationary reference frame, determine a rotational position of the motor 115 (e.g., of a rotor of the motor 115), and convert the electrical operating characteristics and rotational position to current values ​​for the motor 115 in the rotating reference frame via a Clarke-Park transformation block 1817.

[0238] In block 310, the motor controller 120 of the system 1800 is configured to determine, based on the current values, a flux linkage value for each dimension of the set of dimensions of the rotating reference frame using a piecewise affine map. For example, the motor controller 120 may determine the flux linkage value λ using the PWA current-flux linkage map 1815. dq In some examples, as described above with respect to the system 100 of FIG. 2, the motor controller 120 of FIG. 18 may first identify in which simplex (or domain) of the PWA map 1815 the current value resides, and then calculate the magnetic flux linkage using a particular affine function associated with the identified simplex.

[0239] In block 315, the motor controller 120 is configured to determine a target flux linkage value for each dimension of the set of dimensions of the rotating reference frame. For example, the motor controller 120 may determine a target flux linkage value λ * dq To determine the target flux linkage value, the motor controller 120 determines a desired control parameter of the motor 115 (e.g., the motor torque (T * ) or motor speed (not shown) can be determined.* ) or velocity), which may be referred to as motor commands, may be provided by an input device as described above. The motor controller 120 can then use a reference generation block 1820 to convert the desired control parameters into target current values ​​for the motor in a rotating reference frame (e.g., i * dq For example, the motor controller 120 may calculate a desired control parameter T * A reference generation block 1820 in the form of a look-up table (e.g., stored in memory 130) that maps potential values ​​of to target current values ​​may be used. The look-up table may be pre-populated based on experimental data. The motor controller 120 may then use a piecewise affine (PWA) map 1810 to determine target flux linkage values ​​for each dimension of a set of dimensions of a rotating reference coordinate system based on the target current values. The motor controller 120 may use the PWA map 1810 to determine target flux linkage values ​​based on target current values ​​in a manner similar to how the PWM map 1815 is used to determine flux linkage values ​​based on current values. Note that the two PWA maps 1810 and 1815 shown in FIG. 18 may be duplicated PWA maps, or the motor controller 120 may use one PWA map for both actual and target values ​​(i.e., although two PWA maps are shown, some embodiments include one shared PWA map instead).

[0240] In block 320, the motor controller 120 is configured to control the power switching network based on the flux linkage values ​​and the target flux linkage values. In some embodiments, the motor controller 120 can generate control signals in a stationary reference frame to drive the motor 115 based on the difference between the target flux linkage values ​​and the flux linkage values ​​of the dimensions. For example, the virtual flux controller 1805 can calculate the difference values, or the motor controller 120 can include a difference block similar to the difference block 235 of FIG. 2, to determine the difference between each flux linkage value and the target flux linkage value for each dimension of the set of dimensions of the rotating reference frame (e.g., the D dimension and the Q dimension, optionally a null dimension). The motor controller 120 (e.g., via the virtual flux controller 1805) can then generate voltage commands for each dimension of the set of dimensions of the rotating reference frame based on the difference values ​​and the rotational position. For example, the flux controller 240 can generate a voltage command V d and V q (collectively V dq or u * dq (also called

[0241] The motor controller 120 can then transform the voltage command from the rotating reference frame to the stationary reference frame. For example, the motor controller 120 can use the inverse Clarke-Park transform block 1845 to transform the voltage command V dq To calculate the voltage command V in the stationary reference frame, we perform an inverse Clarke-Park transformation on a , V b , and V c (collectively V abc 2, the motor controller 120 can then use a PWM generation block 1850 to generate pulse width modulated control signals for each dimension of the stationary reference frame to control the power switching network 205 to drive the stator of the motor.

[0242] In a motor operating mode, the motor drive circuit 110 is controlled based on the control signal to provide power from the power source 105 to the motor 115 to drive rotation of the motor 115. Similarly, in a generator operating mode, the motor drive circuit 110 is controlled based on the control signal to apply power from the motor 115 to the power source 105 (e.g., to charge the power source) and / or to another electrical load.

[0243] As discussed above, motor system 1800 may also be used to implement method 950. With respect to method 950 of FIG. 9B, in conjunction with FIG. 18, in block 955, motor controller 120 of system 1800 determines current values ​​for PM synchronous motor 115 in a rotating reference frame, such as the DQ reference frame. Motor controller 120 of FIG. 18 may perform this block 955 in a manner similar to how motor controller 120 of FIG. 18 performs block 305 of FIG. 3.

[0244] In block 960, the motor controller 120 of FIG. 18 determines a desired control parameter (e.g., a desired motor torque value (T * )) using the first piecewise affine map to determine target motor control parameter values ​​for each dimension of the set of dimensions of the rotating reference coordinate system. Motor controller 120 can then apply an MTPA function block 1820 implementing the PWA map to the desired control parameters. In some examples of system 1800 of FIG. 18 that implements process 950, MPLPT function block 905 of FIG. 9A (described above) determines rotor field target current i * r Without the DQ reference frame (i * dq) can function in place of the MTPA function block 1820. As discussed above, the MPLPT function block 905 can implement a PWA map, and using the PWA map to convert the input desired control parameters to target motor control parameter values ​​can be performed in a manner similar to that described above with reference to FIGS. 9A-9B. In some examples, the output current values ​​of the MPLPT function block 905 or the MTPA function block 1820, as the case may be, are intermediate target motor control parameter values ​​that are then further converted to (final) target motor control parameter values ​​by the current-flux linkage map 1810. If the controller 1805 of FIG. 18 is a current-based controller rather than a flux-based controller, or if the MPLPT function block 905 or the MTPA function block 1820 is a reference torque (T * ) to the target magnetic flux value (λ * ), the output current value of the MPLPT function block 905 or the MTPA function block 1820 is the (final) target motor control parameter value.

[0245] In block 965, the motor controller 120 of the system 1800 controls the power switching network based on the current values ​​(e.g., received directly or after conversion to flux values ​​via a flux linkage map 1815) and the target motor control parameter values ​​(e.g., received directly or after conversion to target flux values ​​via a flux linkage map 1820). The motor controller 120 of FIG. 18 then controls the power switching network based on the received values ​​(e.g., λ dq、 λ * dq、 θ or λ dq -λ * dq 18 may execute this block 965 in a manner similar to how motor controller 120 of FIG. 18 executes block 320 of FIG. 3 based on the input voltages V 1 and V 2 ) and output a voltage command to an inverse Clarke-Park transform block 1845.

[0246] As discussed above, motor system 1800 may also be used to implement method 170. With respect to method 1700 of FIG. 17, in conjunction with FIG. 18, in block 1705, motor controller 120 of system 1800 determines current values ​​for PM synchronous motor 115 in a rotating reference frame, such as the DQ reference frame. Motor controller 120 of FIG. 18 may perform this block 1705 in a manner similar to how motor controller 120 of FIG. 18 performs block 305 of FIG. 3.

[0247] In block 1710, motor controller 120 determines target motor control parameter values ​​for each dimension of a set of dimensions of a rotating reference coordinate system based on the desired control parameters. Motor controller 120 of FIG. 18 may perform this block 1710 in a manner similar to how motor controller 120 of FIG. 16 performs block 1710 of FIG. 17. For example, motor controller 120 of FIG. 18 may perform target motor control parameter values ​​for each dimension of a set of dimensions of a rotating reference coordinate system based on the desired control parameters (e.g., T * ) and converts the desired control parameters to target motor control parameter values ​​(e.g., λ * dq ) can be converted to

[0248] In block 1715, the motor controller 120 controls the power switching network based on the current values ​​and the target motor control parameter values ​​by using the piecewise affine map defined by offline solving a model predictive control algorithm using the sample inputs. For example, in some scenarios, the virtual flux controller 1805 implements a model predictive control (MPC) algorithm to generate a control signal (e.g., a voltage command (V)) based on the received or determined difference value (e.g., ) and the rotational position (θ) of the motor. dq The control is based on the current value and the target motor control parameter value because at least the MPC controller 1805 generates the current value (e.g., i abc , i dq ) and the target magnetic flux value (λ *) (target motor control parameter values) is used to generate control.

[0249] The MPC algorithm includes an MPC optimization problem or equation, as described in further detail below with respect to PM synchronous motor implementations. In some examples, the MPC controller 1605 implements "explicit MPC." In such examples, prior to execution of the process 1700, an MPC optimization problem is solved offline, and control laws are generated therefrom and stored in the MPC controller 1805. The control laws are then accessed and implemented to control the motor 115 during real-time operation of the motor 115 in block 1715. For example, an MPC optimization problem (e.g., described below) is solved offline for all or a subset of possible inputs, and then used to generate a piecewise affine map ("MPC PWA map") that is stored in the controller 120 (e.g., as part of the MPC controller 1805) prior to motor operation. The MPC PWA map defines multiple domains, each with an associated control law. In real time while the motor is operating, the MPC controller 1805 receives measurements (e.g., received difference values ​​and the rotational position (θ) of the motor) that indicate which domains of the MPC PWA are active. Thus, the MPC controller 1805 identifies the active domains and the feedback control laws associated with the active domains. The MPC controller 1805 then uses the identified control laws to generate control signals (e.g., voltage commands (V dq )).

[0250] (MPC controller for PM synchronous motors using PWA map(s)) In some examples of PM synchronous motor system 1800 that may use one or more current-flux linkage PWA maps generated for the PM synchronous motor as described above, virtual flux controller 1805 is implemented as an MPC controller. In such cases, virtual flux controller 1805 may be referred to as a virtual flux MPC (VF-MPC) controller 1805. VF-MPC controller 1805 may use the output of one or both of the current-flux linkage PWA maps 1810, 1815 described above and may perform model predictive control (MPC) on these outputs to generate control signals for ultimately controlling motor 115. In at least some examples, the use of MPC-based control and current-flux PWA maps by VF-MPC controller 1805 to control a PM synchronous motor (e.g., motor 115) results in a reduction in flux and torque errors (e.g., by an order of magnitude) throughout the entire machine operation.

[0251] In general, MPC is a control method for PM synchronous motors that provides multiple input and multiple output capabilities, the ability to handle nonlinear systems, desired stability characteristics, and the ability for real-time application in a microcontroller (MCU). As described above for WFS motors, MPC solves a constrained finite-time optimal control (CFTOC) problem at every control step. In electric motors, the implementation of MPC may be direct torque control (MP-DTC), and direct speed control (MP-DSC), current control, and voltage control.

[0252] The CFTOC problem can be solved and actuation actions applied every control cycle via modulation schemes such as Space Vector Modulation (SVM) or Pulse Width Modulation (PWM). This technique is called Convex Control Set MPC (CCS-MPC). Conversely, actuation steps can be applied only if certain criteria are met, i.e., if the error exceeds a certain amount. This technique is called Finite Control Set MPC (FCS-MPC). It can be shown that CCS-MPC is asymptotically stable, while FCS-MPC is set to stable (error bounds).

[0253] Due to the state-space model becoming nonlinear, nonlinear flux linkage resulting from saturation and cross-saturation effects can result in MPC controllers with inefficient operation for PM synchronous motors at full power. Virtual flux MPC (VF-MPC) for PM synchronous motors is a control method that uses the motor's flux as a state variable, utilizing current-flux and αβ transformations on the flux to create a sine-tracking MPC problem or flux error to create an MPC regulation problem. Separating the magnetic model f(i) from the control allows for the use of more advanced and accurate magnetic models such as the piecewise affine (PWA) magnetic model as described above. The PWA magnetic model (MM) shares many of the same advantageous properties as the linearized map, including linearity, bidirectionality, and continuity, and can further capture saturation and cross-saturation effects. These advantages translate to improved efficiency as the controller can more accurately bring the motor to the desired reference point (by MTPA or flux weakening) and otherwise have a steady-state offset. An offline MM can be constructed using machine data points from analytical calculations, FEA analysis, and experiments (or a combination thereof) and can be interpolated via linear interpolation, Hermite spline interpolation, polynomials, and / or piecewise nonlinear. Relative to online parameter estimation methods, the use of an offline PWA MM can reduce the computational burden of the MPC controller.

[0254] In some examples of the system 1800 provided herein, the MPC controller 1805 is a VF-MP-DTC controller that uses an offline PWA MM to control a PM synchronous motor (e.g., motor 115). The generation of offline PWA MM models for PM synchronous motors, including regularly gridded and irregularly gridded PWA maps, is described in further detail above. In other examples, the MM may be a linear model, which may be less accurate than the PWA MM models as described. The linear models, such as nameplate magnetic models or optimized linear magnetic models, may have the following form:

number

number

[0255] By this definition, the mutual flux of the machines (off-diagonal terms of L) is neglected, leaving a small but non-negligible (saturated) ψ q The map f(i) is actually non-convex, and L and ψ PM where i∈I p If it can vary by a large margin all over, it is approximated as planar, i.e., convex.

[0256] In some examples involving MPC control, the αβ reference frame can be used instead of the dq reference frame because in the αβ reference frame the state equations are independent of the speed ω and linear. Therefore, although the PM synchronous motor model described above still applies, the αβ dynamic model for a PM synchronous motor can be modeled by a discrete first-order ordinary differential equation.

number

number

[0257] The torque of a PMSM is the cross product of the current and flux multiplied by the pole pairs and a constant.

number

number

[0258] The state space system for the PM synchronous motor system 1800 can be modeled as a regulation problem instead of a sinusoidal tracking problem by using a state vector.

number

number

number

[0259] Thus, the state space equations are of the form:

number

[0260] Turning to constraints, the current limit of a machine can be defined by the continuous current and the maximum current. The continuous current is the current at which the machine can operate at steady state for an extended period of time, while the copper losses i 2 R s represents the current limited by thermal effects of and traces out a circle or ellipse in the dq current plane.

number

number

[0261] Rated magnetic flux set Λ r is the inverted magnetic model i dq =g(λ dq ) is any magnetic flux that is within the rated current set when mapped back to current using

number

[0262] f(i dq ) is perfectly linear, then Λ r can be rectangular, but when saturation effects are included, Λ r can be a bulging rectangle in the dq current plane. The nominal flux value λ dqr can be defined to be the magnetic flux at the intersection of the MTPA orbit and the rated current set.

[0263] The voltage constraints in this problem are V s Constrained by CCS or V d The FCS can be any of the FCSs constrained by the FCS voltage constraint V s is restricted to six discrete states of the voltage source inverter (VSI) in the αβ frame.

number

[0264] CS voltage constraint V d is any interior point of the six states in the αβ frame, or V s Let H be the convex hull of V d =H(Vs).

[0265] (Model predictive control for PM synchronous motors) Model predictive control (MPC) or receding horizon control (RHC) is a control method that solves a constrained finite-time optimal control (CFTOC) problem to calculate the optimal trajectory of the state and input for a future control cycle of length N (prediction horizon), and then implements the first input. In this problem, the state is the flux error JPEG2025505533000170.jpg8134, and the input is the compensation voltage JPEG2025505533000171.jpg7134, and the state space model is JPEG2025505533000172.jpg7134. The state being measured or estimated is x0 and the desired state is x N and the CFTOC output is U 0→N is a set of control inputs of length N denoted by 0→N It is expressed as:

number

number

[0266] Since this is a regulation problem, the desired state is x * =0.

[0267] The cost function J0(x0,u0) assigns a cost to a trajectory of states and inputs starting at (x0,u0) with length N by:

number

number

[0268] The optimization problem is stated as follows:

number

[0269] where k={0,...,N-1} and the cost J * The minimization of 0(x) is subject to three constraints as listed. The first constraint constrains the state to follow the state equations, the second constraint constrains the flux and compensation voltages relative to the machine rated flux to the CCS voltage constraints (replaced by Vd when using FCS-MPC), and the third constraint constrains the final state to the terminal zone. The solution of the optimization problem is given by the optimal input U * 0→N and Cost J * State X with 0(x) * 0→NThe initial solution of the trajectory is the input to the system, and at the next sampling period, the CFOTC problem is re-solved and the initial solution of the new trajectory is the input to the system.

[0270] In the tests, four magnetic models, two linear and two PWA, were evaluated offline to estimate the flux error for each model using MPC-based control as may be implemented by the MPC controller 1805. The MPC tuned controller as described herein was formulated utilizing a cost function and prediction horizon in the αβ frame. The PWA magnetic models were proven to consistently reduce the flux and torque errors by an order of magnitude compared to the linear MM in steady-state experiments (T=0-0.8 puω=1-3 pu) and transient experiments (ω=3 pu speed step, T=1 pu torque step).

[0271] (Additional Dimensions) In some examples described herein, a PWA map, such as PWA map 220 or 225, maps motor current to magnetic flux. In some further examples, such PWA maps incorporate additional dimensions corresponding to additional motor characteristics, such as rotor rotational speed (ω), rotor rotational acceleration, motor temperature, etc. For example, PWA map 220 (and / or another of the disclosed current-flux PWA maps) may map motor current (e.g., i f,dq ) as well as one or more other motor characteristics as additional dimensions (e.g., rotor rotational speed, position, or acceleration, motor temperature, etc.). The one or more other motor characteristics may be determined by motor controller 120, for example, by direct sensing via an associated sensor, or indirectly by calculating or inferring based on another sensed motor characteristic. The PWA map converts the input into a magnetic flux (e.g., λ) that is output by the PWA map. f,dq That is, the PWA map can map a set of input values ​​to output flux linkage values ​​for each dimension of a rotating reference frame, where the set of input values ​​can be mapped to current values ​​(e.g., i f,dq) and at least one additional motor characteristic (e.g., rotor rotation speed, rotor rotation acceleration, motor temperature, etc.).

[0272] More specifically, as described above, the PWA map includes a plurality of affine functions, each of the plurality of affine functions being associated with a respective domain of the plurality of domains. To obtain the flux linkage from a set of inputs to the PWA map, the controller (e.g., motor controller 120) can identify a first domain corresponding to the set of inputs and selected from the plurality of domains. The first domain is associated with a first affine function of the plurality of affine functions. The controller can then apply the set of inputs (i.e., the current values ​​and one or more additional motor characteristics) to the first affine function to determine the flux linkage value for each dimension of the rotating reference frame. In some examples, each of the plurality of domains associated with a respective affine function corresponds to a simplex provided by executing a domain decomposition algorithm on a data set of input / output pairs for multiple operating points of the motor. Here, the inputs of each input / output pair include, for an operating point of the motor, a current value and one or more additional motor characteristics, and the output includes a corresponding flux linkage value.

[0273] As another example, rotor position (θ) may be an additional motor characteristic corresponding to an additional dimension in the PWA map. For example, the relationship between flux linkage, inductance, current, and / or torque may be related to desired motor operating characteristics, such as slot passing effects that result in torque ripple and BEMF variations during motion. In a PMSM, five variables, i d , i q , λ d , λ q There can be two degrees of freedom for a given data point in θ, i and torque. By specifying any two variables, the other three variables can be uniquely determined by physics-based relationships, typically modeled via FEA. To incorporate position, each data point is d , i q , λ d , λq and torque, with three independent parameters known or specified, and the remaining three variables inherently determined by physics-based relationships. Other quantities, such as efficiency, conduction losses, etc., may be included in the data set, but these other quantities may either be derived from these existing quantities or be considered negligible for the control or modeling problem statement.

[0274] In some instances, motor speed (ω) may be useful as an additional motor characteristic corresponding to an additional dimension, since other system losses may be a function of speed (ω) and may affect which combination of winding currents and flux linkages results in the most desirable operating conditions, e.g., efficiency. In such cases, the complete operating point may be the 8-dimensional point ω,i d、 i q、 λ d、 λ q , torque, p loss core、 p loss conduction While the operating point may be specified by any three variables, the operating point may be uniquely identified or specified by any three variables, with the other five variables constrained by physics-based relationships and / or composite metrics that form a desired figure of merit.

[0275] In some examples involving wound-field machines with a single-phase rotor, relative to the PMSM example above, one additional degree of freedom is introduced, but that degree of freedom involves two additional parameters, i r and λ r There is.

[0276] The inclusion of additional dimensions in the PWA map, in addition to current, can improve the accuracy of the PWA map. In other words, in this example, the magnetic flux output by the PWA map may be a more accurate representation of the actual magnetic flux of the motor 115. In contrast to other techniques, additional dimensions can be added to the PWA map technique without increasing the amount of computation to the point of impracticality. That is, the PWA map can incorporate additional dimensions and still be practically implemented on a motor controller having typical processing and memory resources. Additionally, in some further examples, the disclosed PWA map that maps motor magnetic flux to current is modified to also include one or more additional dimensions (e.g., one or more additional motor characteristics) to increase the accuracy of the current output by the PWA map.

[0277] As will be appreciated from the discussion throughout this disclosure, some embodiments include an MPC controller (e.g., MPC controller 1605) that implements model predictive control, although some embodiments use other flux, current, or model-based controllers as part of the motor controller 120. That is, the PWA maps described herein can be used with any flux, current, or model-based controller (or control method). Use of the PWA maps can, for example, reduce space, increase accuracy of the motor or plant model, and / or improve performance of the controller (e.g., better dynamics, reduced error, better reference generation, etc.). Examples of such flux, current, or model-based controllers include MPC controllers, PID controllers, any model-based controllers that use current lookup tables, etc. The associated calculations for the PWA maps can be performed online or offline.

[0278] Also, as should be understood from the discussion of this disclosure overall, various features from any of the disclosed motor systems and methods may be included in others of the disclosed motor systems and methods. For example, motor system 100 of FIG. 1 may include motor 115 in the form of any of a WFS motor, PM synchronous motor, hybrid synchronous motor, universal motor, induction motor, reluctance motor (synchronous or switched), or another motor type, and motor controller 120 may further include or implement any combination of a current-flux PWA map (e.g., similar to maps 220, 225, 1610, 1615, 1810, or 1815), a current-inductance PWA map (e.g., similar to map 2320), MPLPT or MTPA reference generation (e.g., similar to blocks 905 or 1820), and / or an MPC flux controller (e.g., similar to MPC flux controller 1605 or 1805).

[0279] Basic models for WFS motors and PM synchronous motors are described above, and the WFS motor models can also be applied to hybrid synchronous motors. Similar models can be used to describe or define other motor types (e.g., universal motors, induction motors, reluctance motors (synchronous and switched), etc.) updated for the specifics of each motor type. These models can be used in a similar manner as described above to generate one or more of a current-flux PWA map (e.g., similar to maps 220, 225, 1610, 1615, 1810, or 1815), an MPLPT or MTPA reference generation map (e.g., similar to block 905 or 1820), and / or an MPC flux controller (e.g., similar to MPC flux controller 1605 or 1805) for use in operation with other types of such motors. For example, the universal motor model may include stator d-axis current, stator q-axis current, stator z-axis current (for star-connected), rotor d-axis winding current (for wound rotor machines and externally fed induction machines), rotor q-axis winding current (for externally fed induction machines), rotor d-axis damper winding (for squirrel cage induction machines and line start machines), rotor q-axis damper winding (for squirrel cage induction machines and line start machines), and stator xy-axis (for multi-phase machines, the machine may have additional xy-axis depending on the number of phases). Additionally, all current dimensions may have associated magnetic flux and voltage. In general, the d-axis is aligned with the magnetic axis of the magnetic field. Stated another way, the universal motor model may include the D-axis, Q-axis, and null-axis of all independent bodies in the system, each with the ability to electromagnetically communicate through the D-axis and contribute to torque through the Q-axis. A change in the D-axis on one component (A) results in a change in the stored electromagnetic energy that can be sensed / affected on the D-axis of another component, and (B) affects the torque that can be generated in the system. A change in the Q-axis of one component results in a torque, but does not result in a change in magnetic field energy that can be sensed / affected by other system components.Changes in the null axis are in the "null space" of the DQnull system, where they have no effect on the general magnetic field energy or torque resulting from its magnetic field. Within this "null space" there may be one or more other DQnull systems. Damper bars are one such example, they have currents and resulting magnetic fields that are not directly sensed by the main rotor or stator winding system, but provide a counter torque to eliminate the net torque ripple resulting from the slot passing effect of the main RDQ currents / magnetic fields.

[0280] In some examples, the motor controller 120, in any of its various configurations described herein (see, e.g., FIG. 2, FIG. 9A, FIG. 16, FIG. 18, or FIG. 23), is implemented as a set of instructions stored on a non-transitory computer-readable medium, the instructions being for execution by a processor. Further, the processor may be configured to (or may be connected to another device configured to) simulate a motor, a power supply, and a power switching network (e.g., simulating an arrangement similar to that of FIG. 2, FIG. 9A, FIG. 16, FIG. 18, or FIG. 23). Thus, the processor may be configured, through execution of the set of instructions, to monitor and control a motor, the motor being a simulated motor coupled to a simulated power supply via a simulated power switching network.

[0281] Although certain embodiments have been disclosed in detail herein, this is done by way of example for illustrative purposes only and is not intended to be limiting with respect to the scope of the following appended claims. Features of the disclosed embodiments can be combined, rearranged, etc., within the scope of the invention to produce many more embodiments. Certain other aspects, advantages, and modifications are believed to be within the scope of the claims provided below. The presented claims represent at least some of the embodiments and features disclosed herein. Other unclaimed embodiments and features are also contemplated.

[0282] (More examples with different characteristics) The present disclosure can be further understood by the following examples.

[0283] Example 1: A method, apparatus, and non-transitory computer-readable medium for motor control includes determining, by an electronic controller, current values ​​for a motor in a rotating reference frame, each associated with one dimension of a set of dimensions of the rotating reference frame; determining, based on the current values, flux linkage or inductance values ​​for each of the set of dimensions of the rotating reference frame using a piecewise affine map; determining, by the electronic controller, target values ​​for each of the set of dimensions of the rotating reference frame; and controlling, by the electronic controller, a power switching network coupled between a power source and the motor based on the flux linkage or inductance values ​​and the target values.

[0284] Example 2: The method, apparatus, and non-transitory computer-readable medium of Example 1, wherein determining current values ​​for the motor in the rotating reference frame includes determining electrical operating characteristics of the motor in a stationary reference frame, determining a rotational position of the motor, and converting the electrical operating characteristics and the rotational position to current values ​​for the motor in the rotating reference frame.

[0285] Example 3: The method, apparatus, and non-transitory computer-readable medium of any of Examples 1-2, wherein the piecewise affine map includes a plurality of affine functions, each associated with a respective domain of the plurality of domains, and determining a flux linkage or inductance value for each dimension of a set of dimensions of a rotating reference frame using the piecewise affine map based on a current value includes identifying a first domain selected from the plurality of domains that corresponds to the current value, the first domain being associated with a first affine function of the plurality of affine functions, and applying the current value to the first affine function to determine a flux linkage or inductance value for each dimension of the set of dimensions of the rotating reference frame.

[0286] Example 4: The method, apparatus, and non-transitory computer-readable medium of Example 3, wherein each of the multiple domains corresponds to a simplex provided by running a domain decomposition algorithm on a data set of current pairs and flux linkage pairs for multiple operating points of the motor, or each of the multiple domains corresponds to a simplex provided by running a domain decomposition algorithm on a data set of current pairs and inductance pairs for multiple operating points of the motor.

[0287] Example 5: The method, apparatus, and non-transitory computer-readable medium of any of Examples 1 to 4, wherein determining a target value for each dimension of the set of dimensions of the rotating reference coordinate system includes determining a desired control parameter for the motor, transforming the desired control parameter to a target current value for the motor in the rotating reference coordinate system, and determining a target value for each dimension of the set of dimensions of the rotating reference coordinate system using a piecewise affine map based on the target current values.

[0288] Example 6: The method, apparatus, and non-transitory computer-readable medium of Example 5, wherein transforming the desired control parameters to target current values ​​for the motor in the rotating reference coordinate system includes determining target current values ​​for each dimension of a set of dimensions of the rotating reference coordinate system based on the desired control parameters using a control parameter-current piecewise affine map.

[0289] Example 7: The method, apparatus, and non-transitory computer-readable medium of Example 6, wherein the control parameter-current piecewise affine map includes a plurality of affine functions, each associated with a respective domain of the plurality of domains, and determining a target current value for each dimension of a set of dimensions of a rotating reference coordinate system using the control parameter-current piecewise affine map based on a desired control parameter includes identifying a first domain corresponding to the desired control parameter and selected from the plurality of domains, the first domain being associated with a first affine function of the plurality of affine functions, and applying the desired control parameter to the first affine function to determine a target current value for each dimension of the set of dimensions of the rotating reference coordinate system.

[0290] Example 8: The method, apparatus, and non-transitory computer-readable medium of any of Examples 5 to 7, wherein the desired control parameter is a target torque value for the motor.

[0291] Example 9: The method, apparatus, and non-transitory computer-readable medium of any of Examples 1 to 8, wherein determining a target value for each dimension of the set of dimensions of the rotating reference coordinate system includes determining desired control parameters for the motor, transforming the desired control parameters to target current values ​​for the motor in the rotating reference coordinate system using a control parameter-current piecewise affine map, the target current values ​​including target current values ​​for each dimension of the set of dimensions of the rotating reference coordinate system, and determining a target value for each dimension of the set of dimensions of the rotating reference coordinate system based on the target current values.

[0292] Example 10: The method, apparatus, and non-transitory computer-readable medium of any of Examples 1 to 9, wherein determining a target value for each dimension of a set of dimensions of a rotating reference coordinate system includes determining desired control parameters for the motor, and transforming the desired control parameters into target values ​​for the motor in a rotating reference coordinate system using a control parameter-flux linkage piecewise affine map, the target values ​​including a target flux linkage value for each dimension of the set of dimensions of the rotating reference coordinate system.

[0293] Example 11: The method, apparatus, and non-transitory computer-readable medium of any of Examples 1 to 10, wherein determining a flux linkage or inductance value for each dimension of the set of dimensions based on the current value includes determining a flux linkage value for each dimension of the set of dimensions based on the current value, the target value being a target flux linkage value, and controlling the power switching network based on the flux linkage values ​​and the target flux linkage values ​​includes generating a voltage command for each dimension of the set of dimensions of the rotating reference frame based on a difference between the target flux linkage value and the flux linkage value for the dimension, transforming the voltage commands in the rotating reference frame to a stationary reference frame, generating pulse width modulated control signals for each dimension of the stationary reference frame to control the power switching network to drive a stator of the motor, and generating a rotor control signal to control driving of a rotor field winding.

[0294] Example 12: The method, apparatus, and non-transitory computer-readable medium of any of Examples 1 to 11, wherein determining a flux linkage or inductance value for each dimension of the set of dimensions based on the current value includes determining a flux linkage value for each dimension of the set of dimensions based on the current value, the target value being a target flux linkage value, and controlling the power switching network based on the flux linkage values ​​and the target flux linkage values ​​includes generating a control signal in a stationary reference frame to drive the motor based on a difference between the target flux linkage value and the flux linkage value for the dimension.

[0295] Example 13: The method, apparatus, and non-transitory computer-readable medium of any of Examples 1 to 12, wherein controlling a power switching network based on a flux linkage or inductance value and a target flux linkage value includes generating a control signal for driving a motor based on the target value and the flux linkage value or inductance value based on a model predictive control algorithm.

[0296] Example 14: The method, apparatus, and non-transitory computer-readable medium of any of Examples 1 to 13, wherein generating a control signal based on a model predictive control algorithm includes solving a linear state space equation over a receding time window to select a next control parameter.

[0297] Example 15: The method, apparatus, and non-transitory computer-readable medium of any of Examples 1 to 14, wherein generating a control signal based on a model predictive control algorithm includes accessing a second piecewise affine map defined by offline solving of the model predictive control algorithm using the sample inputs.

[0298] Example 16: The method, apparatus, and non-transitory computer-readable medium of any of Examples 1 to 15, wherein the motor is a wound field synchronous motor with at least three stator phases and at least one rotor field winding.

[0299] Example 17: The method, apparatus, and non-transitory computer-readable medium of any of Examples 1 to 16, wherein the power switching network includes an inverter switch bridge including a plurality of power switching elements, the inverter switch bridge receiving DC power and outputting AC power to a winding of a stator based on a pulse width modulated control signal from an electronic controller.

[0300] Example 18: The method, apparatus, and non-transitory computer-readable medium of any of Examples 1 to 17, further comprising: receiving, by a DC / DC converter, input DC power; and supplying, by the DC / DC converter, output DC power to at least one rotor field winding in accordance with a pulse-width modulated rotor control signal from an electronic controller.

[0301] Example 19: A method, apparatus, and non-transitory computer-readable medium according to any of Examples 1 to 18, wherein the piecewise affine map maps a set of input values, the set of input values ​​including current values ​​and at least one additional motor characteristic, to output flux linkage or inductance values ​​for each dimension of the set of dimensions.

[0302] Example 20: The method, apparatus, and non-transitory computer-readable medium of any of Examples 1 to 19, wherein the motor is at least one selected from the group of a wound field synchronous motor, a hybrid synchronous motor, a permanent magnet synchronous motor, an induction motor, a universal motor, or a reluctance motor.

[0303] Example 21: A method, apparatus, and non-transitory computer-readable medium includes obtaining, by an electronic controller, a dataset of current-flux linkage pairs for an operating point of an electric motor, applying, by the electronic controller, a domain decomposition algorithm to the dataset to generate current simplexes and flux linkage simplexes, and storing, by the electronic controller, the current simplexes and flux linkage simplexes in a memory.

[0304] Example 22: The method, apparatus, and non-transitory computer-readable medium of Example 21, further comprising generating a current-flux linkage map using a current unit and a flux linkage unit, and mapping current values ​​of the current unit to respective flux linkage values ​​of the flux linkage units to provide a one-to-one relationship between the current values ​​and the flux linkage values.

[0305] Example 23: The method, apparatus, and non-transitory computer-readable medium of Example 22, further comprising transmitting the current-flux linkage map to a motor controller including an electronic processor and electronic memory.

[0306] Example 24: A method, apparatus, and non-transitory computer-readable medium according to any of Examples 22 to 23, wherein the current-flux linkage map is at least one selected from the group of a piecewise affine map including a plurality of linear functions, each corresponding to a respective current unit of the current units, and a quadratic map including at least one quadratic function.

[0307] Example 25: The method, apparatus, and non-transitory computer-readable medium of any of Examples 22-24, further comprising generating a flux linkage-current map using a current unit and a flux linkage unit, and mapping the flux linkage values ​​of the flux linkage unit to respective current values ​​of the current unit to provide a one-to-one relationship between the flux linkage values ​​and the current values, wherein the flux linkage-current map is the inverse of the current-flux linkage map.

[0308] Example 27: The method, apparatus, and non-transitory computer-readable medium of any of Examples 22-26, further comprising: determining an error value for each of a plurality of points of the current-flux linkage map; selecting a point from the plurality of points based on the determined error value; adding the point to a dataset of current-flux linkage pairs for the operating point of the electric motor to generate an updated dataset; applying a domain decomposition algorithm to the updated dataset to generate an updated set of current simplexes and an updated set of flux linkage simplexes; and generating an updated current-flux linkage map using the updated set of current simplexes and the updated set of flux linkage simplexes, mapping the current values ​​of the set of updated current simplexes to respective flux linkage values ​​of the set of updated flux linkage simplexes to provide a one-to-one relationship between the current values ​​and the flux linkage values.

[0309] Example 28: The method, apparatus, and non-transitory computer-readable medium of any of Examples 22-27, further comprising: determining an error value for each of a plurality of points of a current-flux linkage map; selecting a point from the plurality of points based on the determined error value; removing the point to a dataset of current-flux linkage pairs for an operating point of the electric motor to generate an updated dataset; applying a domain decomposition algorithm to the updated dataset to generate an updated set of current simplexes and an updated set of flux linkage simplexes; generating an updated current-flux linkage map using the updated set of current simplexes and the updated set of flux linkage simplexes, mapping current values ​​of the set of updated current simplexes to respective flux linkage values ​​of the set of updated flux linkage simplexes to provide a one-to-one relationship between the current values ​​and the flux linkage values.

[0310] Example 29: The method, apparatus, and non-transitory computer-readable medium of any of Examples 22 to 28, wherein the electric motor is at least one selected from the group of a wound field synchronous motor, a hybrid synchronous motor, a permanent magnet synchronous motor, an induction motor, a universal motor, or a reluctance motor.

[0311] Example 30: A method, apparatus, and non-transitory computer-readable medium for motor control comprising: determining, by an electronic controller, current values ​​for the motor in a rotating reference coordinate system, each associated with one dimension of a set of dimensions of the rotating reference coordinate system; determining, by the electronic controller, target motor control parameter values ​​for each dimension of the set of dimensions of the rotating reference coordinate system using a first piecewise affine map based on desired control parameters; and controlling, by the electronic controller, a power switching network based on the current values ​​and the target motor control parameter values.

[0312] Example 31: The method, apparatus, and non-transitory computer-readable medium of Example 30, wherein determining current values ​​for the motor in the rotating reference frame includes determining electrical operating characteristics of the motor in a stationary reference frame, determining a rotational position of the motor, and converting the electrical operating characteristics and the rotational position to current values ​​for the motor in the rotating reference frame.

[0313] Example 32: The method, apparatus, and non-transitory computer-readable medium of any of Examples 30-32, wherein determining a flux linkage value for each dimension of a set of dimensions of a rotating reference system based on the current values ​​using a second piecewise affine map, the second piecewise affine map including a plurality of affine functions, each affine function being associated with a respective domain of the plurality of domains; determining a flux linkage value for each dimension of the set of dimensions of the rotating reference system based on the current values ​​using the second piecewise affine map includes identifying a first domain selected from the plurality of domains that corresponds to the current values, the first domain being associated with a first affine function of the plurality of affine functions; and applying the current values ​​to the first affine function to determine the flux linkage value for each dimension of the set of dimensions of the rotating reference system; and controlling a power switching network based on the current values ​​includes controlling the power switching network based on the flux linkage values ​​determined from the current values ​​using the second piecewise affine map.

[0314] Example 33: A method, apparatus, and non-transitory computer-readable medium as described in Example 32, wherein each of the multiple domains corresponds to a simplex provided by executing a domain decomposition algorithm on a data set of current pairs and flux linkage pairs for multiple operating points of the motor.

[0315] Example 34: The method, apparatus, and non-transitory computer-readable medium of any of Examples 30 to 33, wherein the first piecewise affine map is a control parameter-target motor control parameter piecewise affine map.

[0316] Example 35: The method, apparatus, and non-transitory computer-readable medium of any of Examples 34, wherein the target motor control parameter value is a current value or a flux linkage value.

[0317] Example 36: The method, apparatus, and non-transitory computer-readable medium of Example 35, wherein the first piecewise affine map includes a plurality of affine functions, each associated with a respective domain of the plurality of domains, and determining a target motor control parameter for each dimension of a set of dimensions of a rotating reference coordinate system using the first piecewise affine map based on a desired control parameter includes identifying a first domain selected from the plurality of domains that corresponds to the desired control parameter, the first domain being associated with a first affine function of the plurality of affine functions, and applying the desired control parameter to the first affine function to determine a target motor control parameter value for each dimension of the set of dimensions of the rotating reference coordinate system.

[0318] Example 37: The method, apparatus, and non-transitory computer-readable medium of example 35, wherein the desired control parameter is a target torque value for the motor.

[0319] Example 38: The method, apparatus, and non-transitory computer-readable medium of any of Examples 30 to 37, wherein the first piecewise affine map is generated based on a subset of Pareto-optimal frontier points that define a convex Pareto frontier, the Pareto-optimal frontier points being a subset of data points that include current components, magnetic flux components, torque components, and power loss components.

[0320] Example 39: The method, apparatus, and non-transitory computer-readable medium of any of Examples 30 to 38, wherein the first piecewise affine map is a torque-current linkage piecewise affine map, and determining a target motor control parameter value for each dimension of a set of dimensions of a rotating reference coordinate system using the first piecewise affine map based on the desired control parameters includes: converting the desired torque to a target current value for each dimension of the set of dimensions of the rotating reference coordinate system using the torque-current linkage piecewise affine map; and using the current-flux linkage piecewise affine map to convert the target current value to a target motor control parameter value, where the target motor control parameter value is a flux linkage value.

[0321] Example 40: The method, apparatus, and non-transitory computer-readable medium of any of Examples 30 to 39, wherein controlling a power switching network based on the current values ​​and the target motor control parameter values ​​includes generating a voltage command for each dimension of a set of dimensions of a rotating reference frame based on a difference between the target motor control parameter value and the motor parameter indicated by the current value for the dimension, transforming the voltage commands in the rotating reference frame to a stationary reference frame, generating pulse width modulated control signals for each dimension of the stationary reference frame to control the power switching network to drive a stator of the motor, and generating a rotor control signal to control driving of a rotor field winding.

[0322] Example 41: The method, apparatus, and non-transitory computer-readable medium of any of Examples 30 to 40, wherein controlling a power switching network based on a current value and a target motor control parameter value includes generating a control signal in a stationary reference frame to drive a motor based on a difference between the target motor control parameter value and a motor parameter indicated by the current value for the dimension.

[0323] Example 42: The method, apparatus, and non-transitory computer-readable medium of any of Examples 30 to 41, wherein controlling the power switching network based on the current value and the target motor control parameter value includes generating a control signal for driving the motor based on the target motor control parameter value and the current value based on a model predictive control algorithm.

[0324] Example 43: The method, apparatus, and non-transitory computer-readable medium of Example 42, wherein generating a control signal based on a model predictive control algorithm includes solving a linear state space equation over a receding time window to select a next control parameter.

[0325] Example 44: A method, apparatus, and non-transitory computer-readable medium as described in Example 42, wherein generating a control signal based on a model predictive control algorithm includes accessing a second piecewise affine map defined by offline solving of the model predictive control algorithm using the sample input.

[0326] Example 45: The method, apparatus, and non-transitory computer-readable medium of any of Examples 30 to 44, wherein the motor is a wound field synchronous motor with at least three stator phases and at least one rotor field winding.

[0327] Example 46: The method, apparatus, and non-transitory computer-readable medium of any of Examples 30 to 45, wherein the power switching network includes an inverter switch bridge including a plurality of power switching elements, the inverter switch bridge receiving DC power and outputting AC power to a winding of a stator based on a pulse width modulated control signal from an electronic controller.

[0328] Example 47: The method, apparatus, and non-transitory computer-readable medium of any of Examples 30 to 46, further comprising: receiving, by a DC / DC converter, input DC power; and supplying, by the DC / DC converter, output DC power to at least one rotor field winding in accordance with a pulse width modulated rotor control signal from an electronic controller.

[0329] Example 48: The method, apparatus, and non-transitory computer-readable medium of any of Examples 30 to 47, wherein the motor is at least one selected from the group of a wound field synchronous motor, a hybrid synchronous motor, a permanent magnet synchronous motor, an induction motor, a universal motor, or a reluctance motor.

[0330] Example 49: A method, apparatus, and non-transitory computer-readable medium for motor control comprising: determining, by an electronic controller, current values ​​for a motor in a rotating reference coordinate system, each associated with one dimension of a set of dimensions of the rotating reference coordinate system; determining, by the electronic controller, target motor control parameter values ​​for each dimension of the set of dimensions of the rotating reference coordinate system based on desired control parameters; and controlling, by the electronic controller, a power switching network based on the current values ​​and the target motor control parameter values ​​by using a piecewise affine map defined by offline solution of a model predictive control algorithm using sample inputs.

[0331] Example 50: The method, apparatus, and non-transitory computer-readable medium of Example 43, further comprising determining a flux linkage value for each dimension of a set of dimensions of a rotating reference frame using a flux linkage piecewise affine map based on the current values, and controlling, by the electronic controller, the power switching network is further based on the flux linkage value.

[0332] Example 51: The method, apparatus, and non-transitory computer-readable medium of any of Examples 49 to 50, wherein the piecewise affine map includes a plurality of affine functions, each associated with a respective domain of the plurality of domains, and controlling, by the electronic controller, a power switching network based on current values ​​and target motor control parameter values ​​using the piecewise affine map includes: identifying a first domain corresponding to a magnetic flux value selected from the plurality of domains based on the current values, the first domain being associated with a first affine function of the plurality of affine functions; and applying the magnetic flux values ​​to the first affine function to determine a voltage command for each dimension of a set of dimensions of a rotating reference coordinate system.

[0333] Example 52: The method, apparatus, and non-transitory computer-readable medium of any of Examples 49 to 51, wherein the flux linkage piecewise affine map includes a plurality of affine functions each associated with a respective domain of the plurality of domains, and determining, by the electronic controller and based on the current values, a flux linkage value for each dimension of the set of dimensions of the rotating reference frame using the flux linkage piecewise affine map includes identifying a first domain corresponding to the current values ​​and selected from the plurality of domains, the first domain being associated with a first affine function of the plurality of affine functions, and applying the current values ​​to the first affine function to determine the flux linkage value for each dimension of the set of dimensions of the rotating reference frame.

[0334] Example 53: A method, apparatus, and non-transitory computer-readable medium as described in Example 52, wherein each of the multiple domains corresponds to a simplex provided by executing a domain decomposition algorithm on a data set of current pairs and flux linkage pairs for multiple operating points of the motor.

[0335] Example 54: The method, apparatus, and non-transitory computer-readable medium of any of Examples 49 to 53, wherein determining a target motor control parameter value for each dimension of a set of dimensions of a rotating reference coordinate system based on a desired control parameter includes using a control parameter-current piecewise affine map or a control parameter-flux linkage piecewise affine map.

[0336] Example 55: The method, apparatus, and non-transitory computer-readable medium of Example 54, wherein the control parameter-current piecewise affine map or the control parameter-flux linkage piecewise affine map defines a minimum power loss per torque (MPLPT) function.

[0337] Example 56: The method, apparatus, and non-transitory computer-readable medium of any of Examples 49 to 55, wherein the constrained finite-time optimal control is a model predictive control algorithm that provides a least-cost path from a start state to an end state for each of a plurality of sampling periods.

[0338] Example 57: The method, apparatus, and non-transitory computer-readable medium of any of Examples 49 to 56, wherein the motor is at least one selected from the group of a wound field synchronous motor, a hybrid synchronous motor, a permanent magnet synchronous motor, an induction motor, a universal motor, or a reluctance motor.

[0339] Example 58: A method, apparatus, and non-transitory computer-readable medium according to any of Examples 1 to 10 and Examples 13 to 20, wherein the electronic controller is configured to determine an inductance value for each dimension of a set of dimensions of a rotating reference coordinate system using a piecewise affine map based on the current value, the target value being a current value, and to control the power switching network based on the inductance value and the target current value, the electronic controller is configured to generate a control signal in a stationary reference coordinate system to drive the motor based on a difference between the current value and the target current value and an inverse of the inductance value for each dimension of the set of dimensions.

Claims

1. 1. A motor system comprising: a power switching network configured to be coupled to the power source and the motor; an electronic controller, determining current values ​​for the motor in a rotating reference frame, each current value associated with one dimension of a set of dimensions of the rotating reference frame; determining a flux linkage or inductance value for each dimension of the set of dimensions of the rotating reference frame using the piecewise affine map based on the current values; determining a target value for each dimension of the set of dimensions of the rotating reference frame; an electronic controller configured to control the power switching network based on the flux linkage or inductance value and the target value; A motor system comprising:

2. To determine the current values ​​to the motor in the rotating reference frame, the electronic controller: determining the electrical operating characteristics of the motor in a stationary reference frame; Determine the rotational position of the motor, 10. The motor system of claim 1 configured to convert electrical operating characteristics and rotational position into current values ​​for the motor in a rotating reference frame.

3. the piecewise affine map includes a plurality of affine functions, each associated with a respective domain of the plurality of domains; an electronic controller for determining a flux linkage or inductance value for each dimension of a set of dimensions of a rotating reference frame using a piecewise affine map based on the current values; identifying a first domain selected from the plurality of domains, the first domain corresponding to the current value, the first domain being associated with a first affine function of the plurality of affine functions; The motor system of claim 1 configured to apply current values ​​to a first affine function to determine flux linkage or inductance values ​​for each dimension of a set of dimensions of a rotating reference frame.

4. each of the plurality of domains corresponds to a simplex provided by running a domain decomposition algorithm on a data set of current pairs and flux linkage pairs for a plurality of operating points of the motor; or 4. The motor system of claim 3, wherein each of the plurality of domains corresponds to a simplex provided by running a domain decomposition algorithm on a data set of current and inductance pairs for a plurality of operating points of the motor.

5. determining a target value for each dimension of the set of dimensions of the rotating reference frame; determining desired control parameters for the motor; Transforming the desired control parameters into target current values ​​for the motor in a rotating reference frame; The motor system of claim 1 , configured to determine a target value for each dimension of a set of dimensions of a rotating reference coordinate system using a piecewise affine map based on the target current value.

6. An electronic controller for converting the desired control parameters into target current values ​​for the motor in a rotating reference frame, 6. The motor system of claim 5, further configured to determine, based on the desired control parameters, a target current value for each dimension of a set of dimensions of a rotating reference coordinate system using a control parameter-current piecewise affine map.

7. the control parameter-current piecewise affine map includes a plurality of affine functions, each associated with a respective domain of the plurality of domains; an electronic controller for determining a target current value for each dimension of a set of dimensions of a rotating reference coordinate system using a control parameter-current piecewise affine map based on a desired control parameter; identifying a first domain corresponding to a desired control parameter and selected from the plurality of domains, the first domain being associated with a first affine function of the plurality of affine functions; The motor system of claim 6 , configured to apply the desired control parameters to a first affine function to determine a target current value for each dimension of a set of dimensions of a rotating reference coordinate system.

8. 7. The motor system of claim 6, wherein the desired control parameter is a target torque value for the motor.

9. determining a target value for each dimension of the set of dimensions of the rotating reference frame; determining desired control parameters for the motor; using a control parameter-current piecewise affine map to transform the desired control parameters into target current values ​​for the motor in a rotating reference frame, the target current values ​​including a target current value for each dimension of a set of dimensions of the rotating reference frame; The motor system of claim 1 , configured to determine a target value for each dimension of a set of dimensions of a rotating reference coordinate system based on the target current value.

10. determining a target value for each dimension of the set of dimensions of the rotating reference frame; determining desired control parameters for the motor; 10. The motor system of claim 1, configured to transform desired control parameters into target values ​​for the motor in a rotating reference frame using a control parameter-flux linkage piecewise affine map, the target values ​​including a target flux linkage value for each dimension of a set of dimensions of the rotating reference frame.

11. an electronic controller configured to determine, based on the current values, a flux linkage value for each dimension of a set of dimensions of a rotating reference frame using a piecewise affine map; The target value is a target flux linkage value, an electronic controller for controlling the power switching network based on the flux linkage value and the target flux linkage value; generating a voltage command for each dimension of the set of dimensions of the rotating reference frame based on a difference between the target flux linkage value and the flux linkage value for the dimension; Transform the voltage commands in the rotating reference frame to the stationary reference frame; generating pulse width modulated control signals for each dimension of a stationary reference frame to control a power switching network to drive a stator of the motor; The motor system of claim 1 configured to generate a rotor control signal for controlling the driving of a rotor field winding.

12. an electronic controller configured to determine, based on the current values, a flux linkage value for each dimension of a set of dimensions of a rotating reference frame using a piecewise affine map; The target value is a target flux linkage value, an electronic controller for controlling the power switching network based on the flux linkage value and the target flux linkage value; 10. The motor system of claim 1, configured to generate control signals in a stationary reference frame to drive the motor based on a difference between a target flux linkage value and the flux linkage value for each dimension of the set of dimensions.

13. an electronic controller configured to determine, based on the current values, an inductance value for each dimension of a set of dimensions of a rotating reference frame using the piecewise affine map; The target value is a current value, an electronic controller for controlling the power switching network based on the inductance value and the target current value; 10. The motor system of claim 1, configured to generate control signals in a stationary reference frame to drive the motor based on the difference between the current value and a target current value and the reciprocal of the inductance value for each dimension of the set of dimensions.

14. an electronic controller for controlling the power switching network based on the flux linkage or inductance value and the target value; The motor system of claim 1 , configured to generate a control signal for driving the motor based on a target value and a flux linkage or inductance value based on a model predictive control algorithm.

15. 15. The motor system of claim 14, wherein the electronic controller is configured to solve linear state-space equations over a receding time window to select next control parameters to generate the control signals based on a model predictive control algorithm.

16. 15. The motor system of claim 14, wherein the electronic controller is configured to access a second piecewise affine map defined by offline solving of the model predictive control algorithm using the sample inputs to generate the control signals based on the model predictive control algorithm.

17. 10. The motor system of claim 1, wherein the motor is a wound field synchronous motor comprising at least three stator phases and at least one rotor field winding.

18. 10. The motor system of claim 1, wherein the power switching network includes an inverter switch bridge including a plurality of power switching elements, the inverter switch bridge configured to receive DC power and output AC power to the stator windings based on pulse width modulated control signals from the electronic controller.

19. 10. The motor system of claim 1, further comprising a DC / DC converter configured to receive input DC power and provide output DC power to at least one rotor field winding in accordance with a pulse width modulated rotor control signal from the electronic controller.

20. 10. The motor system of claim 1, wherein the piecewise affine map maps a set of input values, the set of input values ​​including current values ​​and at least one additional motor characteristic, to output flux linkage or inductance values ​​for each dimension of the set of dimensions.

21. The motor system of claim 1 , wherein the motor is at least one selected from the group consisting of a wound field synchronous motor, a hybrid synchronous motor, a permanent magnet synchronous motor, an induction motor, a universal motor, or a reluctance motor.

22. 1. A method of controlling a motor, comprising: determining, by an electronic controller, current values ​​for the motor in a rotating reference frame, each current value being associated with one dimension of a set of dimensions of the rotating reference frame; determining a flux linkage or inductance value for each of a set of dimensions of a rotating reference frame using a piecewise affine map based on the current values; determining, by an electronic controller, target values ​​for each of a set of dimensions of the rotating reference frame; and controlling, by an electronic controller, a power switching network coupled between the power source and the motor based on the flux linkage or inductance value and the target value.

23. Determining current values ​​for the motor in the rotating reference frame determining an electrical operating characteristic of the motor in a stationary reference frame; determining a rotational position of the motor; converting the electrical operating characteristics and rotational position into current values ​​for the motor in a rotating reference frame; 23. The method of claim 22, comprising:

24. the piecewise affine map includes a plurality of affine functions, each associated with a respective domain of the plurality of domains; determining a flux linkage or inductance value for each dimension of a set of dimensions of a rotating reference frame using a piecewise affine map based on the current values; identifying a first domain selected from the plurality of domains corresponding to a current value, the first domain being associated with a first affine function of the plurality of affine functions; 23. The method of claim 22, comprising: applying the current values ​​to a first affine function to determine a flux linkage or inductance value for each dimension of a set of dimensions of a rotating reference frame.

25. each of the plurality of domains corresponds to a simplex provided by running a domain decomposition algorithm on a data set of current pairs and flux linkage pairs for a plurality of operating points of the motor; or 25. The method of claim 24, wherein each of the plurality of domains corresponds to a simplex provided by running a domain decomposition algorithm on a data set of current and inductance pairs for a plurality of operating points of the motor.

26. Determining a target value for each dimension of the set of dimensions of the rotating reference frame determining desired control parameters for the motor; Transforming the desired control parameters into target current values ​​for the motor in a rotating reference frame; and determining a target value for each dimension of a set of dimensions of a rotating reference coordinate system using a piecewise affine map based on the target current value.

27. Transforming the desired control parameters into target current values ​​for the motor in a rotating reference frame; 25. The method of claim 24, comprising determining a target current value for each dimension of a set of dimensions of a rotating reference coordinate system using a control parameter-current piecewise affine map based on the desired control parameter.

28. the control parameter-current piecewise affine map includes a plurality of affine functions, each associated with a respective domain of the plurality of domains; determining a target current value for each dimension of a set of dimensions of a rotating reference coordinate system using a control parameter-current piecewise affine map based on the desired control parameter; identifying a first domain selected from the plurality of domains corresponding to a desired control parameter, the first domain being associated with a first affine function of the plurality of affine functions; 28. The method of claim 27, comprising: applying the desired control parameters to a first affine function to determine a target current value for each dimension of a set of dimensions of a rotating reference coordinate system.

29. 28. The method of claim 27, wherein the desired control parameter is a target torque value for the motor.

30. Determining a target flux linkage value for each dimension of a set of dimensions of a rotating reference frame determining desired control parameters for the motor; transforming the desired control parameters into target current values ​​for the motor in a rotating reference frame using a control parameter-to-current piecewise affine map, the target current values ​​including a target current value for each dimension of a set of dimensions of the rotating reference frame; and determining a target value for each dimension of a set of dimensions of a rotating reference coordinate system based on the target current value.

31. Determining a target value for each dimension of the set of dimensions of the rotating reference frame determining desired control parameters for the motor; 23. The method of claim 22, comprising transforming desired control parameters to target values ​​for the motor in a rotating reference frame using a control parameter-flux linkage piecewise affine map, the target values ​​comprising a target flux linkage value for each dimension of a set of dimensions of the rotating reference frame.

32. determining a flux linkage or inductance value for each dimension of the set of dimensions based on the current values ​​includes determining a flux linkage value for each dimension of the set of dimensions based on the current values; The target value is a target flux linkage value, controlling a power switching network based on the flux linkage value and the target flux linkage value; generating a voltage command for each dimension of the set of dimensions of the rotating reference frame based on a difference between the target flux linkage value and the flux linkage value for the dimension; Transforming the voltage commands in the rotating reference frame to a stationary reference frame; generating pulse width modulated control signals for each dimension of a stationary reference frame to control a power switching network to drive a stator of the motor; generating a rotor control signal for controlling driving of the rotor field winding; 23. The method of claim 22, comprising:

33. determining a flux linkage or inductance value for each dimension of the set of dimensions based on the current values ​​includes determining a flux linkage value for each dimension of the set of dimensions based on the current values; The target value is a target flux linkage value, 23. The method of claim 22, wherein controlling the power switching network based on the flux linkage value and the target flux linkage value comprises generating a control signal in a stationary reference frame to drive the motor based on a difference between the target flux linkage value and the flux linkage value for the dimension.

34. determining a flux linkage or inductance value for each dimension of the set of dimensions based on the current values ​​includes determining an inductance value for each dimension of the set of dimensions based on the current values; The target value is a current value, controlling a power switching network based on the inductance value and the target current value; 23. The method of claim 22, comprising generating a control signal in a stationary reference frame to drive the motor based on the difference between the current value and the target current value and the reciprocal of the inductance value for each dimension of the set of dimensions.

35. controlling a power switching network based on the flux linkage or inductance value and the target value; 23. The method of claim 22, including generating a control signal for driving the motor based on the target value and the flux linkage or inductance value based on a model predictive control algorithm.

36. 23. The method of claim 22, wherein generating the control signal based on a model predictive control algorithm comprises solving linear state-space equations over a receding time window to select the next control parameter.

37. 23. The method of claim 22, wherein generating the control signal based on a model predictive control algorithm includes accessing a second piecewise affine map defined by offline solving of the model predictive control algorithm using the sample inputs.

38. 23. The method of claim 22, wherein the motor is a wound field synchronous motor comprising at least three stator phases and at least one rotor field winding.

39. 23. The method of claim 22, wherein the power switching network comprises an inverter switch bridge including a plurality of power switching elements, the inverter switch bridge receiving DC power and outputting AC power to the stator windings based on pulse width modulated control signals from the electronic controller.

40. receiving input DC power by a DC / DC converter; 23. The method of claim 22, further comprising: providing output DC power to at least one rotor field winding by a DC / DC converter in accordance with a pulse width modulated rotor control signal from the electronic controller.

41. 23. The method of claim 22, wherein the piecewise affine map maps a set of input values, the set of input values ​​including current values ​​and at least one additional motor characteristic, to output flux linkage or inductance values ​​for each dimension of the set of dimensions.

42. 23. The method of claim 22, wherein the motor is at least one selected from the group of a wound field synchronous motor, a hybrid synchronous motor, a permanent magnet synchronous motor, an induction motor, a universal motor, or a reluctance motor.

43. Computer-executable instructions for causing a processor to: determining current values ​​for the motor in a rotating reference frame, each current value being associated with one dimension of a set of dimensions of the rotating reference frame; determining a flux linkage or inductance value for each dimension of a set of dimensions of a rotating reference frame using the piecewise affine map based on the current values; determining a target value for each dimension of a set of dimensions of a rotating reference frame; A non-transitory computer-readable medium storing computer-executable instructions for controlling a power switching network coupled to a motor and a power source based on a flux linkage or inductance value and a target value.

44. To determine current values ​​for the motor in the rotating reference frame, the instructions further include: determining the electrical operating characteristics of the motor in a stationary reference frame; Determine the rotational position of the motor, 44. The non-transitory computer-readable medium of claim 43 for converting electrical operating characteristics and rotational positions into current values ​​for a motor in a rotating reference frame.

45. the piecewise affine map includes a plurality of affine functions, each associated with a respective domain of the plurality of domains; The instructions further include causing the processor to determine, based on the current values, a flux linkage or inductance value for each dimension of a set of dimensions of a rotating reference frame using the piecewise affine map. identifying a first domain selected from the plurality of domains, the first domain corresponding to the current value, the first domain being associated with a first affine function of the plurality of affine functions; 44. The non-transitory computer-readable medium of claim 43, for applying current values ​​to a first affine function to determine a magnetic flux linkage or inductance value for each dimension of a set of dimensions of a rotating reference frame.

46. The instructions further include causing the processor to: determining desired control parameters of the motor; Transforming the desired control parameters into target current values ​​for the motor in a rotating reference frame; 44. The non-transitory computer-readable medium of claim 43, for determining a target value for each dimension of a set of dimensions of a rotating reference coordinate system using a piecewise affine map based on a target current value.

47. To determine a target flux linkage value for each dimension of the set of dimensions of the rotating reference frame, the instructions further include: determining desired control parameters of the motor; using a control parameter-current piecewise affine map to transform the desired control parameters into target current values ​​for the motor in a rotating reference frame, the target current values ​​including a target current value for each dimension of a set of dimensions of the rotating reference frame; 44. The non-transitory computer-readable medium of claim 43 for determining a target value for each dimension of a set of dimensions of a rotating reference coordinate system based on the target current value.