一种基于遗传神经网络的无刷直流电机PID调速方法与流程

专利2022-06-30  107


本发明涉及电机控制技术领域电机控制技术领域,具体为一种基于遗传神经网络的无刷直流电机pid调速方法。



背景技术:

无刷直流电机是伴随着现代半导体技术尤其是微处理器的发展和高频低功耗开关器件的采用以及驱控方法的不断进步而快速发展出来的一种直流电机。与传统的异步电机、同步电机、有刷直流电机相比,无刷直流电机摆脱了异步电机的调速性能差,运行效率不高和同步电机的调速性能差以及有刷直流电机容易产生火花,结构复杂难于维修的缺点,同时具有运行效率高,稳定好,结构简单,易于维修以及有着良好的启动特性和调速性能的优点。由于这些突出的优点,无刷直流电机的应用前景是十分广泛的,可以称得上是最具有广泛研究的电机产品。

无刷直流电机系统由于是一个电,磁,热耦合的高度非线性的系统,因此存在着许多不确定的因素,难于建立出精确的数学模型,使得传统的一些控制技术难以实现高精度的速度伺服控制,比如在工业中用的最为广泛的pid控制。传统的pid控制技术是基于准确的线性模型,适应于输出和输入线性映射的控制控制系统,具有很强的鲁棒性,抗干扰的能力比较强,但是无法很好去适应无刷直流电机这种高度非线性耦合的复杂系统,不能对无刷直流电机的控制系统实现动态的参数在线调节,同时本身调节过程繁琐而复杂。

为了解决无刷直流电机的速度控制问题,目前许多的研究者做出了许多的探索和研究,其中以将现代智能算法带入电机的速度控制系统尤为突出(遗传算法,蚁群算法,bp神经网络)。人工神经网络不依赖于控制对象具体的数学控制模型,可以通过某种学习规则进行自学习,来逼近任意的非线性函数,在输入给定值的情况下可以得到最接近期望输出值。得益于bp神经网络结构简单,易于实现,能够借助本身模拟人脑神经元的分布式工作特点和自组织功能来逼近任意非线性的系统,因此这种控制方法可以不必依赖具体的无刷直流电机数学模型来对无刷直流电机进行控制。这种神经网络的控制算法被广泛的被用于无刷直流电机速度控制系统,来降低电机的负载波动,提高电机运行的可靠性。bp神经网络具有结构简单,可调整的参数多,可结合的训练算法多且可操作性好,但是也存在一些缺点,例如学习收敛较慢,不能保证收敛到全局最小点。在bp神经网络中初始选择的权值和阈值非常重要的。传统的bp神经网络在进行获取权值和阈值的初始值都是采用固定区间[-1,1]内的任意的值初始化,然后在后续的样本训练初步调整,借此获得适宜的权值和阈值,不过由于搜索空间过于大的问题,会使得神经网络的训练陷于局部极小值,无法获得较好的权值和阈值的分布。同时bp神经网络还存在一系列的缺点:1.神经网络算法收敛速度慢;2.神经结构选择不一;3.应用实例与网络规模矛盾;4.神经网络预测能力和训练能力矛盾;5.网络依赖给出的样本;6.鲁棒性性差。这些缺点使得这个能够满足非线性系统的良好的控制方法不能很好运用到无刷直流电机的速度控制系统,会致使控制器的可靠性降低,大大的影响了无刷直流电机的使用。



技术实现要素:

本发明的目的在于,提供一种基于遗传神经网络的无刷直流电机pid调速方法。本发明可以使pid控制器的控制状态更加稳定,能够有效的适应被控对象的非线性的状况。

本发明的技术方案:一种基于遗传神经网络的无刷直流电机pid调速方法,包括bp神经网络、pid控制器和无刷直流电机,所述pid控制器的输入端与bp神经网络的输出端相连接,pid控制器的输出端与无刷直流电机相连接;利用遗传算法优化bp神经网络的权值和阈值;所述bp神经网络的层数为三层,包括输入层、隐含层和输出层;其中输入层的节点数为2,隐含层的节点数为6,输出层的节点数为3;所述隐含层的阈值为,输出层的阈值为,输入层到隐含层的权值为,隐含层到输出层的权值为,其中{0≤≤2,0≤≤6,0≤≤3;,,};

