Neural network circuit module of motor with a plurality of first and second neurons

文档序号:290954 发布日期:2021-11-23 浏览:12次 中文

阅读说明:本技术 具有多个第一和第二神经元的电机的神经网络电路模块 (Neural network circuit module of motor with a plurality of first and second neurons ) 是由 F·丰克 T·巴克施 R·梅内斯 S·N·A·里兹维 于 2021-05-06 设计创作,主要内容包括:一种用于驱动电机的装置,包括神经网络电路模块的多个第一神经元、电机电路模块、以及神经网络电路模块的多个第二神经元。多个第一神经元被配置为基于目标速度来生成第一周期值。电机电路模块被配置为基于第一周期值控制一组开关元件以驱动电机。多个第二神经元被配置为训练多个第二神经元,以基于当电机电路模块已经基于第一周期值控制所述一组开关元件驱动电机时出现的电机的所得速度值生成第二周期值,以最小化第二周期值与第一周期值之间的差。(An apparatus for driving a motor includes a plurality of first neurons of a neural network circuit module, a motor circuit module, and a plurality of second neurons of the neural network circuit module. The plurality of first neurons are configured to generate a first period value based on the target velocity. The motor circuit module is configured to control a set of switching elements to drive the motor based on the first cycle value. The plurality of second neurons are configured to train the plurality of second neurons to generate a second period value based on a resulting speed value of the motor occurring when the motor circuit module has controlled the set of switching elements to drive the motor based on the first period value to minimize a difference between the second period value and the first period value.)

1. An apparatus for driving a motor, the apparatus comprising:

a plurality of first neurons of a neural network circuit module configured to generate a first periodic value based on a target velocity;

a motor circuit module configured to control a set of switching elements to drive the motor based on the first cycle value; and

a plurality of second neurons of the neural network circuit module configured to train the plurality of second neurons to generate a second period value based on a resulting speed value of the motor occurring when the motor circuit module has controlled the set of switching elements to drive the motor based on the first period value to minimize a difference between the second period value and the first period value.

2. The apparatus of claim 1, wherein in response to determining that the difference between the second period value and the first period value is less than an error threshold, the neural network circuit module is configured to copy the plurality of second neurons into the plurality of first neurons such that the plurality of first neurons generate the first period value to correspond to the second period value generated by the plurality of second neurons when the resulting speed value corresponds to the target speed.

3. The apparatus of claim 1, wherein the first and second electrodes are disposed on opposite sides of the housing,

wherein to generate the first period value, the plurality of first neurons are configured to generate the first period value further based on one or more of: a first speed value of the motor at a first time, the first time occurring before the motor circuit module has controlled the set of switching elements based on the first cycle value; a first current value of the motor at the first time; or a first previous cycle value used by the motor circuit module to control the set of switching elements at a second time occurring before the first time; and

wherein to generate the second period value, the plurality of second neurons are configured to generate the second period value further based on one or more of: the first speed value of the motor at the first time, the first current value of the motor at the first time, or the first previous cycle value used by the motor circuit module to control the set of switching elements at the second time.

4. The apparatus of claim 3, wherein the first and second electrodes are disposed in a common plane,

wherein to generate the first period value, the plurality of first neurons are configured to generate the first period value further based on one or more of: a second speed value of the motor at the second time, a second current value of the motor at the second time, or a second previous cycle value used by the motor circuit module to control the set of switching elements at a third time occurring before the second time; and

wherein to generate the second period value, the plurality of second neurons are configured to generate the second period value further based on one or more of: the second speed value of the motor at the second time, the second current value of the motor at the second time, or the second previous period value used by the motor circuit module to control the set of switching elements at the third time.

5. The apparatus of claim 1, wherein to control the set of switching elements to drive the motor based on the first cycle value, the motor circuit module is configured to:

generating a digital modulation signal based on the first period value; and

driving a set of switching elements based on the digitally modulated signal to operate in at least a first switching state and a second switching state, wherein during the first switching state the set of switching elements electrically couples a first terminal and a first power supply terminal of the electric machine and electrically couples a second terminal and a second power supply terminal of the electric machine, and wherein during the second switching state the set of switching elements electrically couples the second terminal and the first power supply terminal of the electric machine and electrically couples the first terminal and the second power supply terminal of the electric machine.

6. The apparatus of claim 1, wherein the motor circuit module is configured to:

measuring a back-electromagnetic force voltage at the motor when the motor circuit module has controlled the set of switching elements to drive the motor based on the first period value; and

determining the resulting speed value of the motor based on the back electromagnetic force voltage.

7. The apparatus of claim 1, wherein the motor circuit module is configured to:

receiving a reference speed; and

determining the target speed based on the reference speed, a speed value associated with the motor at a particular time, and one or more previous speed values associated with the motor at one or more previous times occurring before the particular time.

8. The apparatus of claim 1, wherein the plurality of first neurons have been trained to generate the first period value to minimize a difference between the first period value and a training period value of each of a plurality of training vectors, and wherein the apparatus has generated the plurality of training vectors.

9. The apparatus of claim 8, wherein a variable mechanical load has been applied to the motor when the neural network trains the plurality of first neurons.

10. The apparatus of claim 1, wherein the motor comprises a DC brushless motor or a DC excited motor.

11. A method for driving a motor, the method comprising:

generating, by a first plurality of neurons of a neural network circuit module, a first periodic value based on a target velocity;

controlling, by a motor circuit module and based on the first cycle value, a set of switching elements to drive the motor; and

training, by the neural network circuit module, a plurality of second neurons of the neural network circuit module to generate a second period value based on a resulting speed value of the motor occurring when the motor circuit module has controlled the set of switching elements to drive the motor based on the first period value to minimize a difference between the second period value and the first period value.

12. The method of claim 11, comprising:

in response to determining that the difference between the second period value and the first period value is less than an error threshold, copying, by the neural network circuit module, the plurality of second neurons into the plurality of first neurons such that the plurality of first neurons generate the first period value to correspond to the second period value generated by the plurality of second neurons when the resulting speed value corresponds to the target speed; and

training, by the neural network circuit module, the plurality of first neurons, while operating in the second state, to generate the first period value to minimize a difference between the second period value and the first period value based on a resulting second speed value of the motor that occurs when the motor circuit module has controlled the set of switching elements to drive the motor based on the second period value.

13. The method of claim 11, comprising:

wherein generating the first period value comprises generating the first period value further based on one or more of: a first speed value of the motor at a first time, the first time occurring before the motor circuit module has controlled the set of switching elements based on the first cycle value; a first current value of the motor at the first time; or a first previous cycle value used by the motor circuit module to control the set of switching elements at a second time occurring before the first time; and

wherein generating the second periodic value comprises generating the second periodic value further based on one or more of: the first speed value of the motor at the first time, the first current value of the motor at the first time, or the first previous cycle value used by the motor circuit module to control the set of switching elements at a second time.

14. The method of claim 13, wherein the first and second light sources are selected from the group consisting of,

wherein generating the first period value comprises generating the first period value further based on one or more of: a second speed value of the motor at the second time, a second current value of the motor at the second time, or a second previous cycle value used by the motor circuit module to control the set of switching elements at a third time occurring before the second time; and

wherein generating the second periodic value comprises generating the second periodic value further based on one or more of: the second speed value of the motor at the second time, the second current value of the motor at the second time, or the second previous period value used by the motor circuit module to control the set of switching elements at the third time.

15. The method of claim 11, wherein controlling the set of switching elements to drive the motor based on the first periodic value comprises:

generating a digital modulation signal based on the first period value; and

driving a set of switching elements based on the digitally modulated signal to operate in at least a first switching state and a second switching state, wherein during the first switching state the set of switching elements electrically couples a first terminal of the electric machine and a first power terminal of a power supply and electrically couples a second terminal of the electric machine and a second power terminal of the power supply, and wherein during the second switching state the set of switching elements electrically couples the second terminal of the electric machine and the first power terminal and electrically couples the first terminal and the second power terminal of the electric machine.

16. The method of claim 11, comprising:

measuring, by the motor circuit module, a back-electromagnetic force voltage at the motor when the motor circuit module has controlled the set of switching elements to drive the motor based on the first period value; and

determining, by the motor circuit module, the resulting speed value of the motor based on the back electromagnetic force voltage.

17. The method of claim 11, comprising:

receiving, by the motor circuit module, a reference speed; and

determining, by the motor circuit module, the target speed based on the reference speed, a speed value associated with the motor at a particular time, and one or more previous speed values associated with the motor at one or more previous times occurring before the particular time.

18. The method of claim 11, wherein the plurality of first neurons have been trained to generate the first period value to minimize a difference between the first period value and a training period value of each of a plurality of training vectors, and wherein the means for driving the motor has generated the plurality of training vectors.

19. An apparatus for driving a motor, the apparatus comprising:

a motor circuit module configured to control a set of switching elements to drive the motor based on a first cycle value;

a plurality of first neurons of a neural network circuit module configured to:

generating a plurality of training vectors;

training the plurality of first neurons to generate the first period value to minimize a difference between the first period value and the training period value for each of the plurality of training vectors when a predetermined variable mechanical load is applied to the electric machine; and

generating the first period value based on a target speed; and

a plurality of second neurons of the neural network circuit module configured to train the plurality of second neurons when a predetermined variable mechanical load is not applied to the motor to generate a second period value based on a resulting speed value of the motor occurring when the motor circuit module has controlled the set of switching elements to drive the motor based on a first period value to minimize a difference between the second period value and the first period value.

