具有多个第一和第二神经元的电机的神经网络电路模块

文档序号:290954 发布日期:2021-11-23 浏览:11次 >En<

阅读说明:本技术 具有多个第一和第二神经元的电机的神经网络电路模块 (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是示出根据本公开的一个或多个技术的被配置为使用神经网络电路模块驱动电机的示例性第一系统的框图。

图2是示出根据本公开的一个或多个技术的被配置为驱动电机的示例性第二系统的框图。

图3是示出根据本公开的一个或多个技术的被配置为训练多个神经元的示例系统的框图。

图4是说明根据本公开的一个或多个技术的示例多个神经元的框图。

图5是示出根据本公开的一个或多个技术的用于训练多个神经元的示例设置的框图。

图6是示出根据本公开的一个或多个技术的用于训练多个神经元的示例电阻器板的概念图。

图7是示出根据本公开的一个或多个技术的被配置为使用多个第一神经元和多个第二神经元来驱动电机的示例第一系统的框图。

图8是示出根据本公开的一个或多个技术的被配置为训练多个第二神经元的示例系统的框图。

图9是根据本公开的一个或多个技术的用于训练多个第二神经元的流程图。

图10是示出根据本公开的一个或多个技术的在训练期间的均方误差的曲线图。

图11是示出根据本公开的一个或多个技术的反电磁力(BEMF)电压跟踪的曲线图。

图12是示出根据本公开的一个或多个技术的在负载改变期间的BEMF电压跟踪的曲线图。

图13是根据本公开的一个或多个技术的使用神经网络电路模块来驱动电机的流程图。

图14是根据本公开的一个或多个技术的用于使用多个第一神经元和多个第二神经元来驱动电机的流程图。

在附图和以下描述中阐述一个或多个示例的细节。从说明书、附图和权利要求书中,其它特征、对象和优点将是显而易见的。

具体实施方式

电机调节可以用调节器来执行,该调节器可以包括比例和积分(PI)控制。调节器可以生成数字调制信号(例如,脉宽调制(PWM)信号、脉冲密度调制(PDM)信号、脉冲编码调制(PCM)信号、∑-Δ调制或其他类型的数字调制信号)。数字调制信号可以切换(例如,激活或去激活)开关元件(例如,电机桥的晶体管)。电机调节可以使用电机的速度(例如,使用反电磁力(BEMF)电压)和电机电流形式的机械转矩作为反馈。调节器可以使用这些反馈信号(例如,BEMF电压和/或电机电流)来实现恒定速度或恒定转矩调节。

虽然本公开涉及被配置为施加恒定速度调节的系统,但是本文描述的技术可以应用于被配置为施加恒定转矩的电机系统。在恒定速度的示例中,调节器可以使用由人类用户编程(例如,以C编程语言)的算法来施加恒定速度调节,该算法被编译并存储在存储器(例如,微控制器的闪存)中。在一些示例中,硬件可以将电机桥与来自片上系统的控制信号对接,片上系统由微控制器软件控制。

实现神经网络的一些系统可以执行由人类用户生成用于特定应用的训练向量的过程。训练向量可以被输出到高性能硬件(例如,使用图形处理单元或GPU)以“训练”神经网络电路模块的神经元。然而,这样的系统可以依赖于人类交互以及与集成在电机控制器的片上系统中的微控制器分立的高性能硬件。此外,电机控制器的片上系统可能具有有限的随机存取存储器,该随机存取存储器不足以存储用于训练神经元的各种训练向量。

本文描述的技术可以将电机控制器本身配置为训练用于驱动电机的神经元,而不是依赖于人类用户来生成训练向量和/或依赖于与电机控制器分立的高性能硬件来训练用于驱动电机的神经元。电机控制器可以接收由人类用户编程的算法所使用的相同或不同的输入信号(例如,BEMF电压和/或电机电流),并且可以生成可以控制电机速度的周期值(例如,PWM占空比)作为输出值。换句话说,电机控制器可能不是由人类用户编程的,并且可能不是针对特定电机应用预先配置的。相反,电机控制器本身可以被配置为学习如何控制电机,这可以是比通过人类编程能够实现的更优化的控制。

本公开包括使用深度学习技术来实现神经网络训练和执行的方面。本文描述的技术可以被适配并且在一些示例中可以被配置为在低功率和/或低性能环境(例如,微控制器)中工作。例如,神经网络电路模块可以被配置为实现最小一组神经元以实现足够的调节质量。在一些示例中,电机控制器的神经网络电路模块可以包括适应于诸如微控制器之类的电机控制器的多个神经元(例如,少于10个神经元、少于50个神经元或其他数量的神经元),而不是适应于与电机控制器分立的高性能硬件的预定数量的神经元(例如,大于100个神经元、大于1000个神经元或其他预定数量的神经元)。在一些示例中,电机控制器可以应用最大差量操作(在此也称为“最大Δ操作”)以通过减小最大可允许信号跳变来稳定速度调节。例如,电机控制器可以被配置为限制电机处的最大速度变化,使得电机控制器的控制响应被停止,这可以帮助提高电机控制器的稳定性。在一些示例中,神经网络电路模块可以被配置为使用32位浮点格式来表示值(例如,速度值、电流值、周期值和/或其他值),这可以帮助减少或消除值的量化。

另外或备选地,在一些示例中,本文描述的技术可以包括神经网络,其被配置为在系统正在使用时并且在神经网络电路模块已经训练多个第一神经元以调节电机之后进行即时学习。例如,在一些情况下,神经网络电路模块可以被配置为在由多个第一神经元调节电机(例如,调节到某个速度或转矩)时,基于在电机处观察到的所得速度值来适配多个第二神经元。这种适配可以考虑各种机械和/或电气变化(例如,电机的老化和/或另外的变化),与使用编程的电机控制器和/或静态实现的神经网络的电机控制器相比,这可以提高系统的精度。

图1是示出根据本公开的一个或多个技术的被配置为使用神经网络电路模块110来驱动电机106的示例性第一系统100的框图。系统100(在此也称为“电机控制器”或“用于驱动电机的装置”)可以包括电源101、神经网络电路模块110、电机电路模块112、一组开关元件114和电机106。虽然图1将系统100示出为具有单独且不同的组件,但是一些组件可以被组合或进一步分离。例如,可以组合电机电路模块112和神经网络电路模块110。例如,电机电路模块112和神经网络电路模块110可以被构造成片上系统(SOC)和/或集成电路(IC)。然而,在一些示例中,电机电路模块112可以与神经网络电路模块110分离并且不同。

电源101可以被配置为向系统100的一个或多个其它组件提供电力。例如,电源101可以被配置为向电机106供电。在一些示例中,电源101可以是电池,其可以被配置为存储电能。电池的示例可以包括但不限于镍镉、铅酸、镍金属氢化物、镍锌、氧化银、锂离子、锂聚合物、任何其它类型的可再充电电池或它们的任何组合。在一些示例中,电源101可以是功率转换器或功率逆变器的输出。例如,电源101可以是直流(DC)到DC功率转换器、交流(AC)到DC功率转换器、DC到AC功率逆变器等的输出。在一些示例中,由电源101提供的输入功率信号可以是DC输入功率信号。例如,电源101可以被配置为提供在~5VDC到~40VDC范围内的DC输入功率信号。

电机106可以包括DC无刷电机,也称为无刷DC电机,或简称为“BLDC电机”。在一些示例中,电机106可以包括DC励磁电机。例如,电机106可以包括轴、转子、定子和永磁体。永磁体可以安装在转子上或转子中。在一些示例中,永磁体可以被表面安装到转子上、嵌入转子中或埋在转子内。在一些示例中,永磁体可以是内部磁体。永磁体可以包括稀土元素,例如钕-铁-硼(NdFeB)、钐-钴(SmCo)或铁氧体元素(例如钡(Ba)或锶(Sr))。在一些示例中,永磁体可以包括保护涂层,例如金(Au)、镍(Ni)、锌(Zn)、其它元素和/或其它化合物的层。

电机电路模块112可以被配置为基于从神经网络电路模块110输出的周期值来控制一组开关元件114以驱动电机106。例如,电机电路模块112可以包括被配置为基于周期值(例如,占空比值)生成数字调制信号的电路模块。数字调制信号的示例可以包括例如脉宽调制(PWM)信号、脉冲密度调制(PDM)信号、脉冲编码调制(PCM)信号、∑-Δ调制或其他数字调制信号。周期值的示例可以包括(例如)PWM周期值、PDM周期值、PCM周期值、∑-Δ调制周期值或其他周期值。

电机电路模块112可以被配置为基于数字调制信号驱动一组开关元件114以在至少第一开关状态和第二开关状态下操作。在第一开关状态期间,一组开关元件114可以电耦合电机106的第一端子和电源101的第一电源端子(例如,正端子、负端子或接地端子)并且电耦合电机的第二端子和电源101的第二电源端子(例如,负端子、正端子或接地端子)。在第二开关状态期间,一组开关元件114可以电耦合电机的第二端子和电源101的第一电源端子(例如,正端子或负端子),并且可以电耦合电机的第一端子和电源101的第二电源端子(例如,负端子或正端子)。

电机电路模块112可以包括例如在包含处理器核心、存储器、输入和输出的单个集成电路上的微控制器。例如,电机电路模块112可以包括一个或多个处理器,该处理器包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其它等效的集成或分立逻辑电路模块,以及这些组件的任何组合。术语“处理器”或“处理电路模块”通常可以指任何前述逻辑电路模块,单独或与其它逻辑电路模块组合,或任何其它等效电路模块。在一些示例中,电机电路模块112可以是一个或多个模拟组件和一个或多个数字组件的组合。

如图1所示,一组开关元件114可以包括四个开关元件。在其它示例中,一组开关元件114可以包括比图1的示例中所示的更少(例如,一个开关元件、两个开关元件或三个开关元件)或附加的开关元件(例如,多于四个开关元件)。开关元件的示例可以包括但不限于可控硅整流器(SCR)、场效应晶体管(FET)和双极结晶体管(BJT)。FET的示例可以包括但不限于结型场效应晶体管(JFET)、金属氧化物半导体FET(MOSFET)、双栅极MOSFET、绝缘栅双极晶体管(IGBT)、任何其它类型的FET或其任何组合。MOSFET的示例可以包括但不限于耗尽型p沟道MOSFET(PMOS)、增强型PMOS、耗尽型n沟道MOSFET(NMOS)、增强型NMOS、双扩散MOSFET(DMOS)、任何其它类型的MOSFET、或其任何组合。BJT的示例可以包括但不限于PNP、NPN、异质结或任何其它类型的BJT或其任何组合。应当理解,开关元件可以是高侧或低侧开关元件。另外,开关元件可以是电压控制和/或电流控制的。电流控制的开关元件的示例可以包括但不限于氮化镓(GaN)MOSFET、BJT或其它电流控制元件。

神经网络电路模块110可以包括多个神经元102,该神经元被配置为基于目标速度、基于在特定时间与电机106相关联的速度值、并且基于在特定时间与电机106相关联的电流值来生成周期值(例如,占空比值)。如图所示,神经网络电路模块110可以接收目标速度、速度值和电流值。例如,神经网络电路模块110可以被配置为:与速度电路模块一起基于对电机106处的BEMF电压的测量、和/或使用例如是霍尔传感器的外部传感器或被配置为传递指示电机106处的速度的电压和/或数字值(例如,非电流)的其他传感器,来生成速度值。神经网络电路模块110可以包括例如在包含处理器核心、存储器、输入和输出的单个集成电路上的微控制器。例如,神经网络电路模块110可以包括一个或多个处理器,该处理器包括一个或多个微处理器、DSP、ASIC、FPGA、或任何其它等效的集成或分立的逻辑电路模块、以及这些组件的任何组合。在一些示例中,神经网络电路模块110可以是一个或多个模拟组件和一个或多个数字组件的组合。

多个神经元102可以被配置为,被训练以生成所述周期值,以最小化所述周期值与多个训练向量中的每个训练向量的训练周期值之间的误差。例如,多个神经元102可以被预先配置为已经被训练成使用本文描述的技术来生成周期值。在一些示例中,多个神经元102可能尚未被训练并且可以配置为使用本文描述的技术来执行训练以生成周期值。例如,多个神经元102可以是未训练的,并且可以被配置为执行训练以生成周期值,从而针对多个训练向量中的每个训练向量使周期值与训练周期值之间的误差最小化。

在一些系统中,高性能硬件(例如,使用与系统100分立的图形处理单元)可以训练神经网络电路模块110的多个神经元102。在这样的系统中,人类用户可以生成一组训练向量。例如,人类用户可以针对一组训练向量中的每个训练向量确定针对目标速度、电流值和速度值的训练周期值。在一些情况下,人类用户可以以期望的负载运行电机106。在这种情况下,人类用户可以确定电机106处的操作转子速度值和电机106处的操作电流值。人类用户然后可以驱动电机电路模块112以输出训练周期值。在该示例中,人类用户可以确定(例如,测量)在电机106处的所得转子速度。人类用户可以生成单个训练向量,该单个训练向量包括训练周期值、作为速度值的操作转子速度值、作为电流值的操作电流值、以及作为目标速度的所得速度值。在该示例中,人类用户可以选择不同的启动电机速度、电机106处的不同负载、不同的周期值和/或其它参数以生成整组的训练向量。利用表示所述一组训练向量的数据库,人类用户可以使用所有训练向量来批量训练多个神经元102。以此方式,高性能硬件可以使用人类生成的训练向量来训练多个神经元102。然而,这样的系统可能依赖于人类交互和/或高性能硬件,这可能增加实现电机控制器的成本。

根据本公开的技术,系统100可以被配置为已经生成多个训练向量。例如,系统100可以在没有人类交互的情况下已经选择不同的启动电机速度、电机106处的不同负载、不同的周期值和/或其它参数以生成所述一组训练向量中的训练向量。在一些示例中,系统100可以在没有人类交互的情况下被配置为选择不同的启动电机速度、电机106处的不同负载、不同的周期值和/或其它参数以生成所述一组训练向量中的训练向量。

神经网络电路模块110可以已经训练或者可以被配置为实时训练多个神经元102,而不是生成包括所有信息的数据的大数据库以训练多个神经元102。例如,神经网络电路模块110可以将电机106驱动至训练周期值,并且使用所得的转子速度作为目标速度来生成训练向量。在该示例中,神经网络电路模块110可以使用训练向量来实时训练多个神经元102。即,神经网络电路模块110可以在不等待生成附加训练向量的情况下训练多个神经元102。

系统100可以重新使用数据(例如,速度值、电流值、周期值或其它值)来生成附加训练向量。即,系统100可以使用先前训练向量的信息(例如,速度值、电流值、周期值或其它值)来生成新的训练向量,和/或重新使用被分配来存储先前训练向量的存储器以用于存储第一训练向量。以此方式,与使用多个训练向量来批量训练神经元的系统相比,系统100可以以更少的存储器存储消耗来操作。

图2是示出根据本公开的一个或多个技术的被配置为使用神经网络电路模块来驱动电机206的示例性第二系统200的框图。多个神经元202、电机电路模块212和电机206可以包括图1的多个神经元102、电机电路模块112和电机106的示例。如图所示,图2的示例还包括最大速度差量电路模块203、电流电路模块220和速度电路模块222。

最大速度差量电路模块203可以被配置为接收参考速度,并且基于参考速度、在特定时间与电机206相关联的速度值以及在特定时间之前出现的一个或多个先前时间与电机206相关联的一个或多个先前速度值来确定目标速度。例如,最大速度差量电路模块203可以生成目标速度作为W1*ω(t)+W2*ω(t-1)+W3*ω(t-2),其中W1是第一权重值,W2是第二权重值,W3是第三权重值,ω(t)是在特定时间(t)的速度值,ω(t-1)是在第一先前时间的速度值,并且ω(t-2)是在第二先前时间的速度值。例如,最大速度差量电路模块203可以生成目标速度作为0.5*ω(t)+0.3*ω(t-1)+0.1*ω(t-2)。

电流电路模块220可以被配置为确定在特定时间(i(t))、第一先前时间(i(t-1))和第二先前时间(i(t-2))的电流值。电流电路模块220可以包括例如霍尔效应传感器,其被配置为生成与电机206的转子或定子处的磁通密度成比例的电压。电流值(例如,i(t)、i(t-1)、i(t-2)或其它电流值)可以与由电机206生成的转矩成比例。例如,电流电路模块220(或系统200的其它电路模块)可以被配置为将在电机206处测量的电流与预定因子(例如,转矩常数)相乘,以确定由电机206生成的转矩。虽然图2的示例存储三个电流值,但是其它示例可以存储更少的电流值(例如,一个电流值或两个电流值)或存储更多的电流值(例如,多于三个电流值)。

速度电路模块222可以被配置为确定在特定时间(ω(t))、第一先前时间(ω(t-1))和第二先前时间(ω(t-2))的速度值。速度电路模块222可以测量在电机206处并且在特定时间的反电磁力(BEMF)电压。在该示例中,速度电路模块222可以被配置为基于反电磁力电压确定在特定时间与电机相关联的速度值。例如,速度电路模块222(或系统200的其它电路模块)可以被配置为将电机206处的测得的BEMF电压与预定因子(例如,EMF常数)相乘以生成速度值。虽然图2的示例存储三个速度值,但是其它示例可以存储更少的速度值(例如,一个速度值或两个速度值)或存储更多的速度值(例如,多于三个速度值)。

根据本公开的技术,多个神经元202可以基于最大速度差量电路模块203输出的目标速度、一个或多个电流值(例如,i(t)、i(t-1)、i(t-2)和/或其它电流值)、一个或多个速度值(例如,ω(t)、ω(t-1)、ω(t-2)和/或其它速度值)以及一个或多个先前的周期值(例如,D(t)、D(t-1)、D(t-2)和/或其它周期值)来生成周期值。例如,多个神经元202可以基于在特定时间(例如,t)与电机206相关联的速度值(例如,ω(t))并且基于在特定时间(例如,t)与电机206相关联的电流值(例如,i(t))来生成周期值。

在一些示例中,多个神经元202可以基于在特定时间(例如,t)之前出现的先前时间(例如,t-1)处与电机206相关联的先前速度值(例如,ω(t-1))和/或在该先前时间(例如,t-1)与电机206相关联的先前电流值(例如,i(t-1))来生成周期值。在一些示例中,多个神经元202可以基于在特定时间(例如,t)之前并且在先前时间(例如,t-1)之前出现的先前时间(例如,t-2)处与电机206相关联的第二先前速度值(例如,ω(t-2))和/或在该第二先前时间(例如,t-2)与电机206相关联的第二先前电流值(例如,i(t-2))来生成周期值。

在一些示例中,多个神经元202可以基于以下一项或多项来生成周期值:在特定时间(例如,t)之前出现的先前时间(例如,t-1)与电机206相关联的第一先前周期值(例如,D(t-1))、在特定时间(例如,t)之前并且在先前时间(例如,t-1)之前出现的先前第二时间(例如,t-2)与电机206相关联的第二先前周期值(例如,D(t-2))和/或在特定时间(例如,t)之前、在先前时间(例如,t-1)之前并且在先前第二时间(例如,t-2)之前出现的先前第三时间(例如,t-3)与电机206相关联的先前第三周期值(例如,D(t-3))。

图3是示出根据本公开的一个或多个技术的被配置为训练多个神经元302的示例系统300的框图。多个神经元302、电机电路模块312和电机306可以是图1的多个神经元102、电机电路模块112和电机106的示例。

根据本公开的技术,神经网络电路模块可以被配置为:对于多个训练向量中的每个训练向量,将训练周期值输出到电机电路模块312,并且已经确定与电机306相关联的当训练周期值已经被输出到电机电路模块312时出现的所得速度值。例如,当多个神经元302被预先训练时,神经网络电路模块(例如,图1的神经网络电路模块110)可能已经存储了第一先前周期值(例如,D(t-1))、先前电流值(例如,i(t-1))和先前速度值(例如,ω(t-1))。在该示例中,神经网络电路模块可以已经例如使用图2的速度电路模块222确定了所得速度值(例如,ω(t))。

在该示例中,系统300可能已经生成第一训练向量,以包括作为训练周期值的先前周期值、作为电流值的先前电流值、作为当前速度值的先前速度值以及作为目标速度的所得速度值。在图3的示例中,系统300可能已经生成第一训练向量以包括第二先前电流值(例如,i(t-2))或第二先前速度值(例如,ω(t-2))中的一个或多个。系统300可能已经生成第一训练向量以包括第三先前电流值(例如,i(t-3))或第三先前速度值(例如,ω(t-3))中的一个或多个。系统300可能已经生成第一训练向量以包括第二先前周期值(例如D(t-2))、第三先前周期值(例如D(t-3))或第四先前周期值(例如D(t-4))中的一个或多个。

系统300可以被配置为基于电机306的目标速度值的范围已经生成多个训练向量。例如,神经网络电路模块可能已经生成了多个训练向量,以帮助确保电机306在电机306的速度值的预定范围内。以这种方式,神经网络电路模块可以被配置为:已经将电机306驱动到速度值以防止对电机306的损坏,和/或表示电机306的特定应用的预期速度值的范围。

系统300可以被配置为基于电机306的、已经基于转矩值范围确定的目标电流值的范围已经生成多个训练向量。例如,神经网络电路模块可以被配置为使用预定因子(例如,转矩常数)将接收到的转矩值范围转换为电流值范围。以这种方式,系统300可以被配置为:已经驱动电机306以防止对电机306的损坏,和/或表示电机306的特定应用的预期转矩值的范围。

系统300可以被配置为已经训练多个神经元302,以最小化该周期值与多个训练向量中的每个训练向量的训练周期值之间的误差。例如,系统300可以使用第一训练向量已经训练多个神经元302。在该示例中,系统300可以被配置为已经生成第二训练向量。例如,系统300可以有效地“移位”电流值、速度值和/或周期值,并且重复用于生成第一训练向量的过程。例如,系统300可能已经使用第一训练向量的第一先前周期值(例如,D(t-1))作为第二训练向量的第二先前周期值(例如,D(t-2)),可能已经使用第一训练向量的先前电流值(例如,i(t-1))作为第二训练向量的第二先前电流值(例如,i(t-2)),可能已经使用第一训练向量的先前速度值(例如,ω(t-1))作为第二训练向量的第二先前速度值(例如,ω(t-2)),等等。以此方式,与使用多个训练向量来批量训练神经元的系统相比,系统300可以以更少的存储器存储消耗来操作。

虽然以上示例涉及多个神经元302被预先配置,但是在一些示例中,多个神经元302可以是未训练的,并且系统300可以实时训练多个神经元302。例如,系统300可以被配置为生成多个训练向量,并且训练多个神经元302以生成周期值,从而针对多个训练向量中的每个训练向量使周期值与训练周期值之间的误差最小化。

在一些示例中,神经网络电路模块可以确定在第一先前时间(例如,t-1)与电机306相关联的先前速度值(例如,ω(t-1)),确定在第一先前时间与电机306相关联的先前电流值(例如,i(t-1)),确定在第一先前时间(例如,t-1)之前出现的第二先前时间(例如,t-2)的电机306的先前周期值(例如,D(t-2)),并且在先前时间之后出现的当前时间(例如,t)将训练周期值(例如,D(t-1))输出至电机电路模块312。在这些示例中,神经网络电路模块可以确定与电机306相关联的所得速度值(例如,ω(t)),该所得速度值在训练周期值(例如,D(t-1))已经被输出到电机电路模块312时出现。在该示例中,神经网络电路模块被配置为训练多个神经元302,以基于先前速度值(例如,ω(t-1))、先前电流值(例如,i(t-1))、先前周期值(例如,D(t-2))、以及所得速度值(例如,ω(t))来生成周期值,以与训练周期值(例如,D(t-1))相对应。

在图3的示例中,系统300可以生成训练向量以包括第二先前电流值(例如,i(t-2))或第二先前速度值(例如,ω(t-2))中的一个或多个。系统300可以生成训练向量以包括第三先前电流值(例如,i(t-3))或第三先前速度值(例如,ω(t-3))中的一个或多个。系统300可以生成训练向量以包括第二先前周期值(例如D(t-2))、第三先前周期值(例如D(t-3))或第四先前周期值(例如D(t-4))中的一个或多个。在一些示例中,系统300可以生成训练向量以省略先前周期值(例如,D(t-2))。

系统300可以被配置为基于电机306的目标速度值的范围生成多个训练向量。例如,系统300可以生成多个训练向量以帮助确保电机306在电机306的速度值的预定范围内。以这种方式,系统300可以被配置为:将电机306驱动到速度值以防止对电机306的损坏,和/或表示电机306的特定应用的预期速度值的范围。

系统300可以被配置为基于电机306的目标电流值的范围生成多个训练向量,已经基于转矩值范围确定所述目标电流值。例如,系统300可以被配置为使用预定因子(例如,转矩常数)将接收到的转矩值范围转换为电流值范围。以这种方式,系统300可以被配置为:驱动电机306以防止对电机306的损坏,和/或表示电机306的特定应用的预期转矩值的范围。

虽然图3的示例示出三个电流值、四个速度值和三个周期值,但是在一些示例中,多个神经元312可以使用不同的值。例如,多个神经元302可以使用一个、两个、三个或多于四个速度值。在一些示例中,多个神经元302可以使用一个、两个或多于三个电流值。多个神经元302可以使用零个、一个、两个或多于三个周期值。在一些情况下,多个神经元302也可以使用未示出的附加信息来生成周期值。

图4是说明根据本公开的一个或多个技术的示例多个神经元的框图。如图所示,输入层430可以包括这样的输入层,其被配置为接收目标速度、一个或多个速度值(例如,ω(t)、ω(t-1)、ω(t-2)和/或其它速度值)、一个或多个电流值(例如,i(t)、i(t-1)、i(t-2)和/或其它电流值)以及一个或多个周期值(例如,D(t-1)、D(t-2)、D(t-3)和/或其它周期值)。在一些示例中,输入层430可以包括更少的输入。例如,输入层430可以省略先前的周期值。在一些情况下,输入层403可以仅包括目标速度、一个速度值和一个电流值。

在图4的示例中,隐藏层432包括七个神经元。然而,在一些示例中,隐藏层432可以包括更少的神经元(例如,少于七个神经元)或更多的神经元(例如,多于七个神经元)。隐藏层432的每个神经元可以与被示为b1、b2、...b7的权重相关联。隐藏层432的每个神经元可以基于输入层430生成输出。在该示例中,输入层430的每个神经元的输出乘以相应权重以生成加权输出值。输出层434可以基于由输入层430的每个神经元输出的加权输出值的和来输出周期值。在该示例中,输出层434包括一个节点(例如,用于周期值),然而,在其它示例中,输出层434可以包括一个或多个附加节点。

图5是示出根据本公开的一个或多个技术的用于训练多个神经元的示例设置的框图。第一电路板546可以是图1的多个神经元102、电机电路模块112、电源101和一组开关元件114的组合的示例。

第一电路板546可以是使用评估板形成的电机控制电路模块的示例,评估板包括具有微控制器的片上系统、使用神经网络电路模块以驱动驱动电机506的一组开关元件(例如,功率MOSFET)。在图5的示例中,神经网络可以在存储于第一电路板546的微控制器的存储器中的嵌入式软件中实现。用于实现神经网络的嵌入式软件可以包括用于训练和执行多个神经元的库。驱动电机506可以是图1的电机106的示例。具有电阻器板542的第二电路板544可以被配置为驱动负载电机540(例如,DC电机)以充当可变机械负载。

根据本公开的技术,第一电路板546的多个神经元可以被配置为被训练以生成周期值,以最小化周期值与多个训练向量中的每个训练向量的训练周期值之间的误差。第一电路板546可以包括将周期值转换成脉宽调制占空比的PWM生成器。第一电路板546的所述一组开关元件可以使用脉宽调制占空比来控制(例如,驱动)驱动电机506。

第二电路板544可以被配置为驱动包括负载电机540以向驱动电机506施加可变机械负载,而不是在恒定负载处训练第一电路板546的多个神经元,其中负载电机包括机械地耦合到驱动电机506的转子上的转子。例如,第二电路板544可以选择(例如,接通)电阻器板542的与预定的第一机械负载相对应的第一组电阻器。在该示例中,当第二电路板544选择第一组电阻器用于预定的第一机械负载时,第一电路板546可以生成第一训练向量。在该示例中,第二电路板544可以选择(例如,接通)电阻器板542的与大于或小于预定的第一机械负载的预定的第二机械负载相对应的第二组电阻器。在该示例中,当第二电路板544选择第二组电阻器用于预定的第二机械负载时,第一电路板546可以生成第二训练向量。以这种方式,当驱动电机506在使用中时(例如,机械地耦合到未预先配置的变化负载),多个神经元可以被训练以考虑驱动电机506处的不同负载。

图6是示出根据本公开的一个或多个技术的用于训练多个神经元的示例电阻器板642的概念图。电阻器板642可以是图5的电阻器板542的示例。如图所示,电阻器板642包括开关元件660A-660G(统称为“开关元件660”)。仅出于示例的目的,关于图6讨论图5的第二电路板544。

第二电路板544可以接通第一组开关元件660以生成预定的第一机械负载。例如,第二电路板544可以接通开关元件660A-660C并断开开关元件660D-660G以生成第一电阻值。在该示例中,第二电路板544可以使用第一电阻值驱动负载电机540以提供预定的第一机械负载。第二电路板544可以接通开关元件660A并断开开关元件660B-660G以生成第二电阻值。在该示例中,第二电路板544可以使用第二电阻值驱动负载电机540以提供预定的第二机械负载。以这种方式,电阻器板642可以帮助提供电阻值以利用预先配置的可变机械负载来驱动负载电机540。

图7是示出根据本公开的一个或多个技术的被配置为使用多个第一神经元和多个第二神经元来驱动电机的示例第一系统的框图。神经网络电路模块710、电机电路模块712、一组开关元件714、电源701和电机706可以是图1的神经网络电路模块110、电机电路模块112、一组开关元件114、电源101和电机106的示例。

图7的系统700可以是自适应系统并且可以包括两个神经网络(例如,多个第一神经元702A和多个第二神经元702B)。多个第一神经元702A可以被训练并且引入到电机调节回路中。多个第一神经元702A可以从电机706接收输入信号(例如,一个或多个速度值、一个或多个电流值和/或其它值)并且生成第一周期值。电机电路模块712可以基于第一周期值生成数字调制信号(例如,PWM占空比)以控制电机706。多个第二神经元702A可以包括多个第一神经元702A的副本。

如下面进一步详细描述的,多个第一神经元702A可以接收目标速度作为输入。在一些示例中,多个第一神经元702A可以接收值(例如,电流值、速度值和/或其他值)和历史值(例如,一个或多个先前的电流值、一个或多个先前的速度值、一个或多个先前的周期值和/或其他值)。多个第二神经元702A可以接收延迟的相同值(例如,一个或多个电流值、一个或多个速度值、一个或多个周期值和/或其他值)。然而,多个第二神经元702A可以接收所得速度(例如,基于电机BEMF电压)而非目标速度。

神经网络电路模块710可以使用多个第一神经元702A和多个第二神经元702B的输出的差量(例如,差值)作为误差测量,该误差测量可以用于适配不在调节回路中的多个第二神经元702B。当误差足够低时,多个第二神经元702B与多个第一神经元702A交换,并且多个第二神经元702A的副本可以以与之前相同的方式再次适配。例如,神经网络电路模块710可以将多个第二神经元702B设置为多个第一神经元702A,并且将多个第一神经元702A设置为多个第二神经元702B。利用该实现方式,系统700可以连续地调节和评估误差。神经网络电路模块710可以评估调节背景中的误差。例如,神经网络电路模块710可以评估误差而不中断多个第一神经元702A对电机706的调节。以此方式,神经网络电路模块710可以基于实际设置与理想设置之间的误差(例如,差)来优化和适配,与使用编程的电机控制器和/或静态实现的神经网络的电机控制器相比,这可以提高系统700的精度。

神经网络电路模块710可以包括多个第一神经元702A和多个第二神经元702B。多个第一神经元702A可以是图1的多个神经元102的示例。多个第二神经元702B可以类似于多个第一神经元702A。例如,多个第一神经元702A和多个第二神经元702B可以包括输入层,其被配置为接收目标速度、一个或多个速度值、一个或多个电流值、或一个或多个先前周期值中的一个或多个。多个第一神经元702A和多个第二神经元702B可以包括具有少于七个神经元、多于七个神经元、或其它数量的神经元的隐藏层。

多个第一神经元702A可以被配置为基于目标速度生成第一周期值。多个第一神经元702A可以被配置为还基于附加值来生成第一周期值,所述附加值例如是一个或多个速度值、一个或多个电流值、一个或多个周期值或其它值。

电机电路模块712可以被配置为基于第一周期值控制一组开关元件714以驱动电机706。例如,电机电路模块712可以包括被配置为基于周期值(例如,占空比值)生成数字调制信号的电路模块。电机电路模块712可以被配置为基于数字调制信号驱动一组开关元件714,以在至少第一开关状态和第二开关状态下操作。在第一开关状态期间,一组开关元件714可以电耦合电机706的第一端子和电源701的第一电源端子(例如,正端子或负端子),并且电耦合电机的第二端子和电源701的第二电源端子(例如,负端子或正端子)。在第二开关状态期间,一组开关元件714可以电耦合电机的第二端子和电源701的第一电源端子(例如,正端子或负端子),并且可以电耦合电机的第一端子和电源701的第二电源端子(例如,负端子或正端子)。

一些系统可以在制造时和/或在最初将电机控制器置于使用中时训练神经元。然而,系统的各种参数(例如,机械、电和/或其它参数)可以在系统处于使用中时变化。参数的这种变化可以随着时间的推移降低神经元的精度。

根据本公开的技术,神经网络电路模块710可以不是静态的(例如,维持神经元的初始训练)。相反,神经网络电路模块710可以被配置为在系统700处于使用中时进行适配和“即时学习”。当系统700由于机械变化或元件变化而变化时,神经网络电路模块710可以被配置为从新设置的特性中学习,而同时神经网络电路模块710控制例如电机706处的速度或转矩。例如,神经网络电路模块710可以被配置为将实际设置(例如,对应于使用中的系统700)与理想设置(例如,对应于制造时和/或最初置于使用中时的系统700)进行比较。本文描述的技术可以配置神经网络电路模块710以基于实际设置与理想设置之间的误差(例如,差)来优化和适配,与使用编程的电机控制器和/或静态实现的神经网络的电机控制器相比,这可以提高系统700的精度。

多个第二神经元702B可以被配置为训练多个第二神经元702B,以基于当电机电路模块712已经基于第一周期值控制一组开关元件714以驱动电机706时出现的电机706的所得速度值(例如,ω(t)),生成第二周期值,以最小化第二周期值与第一周期值之间的差。例如,神经网络电路模块712可以确定以下一项或多项:在第一先前时间(例如,t-1)与电机706相关联的先前速度值(例如,ω(t-1))、在第一先前时间与电机706相关联的先前电流值(例如,i(t-1))、在第二先前时间(例如,t-2)的电机706的先前周期值(例如,D(t-2)),其中第二先前时间出现在第一先前时间(例如,t-1)之前。在该示例中,多个第一神经元702A可以在先前时间之后出现的当前时间(例如,t)向电机电路模块712输出第一周期值(例如,D(t-1))以驱动电机706。在该示例中,神经网络电路模块710可以确定与电机706相关联的所得速度值(例如,ω(t)),该所得速度值在第一周期值(例如,D(t-1))已经被输出到电机电路模块712以驱动电机706时出现。在该示例中,神经网络电路模块712可以被配置为训练多个第二神经元702B,以基于所得速度值(例如ω(t))生成第二周期值,以使第二周期值(例如,由多个第二神经元702B输出的周期值)与第一周期值(例如,D(t-1))之间的差最小化。

以这种方式,多个第二神经元702B可以实时训练,并且同时系统700在使用中操作,以便帮助考虑系统700中的机械变化、电变化和/或其它变化。例如,神经网络电路模块710可以适配并学习如何在更换电机706时、在电机706的一个或多个球环干涸时、在电机706处出现机械磨损时、和/或响应于系统700中的其它变化进行最佳调节。神经网络电路模块710可以适配并且学习如何响应于系统700中的改变而自主地进行最优调节(例如,没有人类用户交互和/或没有软件调节)。

图8是示出根据本公开的一个或多个技术的被配置为训练多个第二神经元802B的示例系统800的框图。多个第一神经元802A、电机电路模块812和电机806可以是图1的多个神经元102、电机电路模块112和电机106的示例。最大速度差量电路模块803、电流电路模块820和速度电路模块822可以是图2的最大速度差量电路模块203、电流电路模块220和速度电路模块222的示例。多个第二神经元802B可以是图7的多个第二神经元702B的示例。多个第一神经元802A和多个第二神经元802B在本文中可以统称为神经网络电路模块802,该神经网络电路模块可以包括除多个第一神经元802A和多个第二神经元802B外的电路模块。

虽然多个第一神经元802A可以实时生成第一周期值,但是为了便于描述,前面的示例将多个第一神经元802A称为在时间't-1'生成第一周期值,并且将所得速度值(例如ω(t))称为在时间't'出现。当电机电路模块812已经基于第一周期值控制一组开关元件814以驱动电机806时,速度电路模块822可以测量电机806处的反电磁力电压,并且基于反电磁力电压确定电机806的所得速度值(例如,ω(t))。

多个第一神经元802A可以基于最大速度差量电路模块803输出的目标速度来生成第一周期值(例如,D(t-1))。在一些示例中,多个第一神经元802A可以基于目标速度并且还基于以下一项或多项来生成所述第一周期值:在第一时间(例如,t-1)的电机806的第一速度值(例如,ω(t-1)),第一时间出现在电机电路模块812已经基于第一周期值控制一组开关元件814之前;在第一时间(例如,t-1)的电机806的第一电流值(例如,i(t-1));或由电机电路模块812使用的用于在第一时间(例如,t-1)之前出现的第二时间(例如,t-2)控制一组开关元件814的第一先前周期值(例如,D(t-2))。在一些示例中,多个第一神经元802A可以基于以下一项或多项来生成第一周期值:在第二时间(例如,t-2)的电机806的第二速度值(例如,ω(t-2)),该第二时间出现在第一时间(例如,t-1)之前;在第二时间(例如,t-2)的电机806的第二电流值(例如,i(t-2));或由电机电路模块812使用的用于在第二时间(例如,t-2)之前出现的第三时间(例如,t-3)控制一组开关元件814的第二先前周期值(例如,D(t-3))。

在一些示例中,神经网络电路模块802(例如,多个第一神经元802A和多个第二神经元802B)可以被配置为使用第一周期值来训练多个第二神经元802B。例如,神经网络电路模块802可以被配置为训练多个第二神经元802B,以基于所得速度值(例如,ω(t))生成第二周期值(例如,D'(t-1)),以最小化第二周期值(例如,多个第二神经元802B输出的周期值)与第一周期值(例如,D(t-1))之间的差(例如,误差)。第二周期值(例如,由多个第二神经元802B输出的周期值)与第一周期值(例如,D(t-1))之间的差(例如,误差)被输入到神经网络电路模块802,并且由神经网络电路模块802使用以适配多个第二神经元802B。

在一些示例中,多个第二神经元802B可以基于所得速度值(例如,ω(t))并且还基于以下各项中的一项或多项来生成第二周期值:一个或多个电流值(例如,i(t-1)、i(t-2)、i(t-3)和/或其它电流值)、一个或多个速度值(例如,ω(t-1)、ω(t-2)、ω(t-3)和/或其它速度值)以及一个或多个先前周期值(例如,D(t-2)、D(t-3)、D(t-4)和/或其它周期值)。

例如,多个第二神经元802B可以基于所得速度值(例如,ω(t))并且还基于以下一项或多项来生成第二周期值:在第一时间(例如,t-1)的电机806的第一速度值(例如,ω(t-1)),该第一时间出现在电机电路模块812已经基于第一周期值控制一组开关元件814之前;在第一时间(例如,t-1)的电机806的第一电流值(例如,i(t-1));或由电机电路模块812使用的用于在第一时间(例如,t-1)之前出现的第二时间(例如,t-2)控制一组开关元件814的第一先前周期值(例如,D(t-2))。在一些示例中,多个第二神经元802B可以基于以下一项或多项来生成第二周期值:第二时间(例如,t-2)的电机806的第二速度值(例如,ω(t-2)),该第二时间出现在第一时间(例如,t-1)之前;在第二时间(例如,t-2)的电机806的第二电流值(例如,i(t-2));或由电机电路模块812使用的用于在第二时间(例如,t-2)之前出现的第三时间(例如,t-3)控制一组开关元件814的第二先前周期值(例如,D(t-3))。

神经网络电路模块802可以被配置为适配系统800中的变化。例如,响应于确定第二周期值与第一周期值之间的差小于误差阈值(例如,预先配置的阈值、确定的阈值和/或其他误差阈值),神经网络电路模块被配置为将多个第二神经元802B复制到多个第一神经元802A中,使得当所得速度值对应于目标速度时,多个第一神经元生成第一周期值以对应于由多个第二神经元802B生成的第二周期值。例如,神经网络电路模块被配置为,利用多个第二神经元802B的隐藏层的对应权重的第二值,替换多个第一神经元802A的隐藏层(例如,图4的b1、b2,…,b7)的权重的第一值。

图9是根据本公开的一个或多个技术的用于训练多个第二神经元的流程图。下面仅出于示例的目的在图1-8的上下文的范畴中描述图9的示例操作。神经网络电路模块710可以训练多个第一神经元702A(902)。例如,神经网络电路模块710可以根据图3和/或图5中描述的技术来训练多个第一神经元702A。例如,当预定的可变机械负载被施加到电机706时,神经网络电路模块710可以训练多个第一神经元702A。在一些示例中,预定的可变机械负载可以由负载电机(例如,负载电机540)使用电阻器板(例如,电阻器板542)来施加。例如,接通的电阻器的每个不同组合可以对应于不同的预定的可变机械负载。在一些示例中,多个第二神经元702B可以被配置为在向电机706施加预定的可变机械负载时避免训练。

神经网络电路模块710可以将多个第一神经元702A复制到多个第二神经元702B(904)。例如,神经网络电路模块710可以被配置为,利用多个第二神经元702B的隐藏层的对应权重的第二值,替换多个第一神经元702A的隐藏层(例如,图4的b1、b2,…,b7)的权重的第一值。

神经网络电路模块710执行调节(906)。例如,多个第一神经元702A可以基于目标速度生成第一周期值。多个第一神经元702A可以被配置为还基于附加值来生成第一周期值,所述附加值例如是一个或多个速度值、一个或多个电流值、一个或多个周期值或其它值。

神经网络电路模块710可以计算多个第一神经元702A和多个第二神经元702B之间的误差(908)。例如,神经网络电路模块710可以计算由多个第一神经元702A在先前时间(例如,t-1)生成的第一占空比与由多个第二神经元702B在特定时间(例如,t)生成的第二占空比之间的差。

神经网络电路模块710可以基于该误差来适配多个第二神经元702B(910)。例如,多个第二神经元702B可以被配置为,当预定的可变机械负载未被施加到电机时训练多个第二神经元702B,以基于当电机电路模块712已经基于第一周期值控制一组开关元件714以驱动电机706时出现的电机706的所得速度值生成第二周期值,以最小化第二周期值与第一周期值之间的差。例如,多个第二神经元702B可以被配置为,在多个第一神经元702A基于目标速度生成第一周期值时并且在电机706耦合到变化的和未知的负载并且未耦合到负载电机时期间进行训练。

神经网络电路模块710可以确定第二周期值与第一周期值之间的差是否小于误差阈值(例如,预先配置的阈值、确定的阈值和/或其他误差阈值)(912)。响应于确定第二周期值与第一周期值之间的差不小于误差阈值(在912的“否”),神经网络电路模块710可以进行到步骤908。然而,响应于确定第二周期值与第一周期值之间的差小于误差阈值(912的“是”),神经网络电路模块710可以将多个第二神经元702B复制到多个第一神经元702A并且进行到步骤904(914)。例如,神经网络电路模块710可以将多个第二神经元702B复制到多个第一神经元702A,使得当所得速度值对应于目标速度时,多个第一神经元生成第一周期值以对应于由多个第二神经元702B生成的第二周期值。例如,神经网络电路模块710可以被配置为,利用多个第二神经元702B的隐藏层的对应权重的第二值,替换多个第一神经元702A的隐藏层(例如,图4的b1、b2、…、b7)的权重的第一值。

图10是示出根据本公开的一个或多个技术的在训练期间的均方误差的曲线图。仅出于示例的目的,参考图1-9讨论图10。图10的横坐标轴是时间,并且图10的纵坐标轴是目标速度与在多个神经元102的训练期间在电机106处的所得速度值的均方误差1002。如图所示,神经网络电路模块110被配置为训练多个神经元102以充分地减小训练期间的均方误差。

图11是说明根据本公开的一个或多个技术的BEMF电压跟踪的曲线图。仅出于示例的目的,参考图1-10讨论图11。图11的横坐标轴是以秒为单位的时间,并且图11的纵坐标轴是目标速度的第一BEMF电压1102和在电机106处的所得速度值的第二BEMF电压1104。如图所示,神经网络电路模块110被配置为将电机106处的转子速度严格调节到目标速度。

图12是说明根据本公开的一个或多个技术的在负载改变期间的BEMF电压跟踪的曲线图。仅出于示例的目的,参考图1-11讨论图12。图12的横坐标轴是以秒为单位的时间,并且图12的纵坐标轴是目标速度的第一BEMF电压1202和在电机106处的所得速度值的第二BEMF电压1204。如图所示,神经网络电路模块710被配置为利用多个第一神经元702A将电机706处的转子速度严格调节到目标速度,直到在大约8秒处出现负载变化。在8秒处,神经网络电路模块710可以连续训练和适配多个第二神经元702B,该第二神经元被复制到多个第一神经元702A中以更严格地调节电机106处的所得速度值的第二BEMF电压1204,以对应于目标速度的第一BEMF电压1202。在约13秒处,出现另一负载变化,并且神经网络电路模块710可以连续地训练和适配多个第二神经元702B,该第二神经元被复制到多个第一神经元702A中,以更严格地调节在电机106处的所得速度值的第二BEMF电压1204,以对应于目标速度的第一BEMF电压1202。以这种方式,神经网络电路模块710可以优化和适配,以考虑系统700(例如,电机706)中的变化,与使用编程的电机控制器和/或静态实现的神经网络的电机控制器相比,这可以提高系统700的精度。

图13是根据本公开的一个或多个技术的使用神经网络电路模块驱动电机的流程图。仅出于示例的目的,参考图1-12讨论图13。多个神经元102可以基于目标速度、基于在特定时间与电机相关联的速度值、以及基于在特定时间与电机相关联的电流值来生成周期值(1302)。在一些示例中,多个神经元102可以被配置为,被训练以生成周期值,以最小化所述周期值与多个训练向量中的每个训练向量的训练周期值之间的误差。

在一些示例中,系统100可以被配置为已经生成多个训练向量。例如,系统100可以在没有人类交互的情况下已经选择不同的启动电机速度、电机106处的不同负载、不同的周期值和/或其它参数,以生成所述一组训练向量中的训练向量。在一些示例中,系统100可以在没有人类交互的情况下被配置为选择不同的启动电机速度、电机106处的不同负载、不同的周期值和/或其它参数,以生成所述一组训练向量中的训练向量。电机电路模块212可以基于该周期值控制一组开关元件114以驱动电机106(1304)。

图14是根据本公开的一个或多个技术的用于使用多个第一神经元和多个第二神经元来驱动电机的流程图。仅出于示例的目的,参考图1-13讨论图14。多个第一神经元702A可以基于目标速度生成第一周期值(1402)。在一些示例中,多个第一神经元702A可以被配置为还基于附加值来生成第一周期值,所述附加值例如是一个或多个速度值、一个或多个电流值、一个或多个周期值或其它值。

电机电路模块712可以基于该第一周期值控制一组开关元件714以驱动电机706(1404)。神经网络电路模块710可以训练多个第二神经元702B,以基于当电机电路模块712已经基于第一周期值控制一组开关元件714来驱动电机706时出现的电机706的所得速度值,生成第二周期值,以最小化第二周期值与第一周期值之间的差(1406)。

以下示例可以说明本公开的一个或多个方面。

示例1.一种用于驱动电机的装置,所述装置包括:神经网络电路模块的多个第一神经元,被配置为基于目标速度生成第一周期值;电机电路模块,被配置为基于第一周期值控制一组开关元件以驱动电机;以及神经网络电路模块的多个第二神经元,被配置为训练多个第二神经元,以基于当电机电路模块已经基于第一周期值控制所述一组开关元件驱动电机时出现的电机的所得速度值生成第二周期值,以最小化第二周期值与第一周期值之间的差。

示例2.根据示例1所述的装置,其中,响应于确定第二周期值与第一周期值之间的差小于误差阈值,所述神经网络电路模块被配置为将多个第二神经元复制到多个第一神经元中,使得当所得速度值对应于目标速度时,多个第一神经元生成第一周期值以对应于由所述多个第二神经元生成的第二周期值。

示例3.根据示例1-2的任何组合所述的装置,其中,为了生成第一周期值,所述多个第一神经元被配置为,还基于以下一项或多项来生成所述第一周期值:在第一时间的所述电机的第一速度值,所述第一时间出现在电机电路模块已经基于第一周期值控制所述一组开关元件之前;第一时间的电机的第一电流值;或由电机电路模块使用的用于在第一时间之前出现的第二时间控制所述一组开关元件的第一先前周期值;并且其中,为了生成第二周期值,所述多个第二神经元被配置为,还基于以下一项或多项来生成所述第二周期值:在第一时间的电机的第一速度值、在第一时间处的电机的第一电流值、或由电机电路模块使用的用于在第二时间控制所述一组开关元件的第一先前周期值。

示例4.根据示例3所述的装置,其中,为了生成第一周期值,所述多个第一神经元被配置为,还基于以下一项或多项来生成所述第一周期值:在第二时间的电机的第二速度值、在第二时间的电机的第二电流值、或由电机电路模块使用的用于在第二时间之前出现的第三时间控制所述一组开关元件的第二先前周期值;并且其中,为了生成第二周期值,所述多个第二神经元被配置为,还基于以下一项或多项来生成所述第二周期值:在第二时间的电机的第二速度值、在第二时间的电机的第二电流值、或者由电机电路模块使用的用于在第三时间控制所述一组开关元件的第二先前周期值。

示例5.根据示例1-4的任何组合所述的装置,其中,为了基于所述第一周期值控制所述一组开关元件以驱动所述电机,所述电机电路模块被配置为:基于所述第一周期值生成数字调制信号;并且基于所述数字调制信号驱动一组开关元件,以在至少第一开关状态和第二开关状态下操作,其中,在所述第一开关状态期间,所述一组开关元件电耦合电机的第一端子和第一电源端子并且电耦合电机的第二端子和第二电源端子,并且其中,在第二开关状态期间,所述一组开关元件电耦合电机的第二端子和第一电源端子并且电耦合电机的第一端子与第二电源端子。

示例6.根据示例1-5的任何组合所述的装置,其中,所述电机电路模块被配置为:当所述电机电路模块已经基于所述第一周期值控制所述一组开关元件以驱动所述电机时,测量所述电机处的反电磁力电压;并且基于所述反电磁力电压确定所述电机的所得速度值。

示例7.根据示例1-6的任何组合所述的装置,其中,所述电机电路模块被配置为:接收参考速度;并且基于参考速度、在特定时间与电机相关联的速度值以及在特定时间之前出现的一个或多个先前时间与电机相关联的一个或多个先前速度值,来确定目标速度。

示例8.根据示例1-7的任何组合所述的装置,其中,所述多个第一神经元已经被训练成生成所述第一周期值,以最小化所述第一周期值与多个训练向量中的每个训练向量的训练周期值之间的差,并且其中,该装置已经生成多个训练向量。

示例9.根据示例8所述的装置,其中,当神经网络训练多个第一神经元时,可变机械负载已经被施加到电机。

示例10.根据示例1-9的任何组合所述的装置,其中,所述电机包括DC无刷电机或DC励磁电机。

示例11.一种用于驱动电机的方法,所述方法包括:由神经网络电路模块的多个第一神经元基于目标速度生成第一周期值;由电机电路模块并且基于第一周期值控制一组开关元件以驱动电机;并且由神经网络电路模块训练神经网络电路模块的多个第二神经元,以基于当电机电路模块已经基于第一周期值控制所述一组开关元件驱动电机时出现的电机的所得速度值生成第二周期值,以最小化第二周期值与第一周期值之间的差。

示例12.根据示例11所述的方法,包括:响应于确定所述第二周期值与所述第一周期值之间的差小于误差阈值,由所述神经网络电路模块将所述多个第二神经元复制到所述多个第一神经元中,使得当所述所得速度值对应于所述目标速度时,所述多个第一神经元生成所述第一周期值以对应于由所述多个第二神经元生成的所述第二周期值;并且当在第二状态中操作时,由神经网络电路模块训练所述多个第一神经元,以基于当电机电路模块已经基于第二周期值控制所述一组开关元件以驱动所述电机时出现的电机的所得第二速度值生成第一周期值,以最小化所述第二周期值与所述第一周期值之间的差。

示例13.根据示例11至12的任何组合所述的方法,包括:其中,生成所述第一周期值包括还基于以下一项或多项来生成所述第一周期值:在第一时间的所述电机的第一速度值,所述第一时间出现在所述电机电路模块已经基于所述第一周期值控制所述一组开关元件之前;在第一时间的电机的第一电流值;或者由电机电路模块使用的用于在第一时间之前出现的第二时间控制所述一组开关元件的第一先前周期值;并且其中,生成第二周期值包括还基于以下一项或多项来生成所述第二周期值:在第一时间的电机的第一速度值、在第一时间的电机的第一电流值或由电机电路模块使用的用于在第二时间控制所述一组开关元件的第一先前周期值。

示例14.根据示例13所述的方法,其中,生成所述第一周期值包括还基于以下一项或多项来生成所述第一周期值:在第二时间的电机的第二速度值、在第二时间的电机的第二电流值、或由电机电路模块使用的用于在第二时间之前出现的第三时间控制所述一组开关元件的第二先前周期值;并且其中,生成所述第二周期值包括还基于以下一项或多项来生成所述第二周期值:在第二时间的电机的第二速度值、在第二时间的电机的第二电流值或由电机电路模块使用的用于在第三时间控制所述一组开关元件的第二先前周期值。

示例15.根据示例11-14的任何组合所述的方法,其中,基于所述第一周期值控制所述一组开关元件以驱动电机包括:基于所述第一周期值生成数字调制信号;并且基于所述数字调制信号驱动一组开关元件,以在至少第一开关状态和第二开关状态下操作,其中,在第一开关状态期间,所述一组开关元件电耦合电机的第一端子和电源的第一电源端子并且电耦合电机的第二端子和电源的第二电源端子,并且其中,在第二开关状态期间,所述一组开关元件电耦合电机的第二端子和第一电源端子并且电耦合电机的第一端子和第二电源端子。

示例16.根据示例11到15的任何组合所述的方法,包括:当所述电机电路模块已经基于所述第一周期值控制所述一组开关元件以驱动所述电机时,由所述电机电路模块测量所述电机处的反电磁力电压;并且由所述电机电路模块基于所述反电磁力电压确定所述电机的所得速度值。

示例17.根据示例11到16的任何组合所述的方法,包括:由所述电机电路模块接收参考速度;并且由所述电机电路模块基于参考速度、在特定时间与电机相关联的速度值以及在特定时间之前出现的一个或多个先前时间与电机相关联的一个或多个先前速度值,来确定目标速度。

示例18.根据示例11-17的任何组合所述的方法,其中,所述多个第一神经元已经被训练成生成所述第一周期值,以最小化所述第一周期值与多个训练向量中的每个训练向量的训练周期值之间的差,并且其中,用于驱动所述电机的装置已经生成多个训练向量。

示例19.一种用于驱动电机的装置,所述装置包括:电机电路模块,被配置为基于第一周期值控制一组开关元件以驱动电机;神经网络电路模块的多个第一神经元,被配置为:生成多个训练向量;当预定的可变机械负载被施加到所述电机时,训练所述多个第一神经元以生成所述第一周期值,从而针对所述多个训练向量中的每个训练向量来最小化所述第一周期值与所述训练周期值之间的差;并且基于目标速度生成第一周期值;以及神经网络电路模块的多个第二神经元,被配置为在预定的可变机械负载未被施加到电机时训练多个第二神经元,以基于当电机电路模块已经基于第一周期值控制所述一组开关元件驱动电机时出现的电机的所得速度值生成第二周期值,以最小化第二周期值与第一周期值之间的差。

示例20.根据示例19所述的装置,其中,所述多个第二神经元被配置为当预定的可变机械负载被施加到电机时停止训练。

在本公开中已经描述了各个方面。这些和其它方面在以下权利要求的范围内。

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

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!