其中,所述通过遗传算法优化bp神经网络的权值和阈值具体过程如下:

a、初始化遗传算法,建立遗传算法空间与问题空间的映射,将bp神经网络的各层节点之间的权值和各层的阈值映射成二进制排列的基因串,随机产生n个基因串的初始种群;

b、设置遗传算法的适应度函数:

其中,是bp神经网络输入输出的样本对,分别是第a个样本的第b个输出节点的期望输出与实际输出;

c、将适应度函数的幂标定法和选择操作法结合,得出期望生存模型;

具体地,所述基因串的适应度函数为,种群的规模为,则期望生存模型为:

其中,当=1,根据期望生存模型获得基因串的初始种群中每个个体在其子代中期望生存数目

生存数目:,

≧2时,则对基因串直接排序选择,若是<2时,则增加值使得后代的基因串总量不小于父代,再进行排序选择;

d、将期望生存模型进行交叉变异操作,得到交叉操作的概率p1和变异操作的概率p2,不断的重复上述的交叉变异操作,直到目标能量函数趋于稳定,此时停止进化,把此时的搜索空间作为bp神经网络优化的搜索空间,对适度值进行权值和阈值的解码,获取最优的的区间,然后定位出一个初始搜索空间,将这个初步定位的空间作为神经网络权值和阈值的搜索空间,利用大样本训练bp神经网络,然后使用测试样本检测bp神经网络训练的误差,从而逐渐的去调整权值和阈值的局部在该搜索空间中解出最优解,使得误差趋近0.001,最后将最优解时的权值和阈值作为bp神经网络的搜索权值和阈值;

再通过样本数据学习pid控制器的三个控制参数,最后利用bp神经网络进行pid控制器的输出调控,用于控制无刷直流电机的驱控系统的占空比,实现无刷直流电机的速度调节。

上述的基于遗传神经网络的无刷直流电机pid调速方法,所述bp神经网络通过样本学习pid控制器的三个控制参数的具体过程如下:

s1:输入样本的预处理:通过采样获得的样本数据,所述的样本数据为给定的速度的偏差值和偏差值变化率,然后在matlab中利用函数mapminmax函数进行归一化处理,使得样本数据的值处于[-1,1]之间:

输入向量样本:

期望的输出:

s2:bp神经网络的前向传播:将归一化处理后的数据导入bp神经网络进行计算,计算出输出层的输出,输出层的节点对应着pid控制器的三个控制参数,,

其中,bp神经网络输入层的输入:

bp神经网络隐含层输入,也就是输出层的输出:

为神经元,

bp神经网络隐含层的输出,也就是输出层的输入:

由于pid对应的三个控制参数是正数,所以选择非负的激活函数;

bp神经网络输出层的输入:

bp神经网络输出层的输出:

是输出层的激活函数;

得到的三个控制参数具体为:

s3:bp神经网络的反向传播:定义bp神经网络的误差-性能指标函数:

其中和分别指的是第个样本所对应的期望输出和实际输出,指的是第个样本的偏差值;

bp神经网络的各层按照梯度下降的方法来调节权值,并附加一个与上一个调整值相关使得搜索能够快速收敛的动量因子项;所述的动量因子项包括学习的速率和惯性系数

由样本得到隐含层到输出的权值:

式中,为样本时相对于上个样本的调整,

是误差函数相对与隐含层到输出层权值的偏导数,

由于上次权值对于本次权值变化的影响,需要加入惯性系数,此时权值调整为:

为状态变量(状态转移方程中的变量);

s4:根据修正好的权值,进行bp神经网络前向计算,直到满足误差性能指标函数,输出pid的三个参数。

前述的基于遗传神经网络的无刷直流电机pid调速方法,所述通过bp神经网络进行pid控制器的输出调控,用于控制无刷直流电机的驱控系统的占空比的具体过如下:所述pid控制器中pid模块是由比例单元p,积分单元i和微分单元d构成;根据偏差信号和bp神经网络输出的,,来获取pid控制器的控制信号;

为整个pid控制器的控制信号,为时间常量或者采样时间,是积分变量,是比例增益参数,是积分增益参数,是微分增益参数;

利用pid控制器的输出控制无刷直流电机的驱控系统的占空比,

用于实现无刷直流电机的速度调节。