20. The apparatus of claim 19, wherein the plurality of second neurons are configured to stop training when a predetermined variable mechanical load is applied to the motor.

Technical Field

The present disclosure relates to electric motors, and more particularly to techniques and circuit modules associated with electric motors.

Background

The operation of the motor may be performed by the motor circuit module. The motor circuit module may control rotation of a rotor of the motor. For example, the motor circuit module may drive current on the motor in order to control the motor and regulate the speed of the motor.

Disclosure of Invention

The present disclosure describes techniques, devices, and systems for improving operation of a motor circuit module for driving a motor. Rather than relying on complex computing devices and human input to generate training vectors for training neurons, the system may be configured to generate training vectors in real-time. In this manner, the neural network that controls the motor circuit module may be trained using training vectors generated by the system itself, which may reduce the complexity of the process of generating training sets for the neural network circuit module as compared to systems that rely on human inputs and/or complex computing devices to generate training vectors.

In some examples, the neural network circuit module may be configured to adapt based on an error (e.g., difference) between actual settings and ideal settings, rather than relying on static training of neurons, which may improve the accuracy of the neural network compared to motor controllers using programmed motor controllers and/or statically implemented neural networks.

In one example, the present disclosure is directed to an apparatus for driving a motor, the apparatus comprising a plurality of neurons of a neural network circuit module and a motor circuit module. The plurality of neurons of the neural network circuit module are configured to generate a period value based on the target speed, based on a speed value associated with the motor at a particular time, and based on a current value associated with the motor at the particular time. The plurality of neurons are configured to be trained to generate the period value to minimize an error between the period value and a training period value of each of a plurality of training vectors. The apparatus is configured to have generated a plurality of training vectors. The motor circuit module is configured to control a set of switching elements to drive the motor based on the period value.

In another example, the present disclosure is directed to a method for driving an electric machine, the method comprising generating, by a plurality of neurons of a neural network circuit module of an apparatus for driving an electric machine, a period value based on a target speed, based on a speed value associated with the electric machine at a particular time, and based on a current value associated with the electric machine at the particular time. The plurality of neurons are configured to be trained to generate the period value to minimize an error between the period value and a training period value of each of a plurality of training vectors. The apparatus is configured to have generated a plurality of training vectors. The method also includes controlling, by the motor circuit module and based on the period value, a set of switching elements to drive the motor.

In one example, the present disclosure is directed to an apparatus for driving a motor, the apparatus comprising a set of switching elements, a plurality of neurons of a neural network circuit module, and a motor circuit module. The plurality of neurons of the neural network circuit module are configured to generate a period value based on the target speed, based on a speed value associated with the motor at a particular time, and based on a current value associated with the motor at the particular time. The plurality of neurons are configured to be trained to generate the period value to minimize an error between the period value and a training period value of each of a plurality of training vectors. The apparatus is configured to have generated a plurality of training vectors. The motor circuit module is configured to control the set of switching elements to drive the motor based on the period value.

In another example, the present disclosure is directed to an apparatus comprising: means for generating a period value based on a target speed, based on a speed value associated with the motor at a particular time, and based on a current value associated with the motor at the particular time with a plurality of neurons. The plurality of neurons are configured to be trained to generate the period value to minimize an error between the period value and a training period value of each of a plurality of training vectors. The apparatus is configured to have generated a plurality of training vectors. The apparatus also includes means for controlling a set of switching elements to drive the motor based on the period value.

In one example, the present disclosure is directed to an apparatus for driving a motor, the apparatus comprising a plurality of first neurons of a neural network circuit module, a motor circuit module, and a plurality of second neurons of the neural network circuit module. A plurality of first neurons of the neural network circuit module are configured to generate a first period value based on the target speed. The motor circuit module is configured to control a set of switching elements to drive the motor based on the first cycle value. The plurality of second neurons of the neural network circuit module are configured to train the plurality of second neurons to generate a second period value based on a resulting speed value of the motor occurring when the motor circuit module has controlled the set of switching elements to drive the motor based on the first period value to minimize a difference between the second period value and the first period value.

In another example, the present disclosure is directed to a method for driving a motor, the method comprising generating, by a plurality of first neurons of a neural network circuit module, a first period value based on a target speed, and controlling, by a motor circuit module and based on the first period value, a set of switching elements to drive a motor. The method also includes training, by the neural network circuit module, a plurality of second neurons of the neural network circuit module to generate a second period value based on a resulting speed value of the motor occurring when the motor circuit module has controlled the set of switching elements to drive the motor based on the first period value to minimize a difference between the second period value and the first period value.

In one example, the present disclosure is directed to an apparatus for driving a motor, the apparatus comprising a motor circuit module, a plurality of first neurons of a neural network circuit module, and a plurality of second neurons of the neural network circuit module. The motor circuit module is configured to control a set of switching elements to drive the motor based on the first cycle value. The plurality of first neurons of the neural network circuit module are configured to generate a plurality of training vectors, train the plurality of first neurons to generate a first period value to minimize a difference between the first period value and a training period value of each of the plurality of training vectors when a predetermined variable mechanical load is applied to the electric machine, and generate the first period value based on the target speed. The plurality of second neurons of the neural network circuit module are configured to train the plurality of second neurons when a predetermined variable mechanical load is not applied to the motor to generate a second period value based on a resulting speed value of the motor occurring when the motor circuit module has controlled the set of switching elements to drive the motor based on the first period value to minimize a difference between the second period value and the first period value.

In another example, the present disclosure is directed to an apparatus comprising: the apparatus includes means for generating a first periodic value based on a target speed with a plurality of first neurons of a neural network circuit module, and means for controlling a set of switching elements to drive the motor based on the first periodic value. The apparatus also includes means for training a plurality of second neurons of the neural network circuit module to generate a second period value based on a resulting speed value of the motor occurring when the motor circuit module has controlled the set of switching elements to drive the motor based on the first period value to minimize a difference between the second period value and the first period value.

The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims.

Drawings

Fig. 1 is a block diagram illustrating an example first system configured to drive a motor using a neural network circuit module in accordance with one or more techniques of the present disclosure.

Fig. 2 is a block diagram illustrating an example second system configured to drive a motor in accordance with one or more techniques of the present disclosure.

Fig. 3 is a block diagram illustrating an example system configured to train a plurality of neurons in accordance with one or more techniques of this disclosure.

Fig. 4 is a block diagram illustrating an example plurality of neurons according to one or more techniques of this disclosure.

Fig. 5 is a block diagram illustrating an example setup for training a plurality of neurons in accordance with one or more techniques of this disclosure.

Fig. 6 is a conceptual diagram illustrating an example resistor board for training a plurality of neurons according to one or more techniques of this disclosure.

Fig. 7 is a block diagram illustrating an example first system configured to drive a motor using a plurality of first neurons and a plurality of second neurons in accordance with one or more techniques of the present disclosure.

Fig. 8 is a block diagram illustrating an example system configured to train a plurality of second neurons in accordance with one or more techniques of this disclosure.

Fig. 9 is a flow diagram for training a plurality of second neurons according to one or more techniques of this disclosure.

Fig. 10 is a graph illustrating mean square error during training in accordance with one or more techniques of the present disclosure.

Fig. 11 is a graph illustrating back electromagnetic force (BEMF) voltage tracking according to one or more techniques of this disclosure.

Fig. 12 is a graph illustrating BEMF voltage tracking during a load change in accordance with one or more techniques of this disclosure.

Fig. 13 is a flow diagram of driving a motor using a neural network circuit module according to one or more techniques of the present disclosure.

Fig. 14 is a flow diagram for driving a motor using a plurality of first neurons and a plurality of second neurons according to one or more techniques of the present disclosure.

The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.

Detailed Description

Motor regulation may be performed with a regulator, which may include Proportional and Integral (PI) control. The regulator may generate a digitally modulated signal (e.g., a Pulse Width Modulated (PWM) signal, a Pulse Density Modulated (PDM) signal, a Pulse Code Modulated (PCM) signal, sigma-delta modulated, or other type of digitally modulated signal). The digital modulation signal may switch (e.g., activate or deactivate) the switching element (e.g., a transistor of the motor bridge). Motor regulation may use the speed of the motor (e.g., using back electromagnetic force (BEMF) voltage) and mechanical torque in the form of motor current as feedback. The regulator may use these feedback signals (e.g., BEMF voltage and/or motor current) to achieve constant speed or constant torque regulation.

While the present disclosure is directed to systems configured to apply constant speed regulation, the techniques described herein may be applied to motor systems configured to apply constant torque. In the example of constant speed, the regulator may apply the constant speed regulation using an algorithm programmed by a human user (e.g., in the C programming language) that is compiled and stored in a memory (e.g., a flash memory of a microcontroller). In some examples, hardware may interface the motor bridge with control signals from a system on a chip controlled by microcontroller software.

Some systems implementing neural networks may perform a process of generating training vectors for a particular application by a human user. The training vectors may be output to high performance hardware (e.g., using a graphics processing unit or GPU) to "train" the neurons of the neural network circuit block. However, such systems may rely on human interaction and high performance hardware separate from the microcontroller integrated in the motor controller's system on chip. Furthermore, the system-on-chip of the motor controller may have limited random access memory that is insufficient to store the various training vectors used to train the neurons.

The techniques described herein may configure the motor controller itself to train the neurons for driving the motor, rather than relying on a human user to generate training vectors and/or relying on high performance hardware separate from the motor controller to train the neurons for driving the motor. The motor controller may receive the same or different input signals (e.g., BEMF voltage and/or motor current) used by an algorithm programmed by a human user and may generate a period value (e.g., PWM duty cycle) as an output value that may control motor speed. In other words, the motor controller may not be programmed by a human user and may not be pre-configured for a particular motor application. Instead, the motor controller itself may be configured to learn how to control the motor, which may be a more optimal control than can be achieved through human programming.

The present disclosure includes aspects for implementing neural network training and execution using deep learning techniques. The techniques described herein may be adapted and, in some examples, may be configured to operate in a low power and/or low performance environment (e.g., a microcontroller). For example, the neural network circuit module may be configured to implement a minimum set of neurons to achieve sufficient conditioning quality. In some examples, a neural network circuit module of a motor controller may include a plurality of neurons (e.g., less than 10 neurons, less than 50 neurons, or other number of neurons) that are adapted to a motor controller, such as a microcontroller, rather than a predetermined number of neurons (e.g., greater than 100 neurons, greater than 1000 neurons, or other predetermined number of neurons) that are adapted to high performance hardware separate from the motor controller. In some examples, the motor controller may apply a maximum delta operation (also referred to herein as a "maximum delta operation") to stabilize the speed adjustment by reducing the maximum allowable signal jump. For example, the motor controller may be configured to limit the maximum speed variation at the motor such that the control response of the motor controller is stopped, which may help improve the stability of the motor controller. In some examples, the neural network circuitry module may be configured to represent values (e.g., speed values, current values, periodic values, and/or other values) using a 32-bit floating point format, which may help reduce or eliminate quantization of values.

Additionally or alternatively, in some examples, the techniques described herein may include a neural network configured to learn on-the-fly while the system is in use and after the neural network circuit module has trained a first plurality of neurons to regulate motors. For example, in some cases, the neural network circuit module may be configured to adapt a plurality of second neurons based on a resulting speed value observed at the motor when the motor is modulated (e.g., to a certain speed or torque) by the plurality of first neurons. Such adaptation may take into account various mechanical and/or electrical changes (e.g., aging and/or additional changes in the motor), which may improve the accuracy of the system as compared to motor controllers using programmed motor controllers and/or statically implemented neural networks.

Fig. 1 is a block diagram illustrating an example first system 100 configured to drive a motor 106 using a neural network circuit module 110 in accordance with one or more techniques of the present disclosure. The system 100 (also referred to herein as a "motor controller" or "means for driving a motor") may include a power supply 101, a neural network circuit module 110, a motor circuit module 112, a set of switching elements 114, and a motor 106. Although fig. 1 illustrates the system 100 as having separate and distinct components, some of the components may be combined or further separated. For example, the electromechanical circuitry module 112 and the neural network circuitry module 110 may be combined. For example, the motor circuit module 112 and the neural network circuit module 110 may be configured as a system on a chip (SOC) and/or an Integrated Circuit (IC). However, in some examples, the motor circuit module 112 may be separate and distinct from the neural network circuit module 110.

The power supply 101 may be configured to provide power to one or more other components of the system 100. For example, the power source 101 may be configured to provide power to the motor 106. In some examples, the power source 101 may be a battery, which may be configured to store electrical energy. Examples of batteries may include, but are not limited to, nickel cadmium, lead acid, nickel metal hydride, nickel zinc, silver oxide, lithium ion, lithium polymer, any other type of rechargeable battery, or any combination thereof. In some examples, the power source 101 may be the output of a power converter or power inverter. For example, the power source 101 may be the output of a Direct Current (DC) to DC power converter, an Alternating Current (AC) to DC power converter, a DC to AC power inverter, and the like. In some examples, the input power signal provided by the power supply 101 may be a DC input power signal. For example, the power supply 101 may be configured to provide a DC input power signal in the range of 5VDC to 40 VDC.

The motor 106 may comprise a DC brushless motor, also referred to as a brushless DC motor, or simply a "BLDC motor". In some examples, the electric machine 106 may include a DC excited electric machine. For example, the motor 106 may include a shaft, a rotor, a stator, and permanent magnets. The permanent magnets may be mounted on or in the rotor. In some examples, the permanent magnets may be surface mounted to the rotor, embedded in the rotor, or buried within the rotor. In some examples, the permanent magnet may be an internal magnet. The permanent magnet may include a rare earth element such as neodymium-iron-boron (NdFeB), samarium-cobalt (SmCo), or a ferrite element such as barium (Ba) or strontium (Sr). In some examples, the permanent magnet may include a protective coating, such as a layer of gold (Au), nickel (Ni), zinc (Zn), other elements, and/or other compounds.

The motor circuit module 112 may be configured to control a set of switching elements 114 to drive the motor 106 based on the period value output from the neural network circuit module 110. For example, the electromechanical circuitry module 112 may include circuitry modules configured to generate a digitally modulated signal based on a period value (e.g., a duty cycle value). Examples of digitally modulated signals may include, for example, Pulse Width Modulated (PWM) signals, Pulse Density Modulated (PDM) signals, Pulse Code Modulated (PCM) signals, sigma-delta modulated, or other digitally modulated signals. Examples of period values may include, for example, PWM period values, PDM period values, PCM period values, sigma-delta modulation period values, or other period values.

The motor circuit module 112 may be configured to drive a set of switching elements 114 to operate in at least a first switching state and a second switching state based on the digitally modulated signal. During the first switching state, the set of switching elements 114 may electrically couple the first terminal of the electric machine 106 and a first power terminal (e.g., a positive terminal, a negative terminal, or a ground terminal) of the power source 101 and electrically couple the second terminal of the electric machine and a second power terminal (e.g., a negative terminal, a positive terminal, or a ground terminal) of the power source 101. During the second switching state, the set of switching elements 114 may electrically couple the second terminal of the electric machine and the first power terminal (e.g., a positive terminal or a negative terminal) of the power source 101, and may electrically couple the first terminal of the electric machine and the second power terminal (e.g., a negative terminal or a positive terminal) of the power source 101.

The motor circuit module 112 may comprise, for example, a microcontroller on a single integrated circuit containing a processor core, memory, inputs and outputs. For example, the motor circuit module 112 may include one or more processors including one or more microprocessors, Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), or any other equivalent integrated or discrete logic circuit modules, as well as any combinations of such components. The term "processor" or "processing circuit block" may generally refer to any of the preceding logic circuit blocks, alone or in combination with other logic circuit blocks, or any other equivalent circuit block. In some examples, the motor circuit module 112 may be a combination of one or more analog components and one or more digital components.

As shown in fig. 1, a set of switching elements 114 may include four switching elements. In other examples, the set of switching elements 114 may include fewer (e.g., one switching element, two switching elements, or three switching elements) or additional switching elements (e.g., more than four switching elements) than shown in the example of fig. 1. Examples of switching elements may include, but are not limited to, Silicon Controlled Rectifiers (SCRs), Field Effect Transistors (FETs), and Bipolar Junction Transistors (BJTs). Examples of FETs may include, but are not limited to, Junction Field Effect Transistors (JFETs), Metal Oxide Semiconductor FETs (MOSFETs), double-gate MOSFETs, Insulated Gate Bipolar Transistors (IGBTs), any other type of FET, or any combination thereof. Examples of MOSFETs may include, but are not limited to, depletion mode p-channel MOSFETs (PMOS), enhancement mode PMOS, depletion mode n-channel MOSFETs (NMOS), enhancement mode NMOS, double diffused MOSFETs (dmos), any other type of MOSFET, or any combination thereof. Examples of BJTs may include, but are not limited to, PNP, NPN, heterojunction, or any other type of BJT or any combination thereof. It should be understood that the switching elements may be high-side or low-side switching elements. In addition, the switching element may be voltage-controlled and/or current-controlled. Examples of current-controlled switching elements may include, but are not limited to, gallium nitride (GaN) MOSFETs, BJTs, or other current-controlling elements.

The neural network circuit module 110 may include a plurality of neurons 102 configured to generate a period value (e.g., a duty cycle value) based on a target speed, based on a speed value associated with the motor 106 at a particular time, and based on a current value associated with the motor 106 at a particular time. As shown, the neural network circuit module 110 may receive a target speed, a speed value, and a current value. For example, the neural network circuitry module 110 may be configured to: the speed value is generated with the speed circuit module based on a measurement of the BEMF voltage at the motor 106, and/or using an external sensor, such as a hall sensor, or other sensor configured to deliver a voltage and/or digital value (e.g., non-current) indicative of the speed at the motor 106. The neural network circuit block 110 may comprise, for example, a microcontroller on a single integrated circuit containing a processor core, memory, inputs and outputs. For example, the neural network circuit block 110 may include one or more processors comprising one or more microprocessors, DSPs, ASICs, FPGAs, or any other equivalent integrated or discrete logic circuit blocks, as well as any combinations of such components. In some examples, the neural network circuit module 110 may be a combination of one or more analog components and one or more digital components.

The plurality of neurons 102 may be configured to be trained to generate the period value to minimize an error between the period value and a training period value of each of a plurality of training vectors. For example, the plurality of neurons 102 may be pre-configured to have been trained to generate periodic values using the techniques described herein. In some examples, the plurality of neurons 102 may not have been trained and may be configured to perform training using the techniques described herein to generate the period value. For example, the plurality of neurons 102 may be untrained and may be configured to perform training to generate the period value such that an error between the period value and the training period value is minimized for each of the plurality of training vectors.