与现有技术相比,本发明利用遗传算法优化bp神经网络的权值和阈值,再通过样本数据学习pid控制器的三个控制参数,最后利用bp神经网络进行pid控制器的输出调控,用于控制无刷直流电机的驱控系统的占空比,实现无刷直流电机的速度调节;本发明采用的基于遗传神经网络的无刷直流电机pid调速方法,使其控制状态更加稳定,能够有效的适应被控对象的非线性的状况;在控制过程中,可以有效地控制pid控制器,使其不断的监控参数的变化以及对于参数的实时反馈,达到智能控制无刷直流电机的目的。进一步地,本发明将bp神经网络的各层节点之间的权值和各层的阈值映射成二进制排列的基因串,降低了提取特征的难度,避免遗传算子破坏隐含节点的特征提取和探测的作用。本发明还将采用获取的样本数据进行归一化处理,提高了bp神经网络的收敛速度。

附图说明

图1为本发明的结构示意图;

图2为基于遗传算法优化的bp神经网络权值和阀值流程图;

图3为bp神经网络结构图;

图4为bp神经网络控制器内部逻辑流程图;

图5为本发明的无刷直流电机控制逻辑的示意图;

图6为本发明的实施例2和实施例3中训练误差与迭代次数关系图;

图7是电机速度与时间的关系图。

具体实施方式

下面结合附图和实施例对本发明作进一步的说明,但并不作为对本发明限制的依据。

实施例1:一种基于遗传神经网络的无刷直流电机pid调速方法,如图1所示,包括bp神经网络、pid控制器和无刷直流电机,所示的pid控制器采用的tms320f28335数字信号处理器,具有150mhz的高速处理能力,具备32位浮点处理单元,6个dma通道支持adc、mcbsp和emif,有多达18路的pwm输出,其中有6路为ti特有的更高精度的pwm输出(hrpwm),12位16通道adc;所述的无刷直流电机的驱控系统为驱控电路,连接0v端和48v端;所述pid控制器的输入端与bp神经网络的输出端相连接,pid控制器的输出端与无刷直流电机相连接;利用遗传算法优化bp神经网络的权值和阈值,再通过样本数据学习pid控制器的三个控制参数,最后通过bp神经网络进行pid控制器的输出调控,用于控制无刷直流电机的驱控系统的占空比,实现无刷直流电机的速度调节。

实施例2:在实施例1的基础上,如图2所示,首先确定bp网络的拓扑结构,如图3所示,所述bp神经网络的层数为三层,包括输入层、隐含层和输出层;根据隐含节点数和输入层节点和输出节点的近似关系:,设输入层的节点数为2,隐含层的节点数为6,输出层的节点数为3;初始化bp神经网络的权值和阈值,并对权值和阈值进行实数编码,所述隐含层的阈值为,输出层的阈值为,输入层到隐含层的权值为,隐含层到输出层的权值为,其中{0≤≤2,0≤≤6,0≤≤3;,,}。

利用遗传算法优化bp神经网络的权值和阈值,且具体过程如下:

a、初始化遗传算法,确定相关参数;通过建立遗传算法空间与问题空间的映射,问题空间也就是所要求优化参数(bp神经网络的权值和阈值)的集合,即权值和阈值的可行解(所有的解),把问题的解用染色体表示(也就是所编辑的二进制串码)作为初始的染色群,最终所得也就是解空间;将bp神经网络的各层节点之间的权值和各层的阈值映射成二进制排列的基因串:

上式为12个长度为一位的二进制串;

上式为18个长度为一位的二进制串;

上式为6个长度为一位的二进制串;

上式为3个长度为一位的二进制串;

把bp神经网络的权值和阈值映射成二进制串,同时这种映射关系是一一对应的,且这种权值和阈值与基因串对应关系也是唯一的。在进行映射的二进制字符串的串联连接的时候需要遵循以下规则:1.与同一隐含层相连的权值对应的字符放在一起或同一输出层的节点2,同一层即隐含层或者输出节点所对应的阈值放在一起。这样可降低提取特征的难度,避免遗传算子破坏隐含节点的特征提取和探测的作用;

利用上述方法随机产生n个基因串的初始种群,且将这n个基因串的初始种群规模的大小值尽量大一点,使得遗传算法只要确定一个较好的区域搜索范围即可。