In some systems, high performance hardware (e.g., using a graphics processing unit separate from the system 100) may train the plurality of neurons 102 of the neural network circuit module 110. In such a system, a human user may generate a set of training vectors. For example, a human user may determine training period values for a target speed, current value, and speed value for each training vector in a set of training vectors. In some cases, a human user may operate the motor 106 at a desired load. In this case, the human user may determine the operating rotor speed value at the motor 106 and the operating current value at the motor 106. The human user may then drive the electromechanical circuit module 112 to output the training period value. In this example, a human user may determine (e.g., measure) a resulting rotor speed at the motor 106. The human user may generate a single training vector comprising a training period value, an operational rotor speed value as a speed value, an operational current value as a current value, and a resulting speed value as a target speed. In this example, the human user may select different starting motor speeds, different loads at the motor 106, different period values, and/or other parameters to generate the entire set of training vectors. With the database representing the set of training vectors, a human user may train multiple neurons 102 in batches using all of the training vectors. In this way, the high performance hardware may train the plurality of neurons 102 using human-generated training vectors. However, such systems may rely on human interaction and/or high performance hardware, which may increase the cost of implementing the motor controller.

In accordance with techniques of this disclosure, system 100 may be configured to have generated a plurality of training vectors. For example, the system 100 may have selected different starting motor speeds, different loads at the motor 106, different period values, and/or other parameters to generate training vectors of the set of training vectors without human interaction. In some examples, the system 100 may be configured, without human interaction, to select different starting motor speeds, different loads at the motor 106, different period values, and/or other parameters to generate the training vectors of the set of training vectors.

The neural network circuit module 110 may have been trained or may be configured to train the plurality of neurons 102 in real time, rather than generating a large database of data that includes all of the information to train the plurality of neurons 102. For example, the neural network circuit module 110 may drive the motor 106 to a training period value and generate a training vector using the resulting rotor speed as a target speed. In this example, the neural network circuit module 110 may use the training vectors to train the plurality of neurons 102 in real-time. That is, the neural network circuit module 110 may train the plurality of neurons 102 without waiting for additional training vectors to be generated.

The system 100 may reuse data (e.g., velocity values, current values, period values, or other values) to generate additional training vectors. That is, the system 100 may use information (e.g., velocity values, current values, period values, or other values) of a previous training vector to generate a new training vector and/or reuse memory allocated to store the previous training vector for storing the first training vector. In this way, the system 100 may operate with less memory storage consumption than a system that uses multiple training vectors to train neurons in batches.

Fig. 2 is a block diagram illustrating an example second system 200 configured to drive a motor 206 using a neural network circuit module, in accordance with one or more techniques of the present disclosure. The plurality of neurons 202, the motor circuit module 212, and the motor 206 may comprise examples of the plurality of neurons 102, the motor circuit module 112, and the motor 106 of fig. 1. As shown, the example of fig. 2 also includes a maximum speed delta circuit block 203, a current circuit block 220, and a speed circuit block 222.

The maximum delta speed circuit module 203 may be configured to receive a reference speed and determine a target speed based on the reference speed, a speed value associated with the motor 206 at a particular time, and one or more previous speed values associated with the motor 206 at one or more previous times occurring before the particular time. For example, the maximum speed delta circuit 203 may generate the target speed as W1 × ω (t) + W2 × ω (t-1) + W3 × ω (t-2), where W1 is a first weight value, W2 is a second weight value, W3 is a third weight value, ω (t) is a speed value at a particular time (t), ω (t-1) is a speed value at a first previous time, and ω (t-2) is a speed value at a second previous time. For example, the maximum speed delta circuit module 203 may generate the target speed as 0.5 × ω (t) +0.3 × ω (t-1) +0.1 × ω (t-2).

The current circuit module 220 may be configured to determine current values at a particular time (i (t)), a first previous time (i (t-1)), and a second previous time (i (t-2)). The current circuit module 220 may include, for example, a hall effect sensor configured to generate a voltage proportional to the magnetic flux density at the rotor or stator of the motor 206. The current value (e.g., i (t), i (t-1), i (t-2), or other current value) may be proportional to the torque generated by the motor 206. For example, the current circuit module 220 (or other circuit modules of the system 200) may be configured to multiply the current measured at the motor 206 by a predetermined factor (e.g., a torque constant) to determine the torque generated by the motor 206. While the example of fig. 2 stores three current values, other examples may store fewer current values (e.g., one current value or two current values) or more current values (e.g., more than three current values).

The speed circuit module 222 may be configured to determine speed values at a particular time (ω (t)), a first previous time (ω (t-1)), and a second previous time (ω (t-2)). The speed circuit module 222 may measure a back electromagnetic force (BEMF) voltage at the motor 206 and at a particular time. In this example, the speed circuit module 222 may be configured to determine a speed value associated with the motor at a particular time based on the back electromagnetic force voltage. For example, the speed circuitry module 222 (or other circuitry modules of the system 200) may be configured to multiply the measured BEMF voltage at the motor 206 by a predetermined factor (e.g., an EMF constant) to generate a speed value. Although the example of fig. 2 stores three speed values, other examples may store fewer speed values (e.g., one speed value or two speed values) or more speed values (e.g., more than three speed values).

In accordance with techniques of this disclosure, the plurality of neurons 202 may generate period values based on the target speed, one or more current values (e.g., i (t), i (t-1), i (t-2), and/or other current values), one or more speed values (e.g., ω (t), ω (t-1), ω (t-2), and/or other speed values), and one or more previous period values (e.g., D (t), D (t-1), D (t-2), and/or other period values) output by the maximum speed delta circuit module 203. For example, the plurality of neurons 202 may generate the period value based on a speed value (e.g., ω (t)) associated with the motor 206 at a particular time (e.g., t) and based on a current value (e.g., i (t)) associated with the motor 206 at the particular time (e.g., t).

In some examples, the plurality of neurons 202 may generate values based on a previous speed value (e.g., ω (t-1)) associated with the motor 206 at a previous time (e.g., t-1) occurring before a particular time (e.g., t) and/or a previous current value (e.g., i (t-1)) period associated with the motor 206 at the previous time (e.g., t-1). In some examples, the plurality of neurons 202 may generate the period value based on a second previous speed value (e.g., ω (t-2)) associated with the motor 206 at a previous time (e.g., t-2) occurring before the particular time (e.g., t) and before the previous time (e.g., t-1) and/or a second previous current value (e.g., i (t-2)) associated with the motor 206 at the second previous time (e.g., t-2).

In some examples, the plurality of neurons 202 may generate the period value based on one or more of: a first previous period value (e.g., D (t-1)) associated with the motor 206 at a previous time (e.g., t-1) occurring before a particular time (e.g., t), a second previous period value (e.g., D (t-2)) associated with the motor 206 at a previous second time (e.g., t-2) occurring before the particular time (e.g., t) and before a previous time (e.g., t-1), and/or a previous third period value (e.g., D (t-3)) associated with the motor 206 at a previous third time (e.g., t-3) occurring before the particular time (e.g., t), before the previous time (e.g., t-1) and before the previous second time (e.g., t-2).

Fig. 3 is a block diagram illustrating an example system 300 configured to train a plurality of neurons 302 in accordance with one or more techniques of this disclosure. The plurality of neurons 302, the motor circuit module 312, and the motor 306 may be examples of the plurality of neurons 102, the motor circuit module 112, and the motor 106 of fig. 1.

In accordance with techniques of this disclosure, a neural network circuitry module may be configured to: for each of the plurality of training vectors, a training period value is output to the motor circuit module 312, and a resulting speed value associated with the motor 306 that occurs when the training period value has been output to the motor circuit module 312 has been determined. For example, when the plurality of neurons 302 are pre-trained, a neural network circuit module (e.g., neural network circuit module 110 of FIG. 1) may have stored a first previous period value (e.g., D (t-1)), a previous current value (e.g., i (t-1)), and a previous velocity value (e.g., ω (t-1)). In this example, the neural network circuitry module may have determined a resulting speed value (e.g., ω (t)), for example, using the speed circuitry module 222 of fig. 2.

In this example, the system 300 may have generated a first training vector to include a previous period value as a training period value, a previous current value as a current value, a previous speed value as a current speed value, and a resulting speed value as a target speed. In the example of fig. 3, system 300 may have generated the first training vector to include one or more of a second previous current value (e.g., i (t-2)) or a second previous speed value (e.g., ω (t-2)). The system 300 may have generated the first training vector to include one or more of a third previous current value (e.g., i (t-3)) or a third previous speed value (e.g., ω (t-3)). The system 300 may have generated the first training vector to include one or more of a second previous period value (e.g., D (t-2)), a third previous period value (e.g., D (t-3)), or a fourth previous period value (e.g., D (t-4)).

The system 300 may be configured to have generated a plurality of training vectors based on a range of target speed values for the motor 306. For example, the neural network circuit module may have generated a plurality of training vectors to help ensure that the motor 306 is within a predetermined range of the speed value of the motor 306. In this way, the neural network circuitry module may be configured to: the motor 306 has been driven to speed values to prevent damage to the motor 306 and/or to represent a range of expected speed values for a particular application of the motor 306.

The system 300 may be configured to have generated a plurality of training vectors based on a range of target current values for the motor 306 that have been determined based on the range of torque values. For example, the neural network circuit module may be configured to convert the received range of torque values to a range of current values using a predetermined factor (e.g., a torque constant). In this manner, the system 300 may be configured to: the motor 306 has been driven to prevent damage to the motor 306 and/or to represent a range of expected torque values for a particular application of the motor 306.

The system 300 may be configured to have trained the plurality of neurons 302 to minimize an error between the period value and a training period value of each of a plurality of training vectors. For example, the system 300 may have trained a plurality of neurons 302 using a first training vector. In this example, the system 300 may be configured to have generated a second training vector. For example, the system 300 may effectively "shift" the current value, the velocity value, and/or the period value, and repeat the process used to generate the first training vector. For example, system 300 may have used a first previous period value (e.g., D (t-1)) of a first training vector as a second previous period value (e.g., D (t-2)) of a second training vector, may have used a previous current value (e.g., i (t-1)) of the first training vector as a second previous current value (e.g., i (t-2)) of the second training vector, may have used a previous velocity value (e.g., ω (t-1)) of the first training vector as a second previous velocity value (e.g., ω (t-2)) of the second training vector, and so on. In this manner, system 300 may operate with less memory storage consumption than a system that uses multiple training vectors to train neurons in batches.

Although the above examples involve the plurality of neurons 302 being preconfigured, in some examples, the plurality of neurons 302 may be untrained and the system 300 may train the plurality of neurons 302 in real-time. For example, the system 300 may be configured to generate a plurality of training vectors and train the plurality of neurons 302 to generate the period value such that an error between the period value and the training period value is minimized for each of the plurality of training vectors.

In some examples, the neural network circuitry module may determine a previous speed value (e.g., ω (t-1)) associated with the motor 306 at a first previous time (e.g., t-1), determine a previous current value (e.g., i (t-1)) associated with the motor 306 at the first previous time, determine a previous period value (e.g., D (t-2)) of the motor 306 at a second previous time (e.g., t-2) occurring before the first previous time (e.g., t-1), and output a training period value (e.g., D (t-1)) to the motor circuitry module 312 at a current time (e.g., t) occurring after the previous time. In these examples, the neural network circuitry module may determine a resulting speed value (e.g., ω (t)) associated with the motor 306 that occurs when a training period value (e.g., D (t-1)) has been output to the motor circuitry module 312. In this example, the neural network circuit module is configured to train the plurality of neurons 302 to generate a period value to correspond to a training period value (e.g., D (t-1)) based on a previous velocity value (e.g., ω (t-1)), a previous current value (e.g., i (t-1)), a previous period value (e.g., D (t-2)), and a resulting velocity value (e.g., ω (t)).

In the example of fig. 3, system 300 may generate a training vector to include one or more of a second previous current value (e.g., i (t-2)) or a second previous speed value (e.g., ω (t-2)). The system 300 may generate a training vector to include one or more of a third previous current value (e.g., i (t-3)) or a third previous speed value (e.g., ω (t-3)). The system 300 may generate a training vector to include one or more of a second previous period value (e.g., D (t-2)), a third previous period value (e.g., D (t-3)), or a fourth previous period value (e.g., D (t-4)). In some examples, the system 300 may generate a training vector to omit a previous period value (e.g., D (t-2)).

The system 300 may be configured to generate a plurality of training vectors based on a range of target speed values for the motor 306. For example, the system 300 may generate a plurality of training vectors to help ensure that the motor 306 is within a predetermined range of the speed value of the motor 306. In this manner, the system 300 may be configured to: the motor 306 is driven to speed values to prevent damage to the motor 306 and/or to represent a range of expected speed values for a particular application of the motor 306.

The system 300 may be configured to generate a plurality of training vectors based on a range of target current values for the motor 306, which have been determined based on the range of torque values. For example, the system 300 may be configured to convert a received range of torque values into a range of current values using a predetermined factor (e.g., a torque constant). In this manner, the system 300 may be configured to: the motor 306 is driven to prevent damage to the motor 306 and/or to represent a range of expected torque values for a particular application of the motor 306.

Although the example of fig. 3 shows three current values, four speed values, and three cycle values, in some examples, multiple neurons 312 may use different values. For example, the plurality of neurons 302 may use one, two, three, or more than four velocity values. In some examples, the plurality of neurons 302 may use one, two, or more than three current values. The plurality of neurons 302 may use zero, one, two, or more than three period values. In some cases, the plurality of neurons 302 may also use additional information not shown to generate the period value.

Fig. 4 is a block diagram illustrating an example plurality of neurons according to one or more techniques of this disclosure. As shown, input layer 430 may include an input layer configured to receive a target speed, one or more speed values (e.g., ω (t), ω (t-1), ω (t-2), and/or other speed values), one or more current values (e.g., i (t), i (t-1), i (t-2), and/or other current values), and one or more period values (e.g., D (t-1), D (t-2), D (t-3), and/or other period values). In some examples, input layer 430 may include fewer inputs. For example, the input layer 430 may omit previous period values. In some cases, the input layer 403 may include only the target speed, one speed value, and one current value.

In the example of fig. 4, hidden layer 432 includes seven neurons. However, in some examples, the hidden layer 432 may include fewer neurons (e.g., less than seven neurons) or more neurons (e.g., more than seven neurons). Each neuron of hidden layer 432 may be associated with a neuron shown as b1、b2、...b7Is associated with the weight of (b). Each neuron of the hidden layer 432 may generate an output based on the input layer 430. In this example, the output of each neuron of input layer 430 is multiplied by a respective weight to generate a weighted output value. Transfusion systemThe exit layer 434 may output a period value based on the sum of weighted output values output by each neuron of the input layer 430. In this example, the output layer 434 includes one node (e.g., for period values), however, in other examples, the output layer 434 may include one or more additional nodes.

Fig. 5 is a block diagram illustrating an example setup for training a plurality of neurons in accordance with one or more techniques of this disclosure. The first circuit board 546 may be an example of a combination of the plurality of neurons 102, the motor circuit module 112, the power supply 101, and the set of switching elements 114 of fig. 1.

The first circuit board 546 may be an example of a motor control circuit module formed using an evaluation board that includes a system on a chip with a microcontroller, a set of switching elements (e.g., power MOSFETs) that use a neural network circuit module to drive the drive motor 506. In the example of fig. 5, the neural network may be implemented in embedded software stored in the memory of the microcontroller of the first circuit board 546. Embedded software for implementing neural networks may include a library for training and executing a plurality of neurons. The drive motor 506 may be an example of the motor 106 of fig. 1. The second circuit board 544 with the resistor board 542 may be configured to drive a load motor 540 (e.g., a DC motor) to act as a variable mechanical load.

In accordance with techniques of this disclosure, the plurality of neurons of the first circuit board 546 may be configured to be trained to generate the period value to minimize an error between the period value and the training period value of each of the plurality of training vectors. The first circuit board 546 may include a PWM generator that converts period values to a pulse width modulation duty cycle. The set of switching elements of the first circuit board 546 may control (e.g., drive) the drive motor 506 using a pulse width modulation duty cycle.

Rather than training the plurality of neurons of the first circuit board 546 at constant loads, the second circuit board 544 may be configured to drive a plurality of neurons that include a load motor 540 to apply a variable mechanical load to the drive motor 506, where the load motor includes a rotor mechanically coupled to the rotor of the drive motor 506. For example, second circuit board 544 may select (e.g., turn on) a first set of resistors of resistor plate 542 that corresponds to a predetermined first mechanical load. In this example, first circuit board 546 may generate a first training vector when second circuit board 544 selects a first set of resistors for a predetermined first mechanical load. In this example, second circuit board 544 may select (e.g., turn on) a second set of resistors of resistor plate 542 that correspond to a predetermined second mechanical load that is greater than or less than the predetermined first mechanical load. In this example, first circuit board 546 may generate a second training vector when second circuit board 544 selects a second set of resistors for a predetermined second mechanical load. In this manner, when the drive motor 506 is in use (e.g., mechanically coupled to a varying load that is not preconfigured), multiple neurons may be trained to account for different loads at the drive motor 506.

Fig. 6 is a conceptual diagram illustrating an example resistor board 642 for training a plurality of neurons according to one or more techniques of this disclosure. Resistor plate 642 may be an example of resistor plate 542 of fig. 5. As shown, the resistor board 642 includes switching elements 660A-660G (collectively, "switching elements 660"). For purposes of example only, the second circuit board 544 of fig. 5 is discussed with respect to fig. 6.

The second circuit board 544 may turn on the first set of switching elements 660 to generate a predetermined first mechanical load. For example, the second circuit board 544 may turn on the switching elements 660A-660C and turn off the switching elements 660D-660G to generate a first resistance value. In this example, the second circuit board 544 may drive the load motor 540 using a first resistance value to provide a predetermined first mechanical load. The second circuit board 544 may turn on the switching element 660A and turn off the switching elements 660B-660G to generate a second resistance value. In this example, second circuit board 544 may drive load motor 540 using a second resistance value to provide a predetermined second mechanical load. In this manner, resistor plate 642 may help provide a resistance value to drive load motor 540 with a preconfigured variable mechanical load.

Fig. 7 is a block diagram illustrating an example first system configured to drive a motor using a plurality of first neurons and a plurality of second neurons in accordance with one or more techniques of the present disclosure. The neural network circuit module 710, the motor circuit module 712, the set of switching elements 714, the power source 701, and the motor 706 may be examples of the neural network circuit module 110, the motor circuit module 112, the set of switching elements 114, the power source 101, and the motor 106 of fig. 1.