b、设置遗传算法的适应度函数,适应度函数是评价和指导遗传算法搜索的唯一指标,使得参数搜索能够面向参数组合的优化方向,能够逐渐的逼近参数组合的最优解;

选取bp神经网络的误差作为适应度函数:

其中,是bp神经网络输入输出的样本对,分别是第a个样本的第b个输出节点的期望输出与实际输出;

实际输出的计算规则如下:

首先通过输入层的输入的值,通过输入层到隐含层的加权和隐含层的阈值激活,求出隐含层节点的输出,再将该输出通过隐含层到输出层的加权和阈值求出输出单元的输出,这个期望的输出和实际通过加权和阈值计算的实际输出的差值,即对应的差值;

c、将适应度函数的幂标定法和选择操作法结合,获得基因串的初始的种群中每个个体在其子代中期望生存数目,得出期望生存模型;

所述基因串的适应度函数为,种群的规模为,则期望生存模型为:

生存数目:

≧2时,则对基因串直接排序选择,若是<2时,则增加值使得后代的基因串总量不小于父代,再进行排序选择;即若除了父代中的个体遗传给子代外,所复制的子代超过了父代被淘汰的个体的总数,那么就结合排序选择法做选择操作,否则调整生存模型中值来使得的子代中除了父代的直接遗传外所复制的数目超过父代所淘汰的数目,再结合排序选择法执行相关的操作;

d、将生存模型对编码产生的染色体进行交叉变异操作,得到交叉操作的概率p1和变异操作的概率p2,不断的重复上述的交叉变异操作,直到目标能量函数趋于稳定,此时停止进化,若适应度函数计算处理后适度值满足条件,则把此时的搜索空间作为bp神经网络优化的搜索空间,然后对适度值进行权值和阈值的解码,获取最优的的区间,然后定位出较好的初始搜索空间,将这个初步定位的空间作为神经网络权值和阈值的搜索空间,利用大样本训练bp神经网络,然后使用测试样本检测bp神经网络训练的误差,若误差无法满足条件,则更新权值和阈值重新得到bp神经网络训练的误差,从而逐渐的去调整权值和阈值的局部在该搜索空间中解出最优解,使得误差满足条件(误差趋近0.001),在将满足条件时的权值和阈值作为bp神经网络的搜索权值和阈值。

实施例3:在实施例2的基础上,如图4和图5所示,所述bp神经网络通过样本学习pid控制器的三个控制参数的具体过程如下:

s1:输入样本的预处理:通过采样获得的样本数据,所述的样本数据为给定的速度的偏差值和偏差值变化率,然后在matlab中利用函数mapminmax函数进行归一化处理,使得样本数据的值处于[-1,1]之间:

输入向量样本:

期望的输出:

在遗传算法优化后搜索空间作为初始好的权值为bp神经网络的输入层和隐含层的连接权值,为bp神经网络的隐含层和输出层的连接权值

s2:bp神经网络的前向传播:将归一化处理后的数据导入bp神经网络进行计算,计算出输出层的输出,输出层的节点对应着pid控制器的三个控制参数,,

其中,bp神经网络输入层的输入:

bp神经网络隐含层输入,也就是输出层的输出:

为神经元;

bp神经网络隐含层的输出,也就是输出层的输入:

由于pid对应的三个控制参数是正数,所以选择非负的激活函数;

bp神经网络输出层的输入:

bp神经网络输出层的输出:

是输出层的激活函数;

得到的三个控制参数具体为:

s3:bp神经网络的反向传播:定义bp神经网络的误差-性能指标函数:

其中和分别指的是第个样本所对应的期望输出和实际输出,指的是第个样本的偏差值;

bp神经网络的各层按照梯度下降的方法来调节权值,并附加一个与上一个调整值相关使得搜索能够快速收敛的动量因子项;所述的动量因子项包括学习的速率和惯性系数

由样本得到隐含层到输出的权值:

式中,为样本时相对于上个样本的调整,

是误差函数相对与隐含层到输出层权值的偏导数,

由于上次权值对于本次权值变化的影响,需要加入惯性系数,此时权值调整为:

为状态变量;

s4:根据修正好的权值,进行bp神经网络前向计算,直到满足误差性能指标函数,输出pid的三个参数。

所述通过bp神经网络进行pid控制器的输出调控,用于控制无刷直流电机的驱控系统的占空比的具体过如下:所述pid控制器中pid模块是由比例单元p,积分单元i和微分单元d构成;根据偏差信号和bp神经网络输出的,,来获取pid控制器的控制信号;

为整个pid控制器的控制信号,为时间常量或者采样时间,是积分变量,是比例增益参数,是积分增益参数,是微分增益参数;

利用pid控制器的输出控制无刷直流电机的驱控系统的占空比,(占空比是指在一个脉冲循环内,通电时间相对于总时间所占的比例。这是由于母线的电压是一定的,通过控制开关的开通时间我,可以获得在母线电压范围内的任意电压。而占空比与pid数值可以举例:直流电压是10v,则驱控板的输出电压范围就是0-10v,一般来说:pwm波是8位,则数据范围是0-255,与0-100%顺序对应,也就是说0对应占空比为0的方波,255则是100%,127则是50%)

通过pid计算的值与占空比的对应关系:

为400,则占空比的计算如下:,其中1024是与采集芯片相关,一般来说ad采集芯片都是10位的,所以都是取值1024,算出的数值就是占空系数,进而实现无刷直流电机的速度调节。

对比例:常规使用bp神经网络进行无刷直流电机pid调速。

申请人对本发明实施例2中网络训练误差与对比例中的bp神经网络训练误差进行测试,其结果如图6所示,从图6中可以明显的看出,本发明利用基于遗传算法的bp神经网络进行训练时相比对比例中常规的bp神经网络的误差在误差趋向于趋近0.001时所需要迭代次数更少,说明本发明的基于遗传算法的bp神经网络具有更快的收敛速度。

申请人通过实施例3对电机启动时的转速进行监控,并同时监控对比例中电机启动时的转速情况,得到如图7所示的电机速度与时间的关系图。从图7中可以看出,对比例中电机启动时的转速至稳定运行时的转速区间波动范围大,以2500r/min为稳定转速,对比例中最大转速达到3000r/min以上,随后才逐渐趋于稳定,而本发明对电机的转速控制更加的平稳,最大转速与2500r/min非常的接近,说明本发明可以有效的控制电机转速,使其更加的平稳,更有利于保护电机。

综上所述,本发明采用的基于遗传神经网络的无刷直流电机pid调速方法,使其控制状态更加稳定,能够有效的适应被控对象的非线性的状况;在控制过程中,智能控制pid控制器不断的监控参数的变化以及对于参数的实时反馈,达到智能控制无刷直流电机的目的。


技术特征:

1.一种基于遗传神经网络的无刷直流电机pid调速方法,包括bp神经网络、pid控制器和无刷直流电机,所述pid控制器的输入端与bp神经网络的输出端相连接,pid控制器的输出端与无刷直流电机相连接;其特征在于:利用遗传算法优化bp神经网络的权值和阈值;所述bp神经网络的层数为三层,包括输入层、隐含层和输出层;其中输入层的节点数为2,隐含层的节点数为6,输出层的节点数为3;所述隐含层的阈值为,输出层的阈值为,输入层到隐含层的权值为,隐含层到输出层的权值为,其中{0≤≤2,0≤≤6,0≤≤3;,,};

其中,所述通过遗传算法优化bp神经网络的权值和阈值具体过程如下:

a、初始化遗传算法,建立遗传算法空间与问题空间的映射,将bp神经网络的各层节点之间的权值和各层的阈值映射成二进制排列的基因串,随机产生n个基因串的初始种群;

b、设置遗传算法的适应度函数:

其中,是bp神经网络输入输出的样本对,分别是第a个样本的第b个输出节点的期望输出与实际输出;

c、将适应度函数的幂标定法和选择操作法结合,得出期望生存模型;

具体地,所述基因串的适应度函数为,种群的规模为,则期望生存模型为:

其中,当=1,根据期望生存模型获得基因串的初始种群中每个个体在其子代中期望生存数目

生存数目:

≧2时,则对基因串直接排序选择,若是<2时,则增加值使得后代的基因串总量不小于父代,再进行排序选择;