The system 700 of fig. 7 may be an adaptive system and may include two neural networks (e.g., a plurality of first neurons 702A and a plurality of second neurons 702B). A plurality of first neurons 702A can be trained and introduced into the motor regulation loop. The plurality of first neurons 702A may receive an input signal (e.g., one or more velocity values, one or more current values, and/or other values) from the motor 706 and generate a first period value. The motor circuit module 712 may generate a digital modulation signal (e.g., a PWM duty cycle) to control the motor 706 based on the first period value. The plurality of second neurons 702A may comprise copies of the plurality of first neurons 702A.

As described in further detail below, the plurality of first neurons 702A may receive as input a target speed. In some examples, the plurality of first neurons 702A may receive a value (e.g., a current value, a speed value, and/or other value) and a historical value (e.g., one or more previous current values, one or more previous speed values, one or more previous cycle values, and/or other values). The plurality of second neurons 702A may receive the same values of delay (e.g., one or more current values, one or more velocity values, one or more period values, and/or other values). However, the plurality of second neurons 702A may receive a resulting speed (e.g., based on the motor BEMF voltage) instead of the target speed.

The neural network circuit module 710 may use a delta (e.g., difference) of the outputs of the plurality of first neurons 702A and the plurality of second neurons 702B as an error measure, which may be used to adapt the plurality of second neurons 702B that are not in a regulatory loop. When the error is sufficiently low, the plurality of second neurons 702B are swapped with the plurality of first neurons 702A, and the copies of the plurality of second neurons 702A can be adapted again in the same manner as before. For example, the neural network circuit module 710 may set the plurality of second neurons 702B as the plurality of first neurons 702A and set the plurality of first neurons 702A as the plurality of second neurons 702B. With this implementation, the system 700 can continuously adjust and evaluate the error. The neural network circuit module 710 may evaluate the error in the regulatory context. For example, the neural network circuit module 710 may evaluate the error without interrupting the regulation of the motor 706 by the plurality of first neurons 702A. In this manner, the neural network circuit module 710 may be optimized and adapted based on an error (e.g., difference) between the actual settings and the ideal settings, which may improve the accuracy of the system 700 as compared to motor controllers using programmed motor controllers and/or statically implemented neural networks.

The neural network circuit module 710 may include a plurality of first neurons 702A and a plurality of second neurons 702B. The plurality of first neurons 702A may be an example of the plurality of neurons 102 of fig. 1. The plurality of second neurons 702B can be similar to the plurality of first neurons 702A. For example, the plurality of first neurons 702A and the plurality of second neurons 702B may comprise an input layer configured to receive one or more of a target velocity, one or more velocity values, one or more current values, or one or more previous cycle values. The plurality of first neurons 702A and the plurality of second neurons 702B may comprise hidden layers having less than seven neurons, more than seven neurons, or other numbers of neurons.

The plurality of first neurons 702A may be configured to generate a first period value based on the target speed. The plurality of first neurons 702A can be configured to generate the first period value based also on additional values, such as one or more speed values, one or more current values, one or more period values, or other values.

The motor circuit module 712 may be configured to control a set of switching elements 714 to drive the motor 706 based on the first cycle value. For example, the electromechanical circuitry module 712 may include circuitry modules configured to generate a digitally modulated signal based on a period value (e.g., a duty cycle value). The motor circuit module 712 may be configured to drive a set of switching elements 714 to operate in at least a first switching state and a second switching state based on the digitally modulated signal. During a first switching state, the set of switching elements 714 may electrically couple a first terminal of the electric motor 706 and a first power terminal (e.g., a positive terminal or a negative terminal) of the power supply 701, and a second terminal of the electric motor and a second power terminal (e.g., a negative terminal or a positive terminal) of the power supply 701. During the second switching state, the set of switching elements 714 may electrically couple the second terminal of the electric machine and a first power terminal (e.g., a positive terminal or a negative terminal) of the power supply 701, and may electrically couple the first terminal of the electric machine and a second power terminal (e.g., a negative terminal or a positive terminal) of the power supply 701.

Some systems may train neurons at the time of manufacture and/or when the motor controller is initially placed in use. However, various parameters of the system (e.g., mechanical, electrical, and/or other parameters) may change while the system is in use. Such changes in parameters may reduce the accuracy of the neuron over time.

In accordance with the techniques of this disclosure, the neural network circuit module 710 may not be static (e.g., maintain initial training of neurons). Rather, the neural network circuit module 710 may be configured to adapt and "learn on the fly" while the system 700 is in use. When the system 700 changes due to mechanical changes or component changes, the neural network circuit module 710 may be configured to learn from the newly set characteristics while the neural network circuit module 710 controls, for example, the speed or torque at the motor 706. For example, the neural network circuit module 710 may be configured to compare actual settings (e.g., corresponding to the system 700 in use) with ideal settings (e.g., corresponding to the system 700 at the time of manufacture and/or when initially placed in use). The techniques described herein may configure the neural network circuit module 710 to optimize and adapt based on an error (e.g., difference) between actual settings and ideal settings, which may improve the accuracy of the system 700 compared to motor controllers using programmed motor controllers and/or statically implemented neural networks.

The plurality of second neurons 702B may be configured to train the plurality of second neurons 702B to generate the second period value to minimize a difference between the second period value and the first period value based on a resulting speed value (e.g., ω (t)) of the motor 706 that occurs when the motor circuit module 712 has controlled the set of switching elements 714 to drive the motor 706 based on the first period value. For example, the neural network circuitry module 712 may determine one or more of: a previous speed value (e.g., ω (t-1)) associated with the motor 706 at a first previous time (e.g., t-1), a previous current value (e.g., i (t-1)) associated with the motor 706 at the first previous time, a previous cycle value (e.g., D (t-2)) of the motor 706 at a second previous time (e.g., t-2), wherein the second previous time occurred before the first previous time (e.g., t-1). In this example, the plurality of first neurons 702A may output a first period value (e.g., D (t-1)) to the electromechanical circuitry module 712 at a current time (e.g., t) occurring after a previous time to drive the motor 706. In this example, the neural network circuit module 710 may determine a resulting speed value (e.g., ω (t)) associated with the motor 706 that occurs when a first period value (e.g., D (t-1)) has been output to the motor circuit module 712 to drive the motor 706. In this example, the neural network circuit module 712 may be configured to train the plurality of second neurons 702B to generate a second period value based on the resulting velocity value (e.g., ω (t)) to minimize a difference between the second period value (e.g., the period value output by the plurality of second neurons 702B) and the first period value (e.g., D (t-1)).

In this manner, the plurality of second neurons 702B may be trained in real-time and while the system 700 is operating in use, so as to help account for mechanical, electrical, and/or other changes in the system 700. For example, the neural network circuit module 710 can adapt and learn how to best adjust when the motor 706 is replaced, when one or more ball rings of the motor 706 dry out, when mechanical wear occurs at the motor 706, and/or in response to other changes in the system 700. The neural network circuit module 710 may adapt and learn how to autonomously make optimal adjustments (e.g., without human user interaction and/or without software adjustments) in response to changes in the system 700.

Fig. 8 is a block diagram illustrating an example system 800 configured to train a plurality of second neurons 802B in accordance with one or more techniques of this disclosure. The plurality of first neurons 802A, the electromechanical circuitry module 812, and the motor 806 may be examples of the plurality of neurons 102, the electromechanical circuitry module 112, and the motor 106 of fig. 1. The maximum speed delta circuit block 803, the current circuit block 820, and the speed circuit block 822 may be examples of the maximum speed delta circuit block 203, the current circuit block 220, and the speed circuit block 222 of fig. 2. The plurality of second neurons 802B may be an example of the plurality of second neurons 702B of fig. 7. The plurality of first neurons 802A and the plurality of second neurons 802B may be collectively referred to herein as a neural network circuit module 802, which may include circuit modules other than the plurality of first neurons 802A and the plurality of second neurons 802B.

Although the plurality of first neurons 802A may generate the first periodic value in real-time, for ease of description, the foregoing examples refer to the plurality of first neurons 802A as generating the first periodic value at time't-1' and the resulting velocity value (e.g., ω (t)) as occurring at time't'. When the motor circuit module 812 has controlled a set of switching elements 814 to drive the motor 806 based on the first cycle value, the speed circuit module 822 may measure the back-electromagnetic force voltage at the motor 806 and determine a resulting speed value (e.g., ω (t)) of the motor 806 based on the back-electromagnetic force voltage.

The plurality of first neurons 802A may generate a first period value (e.g., D (t-1)) based on the target velocity output by the maximum velocity delta circuit module 803. In some examples, the plurality of first neurons 802A may generate the first period value based on a target velocity and further based on one or more of: a first speed value (e.g., ω (t-1)) of the motor 806 at a first time (e.g., t-1)) that occurs before the motor circuit module 812 has controlled the set of switching elements 814 based on the first cycle value; a first current value (e.g., i (t-1)) of the motor 806 at a first time (e.g., t-1); or a first previous cycle value (e.g., D (t-2)) used by the motor circuit module 812 to control the set of switching elements 814 at a second time (e.g., t-2) occurring before the first time (e.g., t-1). In some examples, the plurality of first neurons 802A may generate the first period value based on one or more of: a second speed value (e.g., ω (t-2)) of the motor 806 at a second time (e.g., t-2) that occurs before the first time (e.g., t-1); a second current value (e.g., i (t-2)) of the motor 806 at a second time (e.g., t-2); or a second previous cycle value (e.g., D (t-3)) used by the motor circuit module 812 to control the set of switching elements 814 at a third time (e.g., t-3) occurring before the second time (e.g., t-2).