d、将期望生存模型进行交叉变异操作,得到交叉操作的概率p1和变异操作的概率p2,不断的重复上述的交叉变异操作,直到目标能量函数趋于稳定,此时停止进化,把此时的搜索空间作为bp神经网络优化的搜索空间,对适度值进行权值和阈值的解码,获取最优的的区间,然后定位出一个初始搜索空间,将这个初步定位的空间作为神经网络权值和阈值的搜索空间,利用大样本训练bp神经网络,然后使用测试样本检测bp神经网络训练的误差,从而逐渐的去调整权值和阈值的局部在该搜索空间中解出最优解,使得误差趋近0.001,最后将最优解时的权值和阈值作为bp神经网络的搜索权值和阈值;

再通过样本数据学习pid控制器的三个控制参数,最后利用bp神经网络进行pid控制器的输出调控,用于控制无刷直流电机的驱控系统的占空比,实现无刷直流电机的速度调节。

2.根据权利要求1所述的基于遗传神经网络的无刷直流电机pid调速方法,其特征在于:所述bp神经网络通过样本学习pid控制器的三个控制参数的具体过程如下:

s1:输入样本的预处理:通过采样获得的样本数据,所述的样本数据为给定的速度的偏差值和偏差值变化率,然后在matlab中利用函数mapminmax函数进行归一化处理,使得样本数据的值处于[-1,1]之间:

输入向量样本:

期望的输出:

s2:bp神经网络的前向传播:将归一化处理后的数据导入bp神经网络进行计算,计算出输出层的输出,输出层的节点对应着pid控制器的三个控制参数

其中,bp神经网络输入层的输入:

bp神经网络隐含层输入,也就是输出层的输出:

为神经元,

bp神经网络隐含层的输出,也就是输出层的输入:

由于pid对应的三个控制参数是正数,所以选择非负的激活函数;

bp神经网络输出层的输入:

bp神经网络输出层的输出:

是输出层的激活函数;

得到的三个控制参数具体为:

s3:bp神经网络的反向传播:定义bp神经网络的误差-性能指标函数:

其中分别指的是第个样本所对应的期望输出和实际输出,指的是第个样本的偏差值;

bp神经网络的各层按照梯度下降的方法来调节权值,并附加一个与上一个调整值相关使得搜索能够快速收敛的动量因子项;所述的动量因子项包括学习的速率和惯性系数

由样本得到隐含层到输出的权值:

式中,样本时相对于上个样本的调整,

是误差函数相对与隐含层到输出层权值的偏导数,

由于上次权值对于本次权值变化的影响,需要加入惯性系数,此时权值调整为:

为状态变量;

s4:根据修正好的权值,进行bp神经网络前向计算,直到满足误差性能指标函数,输出pid的三个参数。

3.根据权利要求2所述的基于遗传神经网络的无刷直流电机pid调速方法,其特征在于:所述通过bp神经网络进行pid控制器的输出调控,用于控制无刷直流电机的驱控系统的占空比的具体过如下:所述pid控制器中pid模块是由比例单元p,积分单元i和微分单元d构成;根据偏差信号和bp神经网络输出的,,来获取pid控制器的控制信号

为整个pid控制器的控制信号,为时间常量或者采样时间,是积分变量,是比例增益参数,是积分增益参数,是微分增益参数;

利用pid控制器的输出控制无刷直流电机的驱控系统的占空比,

用于实现无刷直流电机的速度调节。

技术总结
本发明公开了一种基于遗传神经网络的无刷直流电机PID调速方法,包括BP神经网络、PID控制器和无刷直流电机,所述PID控制器的输入端与BP神经网络的输出端相连接,PID控制器的输出端与无刷直流电机相连接;其特征在于:利用遗传算法优化BP神经网络的权值和阈值;所述BP神经网络的层数为三层,包括输入层、隐含层和输出层;其中输入层的节点数为2,隐含层的节点数为6,输出层的节点数为3;所述隐含层的阈值为,输出层的阈值为,输入层到隐含层的权值为,隐含层到输出层的权值为,其中{ 0≤≤ 2,0≤≤ 6,0≤≤3;,,∈}。本发明可以使PID控制器的控制状态更加稳定,能够有效的适应被控对象的非线性的状况。

技术研发人员:李峰平;谢磊;黄继宝;江建华;黄波;周斯加
受保护的技术使用者:爱科赛智能科技(浙江)有限公司
技术研发日:2020.03.16
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-58349.html

最新回复(0)