In some examples, the neural network circuit module 802 (e.g., the plurality of first neurons 802A and the plurality of second neurons 802B) may be configured to train the plurality of second neurons 802B using the first period value. For example, the neural network circuit module 802 may be configured to train the plurality of second neurons 802B to generate a second period value (e.g., D' (t-1)) based on the resulting velocity value (e.g., ω (t)) to minimize a difference (e.g., an error) between the second period value (e.g., the period value output by the plurality of second neurons 802B) and the first period value (e.g., D (t-1)). The difference (e.g., error) between the second period value (e.g., the period value output by the plurality of second neurons 802B) and the first period value (e.g., D (t-1)) is input to the neural network circuit module 802 and used by the neural network circuit module 802 to adapt the plurality of second neurons 802B.

In some examples, the plurality of second neurons 802B may generate the second period value based on the resultant velocity value (e.g., ω (t)) and further based on one or more of: one or more current values (e.g., i (t-1), i (t-2), i (t-3), and/or other current values), one or more velocity values (e.g., ω (t-1), ω (t-2), ω (t-3), and/or other velocity values), and one or more previous cycle values (e.g., D (t-2), D (t-3), D (t-4), and/or other cycle values).

For example, the plurality of second neurons 802B may generate the second period value based on the resultant velocity value (e.g., ω (t)) and further based on one or more of: a first speed value (e.g., ω (t-1)) of the motor 806 at a first time (e.g., t-1) that occurs before the motor circuit module 812 has controlled the set of switching elements 814 based on the first cycle value; a first current value (e.g., i (t-1)) of the motor 806 at a first time (e.g., t-1); or a first previous cycle value (e.g., D (t-2)) used by the motor circuit module 812 to control the set of switching elements 814 at a second time (e.g., t-2) occurring before the first time (e.g., t-1). In some examples, the plurality of second neurons 802B may generate the second period value based on one or more of: a second speed value (e.g., ω (t-2)) of the motor 806 at a second time (e.g., t-2) that occurs before the first time (e.g., t-1); a second current value (e.g., i (t-2)) of the motor 806 at a second time (e.g., t-2); or a second previous cycle value (e.g., D (t-3)) used by the motor circuit module 812 to control the set of switching elements 814 at a third time (e.g., t-3) occurring before the second time (e.g., t-2).

The neural network circuit module 802 may be configured to adapt to changes in the system 800. For example, in response to determining that the difference between the second period value and the first period value is less than an error threshold (e.g., a preconfigured threshold, a determined threshold, and/or other error threshold), the neural network circuit module is configured to copy the plurality of second neurons 802B into the plurality of first neurons 802A such that when the resulting speed value corresponds to the target speed, the plurality of first neurons generate the first period value to correspond to the second period value generated by the plurality of second neurons 802B. For example, the neural network circuit module is configured to replace hidden layers of the plurality of first neurons 802A with second values of corresponding weights for hidden layers of the plurality of second neurons 802B (e.g., B of fig. 4)1、b2,…,b7) Is determined by the first value of the weight of (1).

Fig. 9 is a flow diagram for training a plurality of second neurons according to one or more techniques of this disclosure. The example operations of fig. 9 are described below in the context of the contexts of fig. 1-8 for example purposes only. The neural network circuit module 710 may train 902A plurality of first neurons 702A. For example, the neural network circuit module 710 may train the plurality of first neurons 702A according to the techniques described in fig. 3 and/or fig. 5. For example, the neural network circuit module 710 may train the plurality of first neurons 702A when a predetermined variable mechanical load is applied to the motor 706. In some examples, the predetermined variable mechanical load may be applied by a load motor (e.g., load motor 540) using a resistor plate (e.g., resistor plate 542). For example, each different combination of resistors that are switched on may correspond to a different predetermined variable mechanical load. In some examples, the plurality of second neurons 702B may be configured to avoid training when a predetermined variable mechanical load is applied to the motor 706.

The neural network circuit module 710 may copy 904 the plurality of first neurons 702A to the plurality of second neurons 702B. For example, the neural network circuit module 710 may be configured to replace hidden layers of the plurality of first neurons 702A with second values of corresponding weights for hidden layers of the plurality of second neurons 702B (e.g., B of fig. 4)1、b2,…,b7) Is determined by the first value of the weight of (1).

The neural network circuit module 710 performs the conditioning (906). For example, the plurality of first neurons 702A may generate a first period value based on the target speed. The plurality of first neurons 702A can be configured to generate the first period value based also on additional values, such as one or more speed values, one or more current values, one or more period values, or other values.

The neural network circuit module 710 may calculate errors between the plurality of first neurons 702A and the plurality of second neurons 702B (908). For example, the neural network circuit module 710 may calculate a difference between a first duty cycle generated by the plurality of first neurons 702A at a previous time (e.g., t-1) and a second duty cycle generated by the plurality of second neurons 702B at a particular time (e.g., t).

The neural network circuit module 710 may adapt the plurality of second neurons 702B based on the error (910). For example, the plurality of second neurons 702B may be configured to train the plurality of second neurons 702B when a predetermined variable mechanical load is not applied to the electric machine to generate the second period value based on a resulting speed value of the electric machine 706 that occurs when the electric machine circuit module 712 has controlled the set of switching elements 714 to drive the electric machine 706 based on the first period value to minimize a difference between the second period value and the first period value. For example, the plurality of second neurons 702B may be configured to train while the plurality of first neurons 702A generate first period values based on the target velocity and during when the motor 706 is coupled to a varying and unknown load and not coupled to a load motor.

The neural network circuit module 710 may determine whether a difference between the second period value and the first period value is less than an error threshold (e.g., a preconfigured threshold, a determined threshold, and/or other error threshold) (912). In response to determining that the difference between the second period value and the first period value is not less than the error threshold ("no" at 912), the neural network circuit module 710 may proceed to step 908. However, in response to determining that the difference between the second period value and the first period value is less than the error threshold ("yes" of 912), the neural network circuit module 710 may copy the plurality of second neurons 702B to the plurality of first neurons 702A and proceed to step 904 (914). For example, the neural network circuit module 710 may copy the plurality of second neurons 702B to the plurality of first neurons 702A such that when the resulting velocity value corresponds to the target velocity, the plurality of first neurons generate the first period value to correspond to the second period value generated by the plurality of second neurons 702B. For example, the neural network circuit module 710 may be configured to replace hidden layers of the plurality of first neurons 702A with second values of corresponding weights for hidden layers of the plurality of second neurons 702B (e.g., B of fig. 4)1、b2、…、b7) Is determined by the first value of the weight of (1).

Fig. 10 is a graph illustrating mean square error during training in accordance with one or more techniques of the present disclosure. For purposes of example only, fig. 10 will be discussed with reference to fig. 1-9. The abscissa axis of fig. 10 is time, and the ordinate axis of fig. 10 is the mean square error 1002 of the target velocity and the resulting velocity value at the motor 106 during training of the plurality of neurons 102. As shown, the neural network circuit block 110 is configured to train the plurality of neurons 102 to substantially reduce the mean square error during training.

Fig. 11 is a graph illustrating BEMF voltage tracking according to one or more techniques of this disclosure. For purposes of example only, fig. 11 will be discussed with reference to fig. 1-10. The abscissa axis of fig. 11 is time in seconds, and the ordinate axis of fig. 11 is a first BEMF voltage 1102 of the target speed and a second BEMF voltage 1104 of the resulting speed value at the motor 106. As shown, the neural network circuit module 110 is configured to tightly regulate the rotor speed at the motor 106 to a target speed.

Fig. 12 is a graph illustrating BEMF voltage tracking during a load change in accordance with one or more techniques of this disclosure. For purposes of example only, fig. 12 is discussed with reference to fig. 1-11. The abscissa axis of fig. 12 is time in seconds, and the ordinate axis of fig. 12 is the first BEMF voltage 1202 for the target speed and the second BEMF voltage 1204 for the resulting speed value at the motor 106. As shown, the neural network circuit module 710 is configured to tightly regulate the rotor speed at the motor 706 to a target speed using the first plurality of neurons 702A until a load change occurs at about 8 seconds. At 8 seconds, the neural network circuit module 710 may continuously train and adapt a plurality of second neurons 702B that are copied into the plurality of first neurons 702A to more tightly adjust the second BEMF voltage 1204 of the resulting velocity value at the motor 106 to correspond to the first BEMF voltage 1202 of the target velocity. At about 13 seconds, another load change occurs and the neural network circuit module 710 may continuously train and adapt the plurality of second neurons 702B, which are copied into the plurality of first neurons 702A, to more tightly adjust the second BEMF voltage 1204 of the resulting velocity value at the motor 106 to correspond to the first BEMF voltage 1202 of the target velocity. In this manner, the neural network circuit module 710 may be optimized and adapted to account for variations in the system 700 (e.g., the motor 706), which may improve the accuracy of the system 700 as compared to motor controllers using programmed motor controllers and/or statically implemented neural networks.

Fig. 13 is a flow diagram of driving a motor using a neural network circuit module according to one or more techniques of the present disclosure. For purposes of example only, fig. 13 is discussed with reference to fig. 1-12. The plurality of neurons 102 may generate a period value based on the target speed, based on a speed value associated with the motor at a particular time, and based on a current value associated with the motor at the particular time (1302). In some examples, the plurality of neurons 102 may be configured to be trained to generate a period value to minimize an error between the period value and a training period value of each of a plurality of training vectors.

In some examples, system 100 may be configured to have generated a plurality of training vectors. For example, the system 100 may have selected different starting motor speeds, different loads at the motor 106, different period values, and/or other parameters to generate the training vectors of the set of training vectors without human interaction. In some examples, the system 100 may be configured, without human interaction, to select different starting motor speeds, different loads at the motor 106, different period values, and/or other parameters to generate the training vectors of the set of training vectors. The motor circuit module 212 may control a set of switching elements 114 to drive the motor 106 based on the period value (1304).

Fig. 14 is a flow diagram for driving a motor using a plurality of first neurons and a plurality of second neurons according to one or more techniques of the present disclosure. For purposes of example only, fig. 14 will be discussed with reference to fig. 1-13. The plurality of first neurons 702A can generate a first period value based on the target speed (1402). In some examples, the plurality of first neurons 702A may be configured to generate the first period value based also on additional values, such as one or more speed values, one or more current values, one or more period values, or other values.

The motor circuit module 712 may control a set of switching elements 714 to drive the motor 706(1404) based on the first period value. The neural network circuit module 710 may train the plurality of second neurons 702B to generate a second period value to minimize a difference between the second period value and the first period value based on a resulting speed value of the motor 706 that occurs when the motor circuit module 712 has controlled the set of switching elements 714 to drive the motor 706 based on the first period value (1406).

The following examples may illustrate one or more aspects of the present disclosure.

Example 1. an apparatus for driving a motor, the apparatus comprising: a plurality of first neurons of a neural network circuit module configured to generate a first periodic value based on a target velocity; a motor circuit module configured to control a set of switching elements to drive a motor based on a first cycle value; and a plurality of second neurons of the neural network circuit module configured to train the plurality of second neurons to generate a second period value based on a resulting speed value of the motor occurring when the motor circuit module has controlled the set of switching elements to drive the motor based on the first period value to minimize a difference between the second period value and the first period value.

The apparatus of example 2, wherein in response to determining that a difference between the second period value and the first period value is less than an error threshold, the neural network circuit module is configured to copy the plurality of second neurons into the plurality of first neurons such that the plurality of first neurons generate the first period value to correspond to the second period value generated by the plurality of second neurons when the resulting speed value corresponds to the target speed.

The apparatus of any combination of examples 1-2, wherein to generate the first period value, the plurality of first neurons is configured to generate the first period value further based on one or more of: a first speed value of the motor at a first time, the first time occurring before a motor circuit module has controlled the set of switching elements based on a first period value; a first current value of the motor at a first time; or a first previous cycle value used by the motor circuit module to control the set of switching elements at a second time occurring before the first time; and wherein to generate a second period value, the plurality of second neurons are configured to generate the second period value further based on one or more of: a first speed value of the motor at a first time, a first current value of the motor at the first time, or a first previous cycle value used by the motor circuit module to control the set of switching elements at a second time.

The apparatus of example 4. the apparatus of example 3, wherein to generate the first period value, the plurality of first neurons is configured to generate the first period value further based on one or more of: a second speed value of the motor at a second time, a second current value of the motor at the second time, or a second previous cycle value used by the motor circuit module to control the set of switching elements at a third time occurring before the second time; and wherein to generate a second period value, the plurality of second neurons are configured to generate the second period value further based on one or more of: a second speed value of the motor at a second time, a second current value of the motor at the second time, or a second previous cycle value used by the motor circuit module to control the set of switching elements at a third time.

Example 5 the apparatus of any combination of examples 1-4, wherein to control the set of switching elements to drive the motor based on the first period value, the motor circuit module is configured to: generating a digital modulation signal based on the first period value; and driving a set of switching elements based on the digitally modulated signal to operate in at least a first switching state and a second switching state, wherein during the first switching state the set of switching elements electrically couples the first terminal and the first power supply terminal of the electric machine and electrically couples the second terminal and the second power supply terminal of the electric machine, and wherein during the second switching state the set of switching elements electrically couples the second terminal and the first power supply terminal of the electric machine and electrically couples the first terminal and the second power supply terminal of the electric machine.

The apparatus of any combination of examples 1-5, wherein the motor circuit module is configured to: measuring a back-electromagnetic force voltage at the motor when the motor circuit module has controlled the set of switching elements to drive the motor based on the first period value; and determining a resulting speed value of the motor based on the back electromagnetic force voltage.

The apparatus of any combination of examples 1-6, wherein the motor circuit module is configured to: receiving a reference speed; and determining the target speed based on the reference speed, the speed value associated with the motor at the particular time, and one or more previous speed values associated with the motor at one or more previous times occurring before the particular time.

Example 8 the apparatus of any combination of examples 1-7, wherein the plurality of first neurons have been trained to generate the first period value to minimize a difference between the first period value and a training period value of each of a plurality of training vectors, and wherein the apparatus has generated a plurality of training vectors.

Example 9. the apparatus of example 8, wherein the variable mechanical load has been applied to the motor when the neural network trains the plurality of first neurons.

Example 10 the apparatus of any combination of examples 1-9, wherein the motor comprises a DC brushless motor or a DC excited motor.

Example 11 a method for driving a motor, the method comprising: generating, by a first plurality of neurons of a neural network circuit module, a first periodic value based on a target velocity; controlling, by a motor circuit module and based on a first cycle value, a set of switching elements to drive a motor; and training, by the neural network circuit module, a plurality of second neurons of the neural network circuit module to generate a second period value based on a resulting speed value of the motor occurring when the motor circuit module has controlled the set of switching elements to drive the motor based on the first period value to minimize a difference between the second period value and the first period value.

Example 12. the method of example 11, comprising: in response to determining that the difference between the second period value and the first period value is less than an error threshold, copying, by the neural network circuit module, the plurality of second neurons into the plurality of first neurons such that the plurality of first neurons generate the first period value to correspond to the second period value generated by the plurality of second neurons when the resulting speed value corresponds to the target speed; and when operating in a second state, training, by a neural network circuit module, the plurality of first neurons to generate a first period value to minimize a difference between the second period value and the first period value based on a resulting second speed value of the motor that occurs when a motor circuit module has controlled the set of switching elements to drive the motor based on the second period value.

Example 13. the method of any combination of examples 11 to 12, comprising: wherein generating the first period value comprises generating the first period value further based on one or more of: a first speed value of the motor at a first time, the first time occurring before the motor circuit module has controlled the set of switching elements based on the first cycle value; a first current value of the motor at a first time; or a first previous cycle value used by the motor circuit module to control the set of switching elements at a second time occurring before the first time; and wherein generating the second periodic value comprises generating the second periodic value further based on one or more of: a first speed value of the motor at a first time, a first current value of the motor at the first time, or a first previous cycle value used by the motor circuit module to control the set of switching elements at a second time.

Example 14. the method of example 13, wherein generating the first period value includes generating the first period value further based on one or more of: a second speed value of the motor at a second time, a second current value of the motor at the second time, or a second previous cycle value used by the motor circuit module to control the set of switching elements at a third time occurring before the second time; and wherein generating the second periodic value comprises generating the second periodic value further based on one or more of: a second speed value of the motor at a second time, a second current value of the motor at the second time, or a second previous cycle value used by the motor circuit module to control the set of switching elements at a third time.

Example 15 the method of any combination of examples 11-14, wherein controlling the set of switching elements to drive the motor based on the first period value includes: generating a digital modulation signal based on the first period value; and driving a set of switching elements based on the digital modulation signal to operate in at least a first switching state and a second switching state, wherein during the first switching state the set of switching elements electrically couples the first terminal of the electric machine and the first power terminal of the power supply and electrically couples the second terminal of the electric machine and the second power terminal of the power supply, and wherein during the second switching state the set of switching elements electrically couples the second terminal of the electric machine and the first power terminal and electrically couples the first terminal of the electric machine and the second power terminal.

Example 16. the method of any combination of examples 11 to 15, comprising: measuring, by the motor circuit module, a back-electromagnetic force voltage at the motor when the motor circuit module has controlled the set of switching elements to drive the motor based on the first period value; and determining, by the motor circuit module, a resulting speed value of the motor based on the back electromagnetic force voltage.

Example 17. the method of any combination of examples 11 to 16, comprising: receiving, by the motor circuit module, a reference speed; and determining, by the motor circuit module, a target speed based on the reference speed, the speed value associated with the motor at the particular time, and one or more previous speed values associated with the motor at one or more previous times occurring before the particular time.

Example 18. the method of any combination of examples 11-17, wherein the plurality of first neurons have been trained to generate the first period value to minimize a difference between the first period value and a training period value of each of a plurality of training vectors, and wherein the means for driving the motor has generated a plurality of training vectors.

Example 19. an apparatus for driving a motor, the apparatus comprising: a motor circuit module configured to control a set of switching elements to drive a motor based on a first cycle value; a plurality of first neurons of a neural network circuit module configured to: generating a plurality of training vectors; training the plurality of first neurons to generate the first period value to minimize a difference between the first period value and the training period value for each of the plurality of training vectors when a predetermined variable mechanical load is applied to the electric machine; and generating a first period value based on the target speed; and a plurality of second neurons of the neural network circuit module configured to train the plurality of second neurons when a predetermined variable mechanical load is not applied to the motor to generate a second period value based on a resulting speed value of the motor occurring when the motor circuit module has controlled the set of switching elements to drive the motor based on the first period value to minimize a difference between the second period value and the first period value.

Example 20. the apparatus of example 19, wherein the plurality of second neurons are configured to stop training when a predetermined variable mechanical load is applied to the motor.

Various aspects have been described in this disclosure. These and other aspects are within the scope of the following claims.

36页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于神经网络直接转矩控制的永磁直驱风电机组控制方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!