CN107942679A - 基于模糊免疫神经网络算法的全向底盘控制方法 - Google Patents
基于模糊免疫神经网络算法的全向底盘控制方法 Download PDFInfo
- Publication number
- CN107942679A CN107942679A CN201711369709.9A CN201711369709A CN107942679A CN 107942679 A CN107942679 A CN 107942679A CN 201711369709 A CN201711369709 A CN 201711369709A CN 107942679 A CN107942679 A CN 107942679A
- Authority
- CN
- China
- Prior art keywords
- mrow
- msub
- mfrac
- msubsup
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/04—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
- G05B13/042—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Other Investigation Or Analysis Of Materials By Electrical Means (AREA)
Abstract
本发明公开了一种基于模糊免疫神经网络算法的全向底盘控制方法,用于解决现有全向底盘控制方法控制精度差的技术问题。技术方案是将模糊算法引入底盘PID的参数整定,将神经网络算法引入模糊算法,建立五层神经网络。第一层为输入层,输入量为系统输出的误差e(t)以及误差的变化量Δe(t);第二层为模糊化层,由隶属度函数对输入量进行模糊化处理;第三、四层为模糊计算层,完成模糊计算;第五层为输出层,将结果进行逆模糊化并输出。在这一过程中对于需要学习的参数,采用误差逆传播(BP)算法进行学习,并将免疫算法引入学习过程,将惯性导航系统、运动控制系统以及IMU相结合,提高了系统对于给定轨迹和实时轨迹跟踪的能力,控制精度高。
Description
技术领域
本发明涉及一种全向底盘控制方法,特别涉及一种基于模糊免疫神经网络算法的全向底盘控制方法。
背景技术
基于麦克纳姆轮技术的全方位运动设备可以实现前行、横移、斜行、旋转及其组合等运动方式。这种全方位移动方式是基于一个有许多位于机轮周边的轮轴的中心轮的原理上,这些成角度的周边轮轴把一部分的机轮转向力转化到一个机轮法向力上面。
文献“模糊PID控制在全向电动底盘上的应用,机械工程学报,2014,Vol50(6),p129-134”公开了一种基于模糊PID算法的全向电动地底盘的控制方法。该方法针对麦克纳姆车轮的电动万向底盘,在该电动底盘前期半闭环控制系统的基础上,分析简化运动学模型,设计出基于参数分配器的模糊PID全闭环控制系统,并确定系统的硬件结构和软件流程,改进后的全闭环控制系统具有更好的响应时间和稳态误差精度,一定程度上克服了传统的工业车辆及特种车辆底盘在转向、排放和噪声方面的缺点。但是文献所述方法通过在底盘控制的PID参数整定上选用了模糊算法,适应性不强,当系统运行条件发生变化时,PID参数不够精确,导致车辆在速度控制上响应时间过长,并伴随有超调量和稳态误差,导致系统运行不精确,抗干扰能力较弱。
发明内容
为了克服现有全向底盘控制方法控制精度差的不足,本发明提供一种基于模糊免疫神经网络算法的全向底盘控制方法。该方法基于麦克纳姆全向底盘的数学模型,将模糊算法引入底盘PID的参数整定,将神经网络算法引入模糊算法,建立五层神经网络。第一层为输入层,输入量为系统输出的误差e(t)以及误差的变化量Δe(t);第二层为模糊化层,由隶属度函数对输入量进行模糊化处理,隶属度函数选择为高斯分布模型函数;第三、四层为模糊计算层,完成模糊计算;第五层为输出层,将结果进行逆模糊化并输出。在这一过程中对于需要学习的参数,采用误差逆传播(BP)算法进行学习,并将免疫算法引入学习过程,将惯性导航系统、运动控制系统以及IMU相结合,提高了系统对于给定轨迹和实时轨迹跟踪的能力,控制精度高。
本发明解决其技术问题所采用的技术方案:一种基于模糊免疫神经网络算法的全向底盘控制方法,其特点是包括以下步骤:
步骤一、构建模糊神经网络控制器。
初始化神经网络,神经网络第一层为输入层,将系统的输出误差e(t)和该误差的变化量Δe(t)送入系统,神经网络第一层所有节点连接权值为1;神经网络第二层为模糊化层,由隶属度函数对输入量进行模糊化处理。隶属度函数选择高斯分布模型函数,则
其中,mij为第i个模糊变量第k项高斯函数中心,σij为该高斯函数宽度。神经网络第二层所有节点连接权值为1;第三、四层为模糊计算层,完成模糊计算,神经网络第三、四层所有节点链接权值为1;第五层为输出层,将结果进行逆模糊化并输出,神经网络第五层的连接权值为
步骤二、基于误差逆传播对参数进行学习。
误差函数定义如下:
其中,Xo和Xi分别为系统实际和给定的输出。从步骤一得到,需要学习的参数为采用误差逆传播算法进行学习。对输出Xo进行偏导,得:
进而求得:
同时求得:
根据式(5),求得相应的梯度:
误差逆传播算法采用梯度下降的策略,以目标的负梯度方向对参数进行学习。记学习率为η,得学习算法公式为:
误差逆传播算法通过式(8)(9)(10)进行参数学习。初始设置误差函数的阈值为Ek0。当式(2)值小于Ek0时,算法停止,参数学习完成。
步骤三、基于免疫算法对学习率进行控制。
将免疫算法引入学习率的控制。在误差逆传播算法运行过程中,使用免疫算法进行η的自整定。
令ΔS(k)分别为Δωij,Δmij,Δσij,非线性函数f(x)=x2代入式(8)分别计算出η,代入式(8)(9)(10),最终得:
步骤四、惯性导航控制器设计。
全向底盘对弧线轨迹进行追踪,对于解算出来的轨迹,原有轨迹逼近解算轨迹,得到实际轨迹,解算轨迹与实际轨迹两者之间相差θ度。惯性导航系统的惯性测量单元测的角度偏差θ并将其作为输入,电机转速ω作为输出。
步骤五、将运动控制系统和惯性导航系统进行输入融合,控制全向底盘。
本发明的有益效果是:该方法基于麦克纳姆全向底盘的数学模型,将模糊算法引入底盘PID的参数整定,将神经网络算法引入模糊算法,建立五层神经网络。第一层为输入层,输入量为系统输出的误差e(t)以及误差的变化量Δe(t);第二层为模糊化层,由隶属度函数对输入量进行模糊化处理,隶属度函数选择为高斯分布模型函数;第三、四层为模糊计算层,完成模糊计算;第五层为输出层,将结果进行逆模糊化并输出。在这一过程中对于需要学习的参数,采用误差逆传播(BP)算法进行学习,并将免疫算法引入学习过程,将惯性导航系统、运动控制系统以及IMU相结合,提高了系统对于给定轨迹和实时轨迹跟踪的能力,控制精度高。
下面结合附图和具体实施方式对本发明作详细说明。
附图说明
图1是本发明方法的底盘运动学模型示意图。
图2是本发明方法的模糊神经网络PID算法流程图。
图3是本发明方法神经网络结构示意图。
图4是本发明方法隶属度函数示意图。
图5是本发明方法免疫系统模型示意图。
图6是本发明方法轨迹跟踪示意图。
图7是本发明方法底盘路径跟踪控制器流程图。
图8是本发明方法输出误差e(t)的隶属度函数。
图9是本发明方法输出误差变化量Δe(t)的的隶属度函数。
具体实施方式
参照图1-9。本发明基于模糊免疫神经网络算法的全向底盘控制方法具体步骤如下:
步骤1、针对底盘控制构建模糊神经网络控制器。
初始化神经网络,网络第一层为输入层,将系统的输出误差e(t)和该误差的变化量Δe(t)送入系统,该层所有节点连接权值为1;第二层为模糊化层,由隶属度函数对输入量进行模糊化处理。隶属度函数选择为高斯分布模型函数,则
其中mij为第i个模糊变量第k项高斯函数中心,σij为该高斯函数宽度。该层所有节点连接权值为1;第三、四层为模糊计算层,完成模糊计算, 所有节点链接权值为1;第五层为输出层,将结果进行逆模糊化并输出,该层的连接权值为
步骤2、基于误差逆传播对参数进行学习。
误差函数定义如下:
其中Xo和Xi分别为系统实际和给定的输出。从步骤一可以得到,需要学习的参数为采用误差逆传播(BP)算法进行学习。对输出Xo进行偏导,得:
进而求得:
同时可以求得:
根据式(5),可求得相应的梯度:
BP算法采用梯度下降的策略,以目标的负梯度方向对参数进行学习。记学习率为η,得学习算法公式为:
BP算法通过式(8)(9)(10)进行参数学习。初始设置误差函数的阈值为Ek0。当式(2)值小于Ek0时,算法停止,参数学习完成。
步骤3、基于免疫算法对学习率进行控制。
将免疫算法引入学习率的控制。在BP算法运行过程中,学习率η的值直接影响算法效果。η太小,算法收敛速度很慢;η太大,算法可能无法取到最小值甚至出现震荡。为了较快较好的实现收敛,使用免疫算法进行η的自整定。
令ΔS(k)分别为Δωij,Δmij,Δσij,非线性函数f(x)=x2代入式(8)分别计算出η,代入式(8)(9)(10),最终得:
步骤4、惯性导航控制器设计。
全向底盘对弧线轨迹进行追踪,对于解算出来的轨迹,原有轨迹逼近解算轨迹,得到实际轨迹,解算轨迹与实际轨迹两者之间相差θ度。惯性导航系统的惯性测量单元(IMU)可以测的角度偏差θ并将其作为输入,电机转速ω作为输出。两者也是非线性关系,故同样使用模糊免疫神经网络对参数进行动态更新。
步骤5、最终,将运动控制系统和惯性导航系统进行输入融合,得到使全向底盘得到控制。
Claims (1)
1.一种基于模糊免疫神经网络算法的全向底盘控制方法,其特征在于包括以下步骤:
步骤一、构建模糊神经网络控制器;
初始化神经网络,神经网络第一层为输入层,将系统的输出误差e(t)和该误差的变化量Δe(t)送入系统,神经网络第一层所有节点连接权值为1;神经网络第二层为模糊化层,由隶属度函数对输入量进行模糊化处理;隶属度函数选择高斯分布模型函数,则
<mrow>
<msubsup>
<mi>f</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</msubsup>
<mo>=</mo>
<mi>exp</mi>
<mrow>
<mo>(</mo>
<mo>-</mo>
<mfrac>
<msup>
<mrow>
<mo>(</mo>
<msubsup>
<mi>u</mi>
<mi>i</mi>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</msubsup>
<mo>-</mo>
<msub>
<mi>m</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mrow>
<msup>
<msub>
<mi>&sigma;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mn>2</mn>
</msup>
</mrow>
</mfrac>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,mij为第i个模糊变量第k项高斯函数中心,σij为该高斯函数宽度;神经网络第二层所有节点连接权值为1;第三、四层为模糊计算层,完成模糊计算,神经网络第三、四层所有节点链接权值为1;第五层为输出层,将结果进行逆模糊化并输出,神经网络第五层的连接权值为
步骤二、基于误差逆传播对参数进行学习;
误差函数定义如下:
<mrow>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<mn>2</mn>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>p</mi>
</munderover>
<msup>
<mrow>
<mo>(</mo>
<msub>
<mi>X</mi>
<mi>o</mi>
</msub>
<mo>-</mo>
<msub>
<mi>X</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<mn>2</mn>
</mfrac>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>p</mi>
</munderover>
<mi>e</mi>
<msup>
<mrow>
<mo>(</mo>
<mi>t</mi>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,Xo和Xi分别为系统实际和给定的输出;从步骤一得到,需要学习的参数为mij,σij,采用误差逆传播算法进行学习;对输出Xo进行偏导,得:
<mrow>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>X</mi>
<mi>o</mi>
</msub>
</mrow>
</mfrac>
<mo>=</mo>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mi>i</mi>
<mrow>
<mo>(</mo>
<mn>5</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
<mo>=</mo>
<mrow>
<mo>(</mo>
<msub>
<mi>X</mi>
<mi>o</mi>
</msub>
<mo>-</mo>
<msub>
<mi>X</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</mrow>
进而求得:
<mrow>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>&omega;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
<mrow>
<mo>(</mo>
<mn>5</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
<mo>=</mo>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mi>i</mi>
<mrow>
<mo>(</mo>
<mn>5</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
<mfrac>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mi>i</mi>
<mrow>
<mo>(</mo>
<mn>5</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>&omega;</mi>
<mi>i</mi>
<mrow>
<mo>(</mo>
<mn>5</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
<mo>=</mo>
<mrow>
<mo>(</mo>
<msub>
<mi>X</mi>
<mi>o</mi>
</msub>
<mo>-</mo>
<msub>
<mi>X</mi>
<mi>i</mi>
</msub>
<mo>)</mo>
</mrow>
<msubsup>
<mi>o</mi>
<mi>i</mi>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</msubsup>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</mrow>
同时求得:
<mrow>
<mtable>
<mtr>
<mtd>
<mrow>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mi>i</mi>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
<mo>=</mo>
<munder>
<mi>&Sigma;</mi>
<mrow>
<mi>n</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
</munder>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mi>n</mi>
<mrow>
<mo>(</mo>
<mn>5</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
<mfrac>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mi>n</mi>
<mrow>
<mo>(</mo>
<mn>5</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mi>i</mi>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mi>i</mi>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
<mo>=</mo>
<munder>
<mi>&Sigma;</mi>
<mrow>
<mi>n</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
</munder>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mi>n</mi>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
<mfrac>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mi>n</mi>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mi>i</mi>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
<mo>=</mo>
<munder>
<mi>&Sigma;</mi>
<mrow>
<mi>n</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
</munder>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mi>n</mi>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
<mfrac>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mi>n</mi>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
</mrow>
</mtd>
</mtr>
</mtable>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>5</mn>
<mo>)</mo>
</mrow>
</mrow>
根据式(5),求得相应的梯度:
<mrow>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>m</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
</mrow>
</mfrac>
<mo>=</mo>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
<mfrac>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>m</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
</mrow>
</mfrac>
<mo>=</mo>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
<mfrac>
<mrow>
<mn>2</mn>
<mrow>
<mo>(</mo>
<msubsup>
<mi>o</mi>
<mi>i</mi>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</msubsup>
<mo>-</mo>
<msub>
<mi>m</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msup>
<msub>
<mi>&sigma;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mn>2</mn>
</msup>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>6</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>&sigma;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
</mrow>
</mfrac>
<mo>=</mo>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
<mfrac>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>&sigma;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
</mrow>
</mfrac>
<mo>=</mo>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msubsup>
<mi>f</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</msubsup>
</mrow>
</mfrac>
<mfrac>
<mrow>
<mn>2</mn>
<msup>
<mrow>
<mo>(</mo>
<msubsup>
<mi>o</mi>
<mi>i</mi>
<mrow>
<mo>(</mo>
<mn>2</mn>
<mo>)</mo>
</mrow>
</msubsup>
<mo>-</mo>
<msub>
<mi>m</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
</mrow>
<mrow>
<msup>
<msub>
<mi>&sigma;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mn>3</mn>
</msup>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>7</mn>
<mo>)</mo>
</mrow>
</mrow>
误差逆传播算法采用梯度下降的策略,以目标的负梯度方向对参数进行学习;记学习率为η,得学习算法公式为:
<mrow>
<msub>
<mi>&omega;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>+</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
<mo>=</mo>
<msub>
<mi>&omega;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mi>&eta;</mi>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>&omega;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>8</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>m</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>+</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
<mo>=</mo>
<msub>
<mi>m</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mi>&eta;</mi>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>m</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>9</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>&sigma;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>+</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
<mo>=</mo>
<msub>
<mi>&sigma;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mi>&eta;</mi>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>&sigma;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>10</mn>
<mo>)</mo>
</mrow>
</mrow>
误差逆传播算法通过式(8)(9)(10)进行参数学习;初始设置误差函数的阈值为Ek0;当式(2)值小于Ek0时,算法停止,参数学习完成;
步骤三、基于免疫算法对学习率进行控制;
将免疫算法引入学习率的控制;在误差逆传播算法运行过程中,使用免疫算法进行η的自整定;
令ΔS(k)分别为Δωij,Δmij,Δσij,非线性函数f(x)=x2代入式(8)分别计算出η,代入式(8)(9)(10),最终得:
<mrow>
<msub>
<mi>&omega;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>+</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
<mo>=</mo>
<msub>
<mi>&omega;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>-</mo>
<mi>K</mi>
<msup>
<mrow>
<mo>(</mo>
<mrow>
<msub>
<mi>&Delta;&omega;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
</mrow>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>)</mo>
</mrow>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>&omega;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>11</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>m</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>+</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
<mo>=</mo>
<msub>
<mi>m</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>-</mo>
<mi>K</mi>
<msup>
<mrow>
<mo>(</mo>
<mrow>
<msub>
<mi>&Delta;m</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
</mrow>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>)</mo>
</mrow>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>m</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>12</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>&sigma;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>+</mo>
<mn>1</mn>
<mo>)</mo>
</mrow>
<mo>=</mo>
<msub>
<mi>&sigma;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mi>k</mi>
<mo>)</mo>
</mrow>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>1</mn>
<mo>-</mo>
<mi>K</mi>
<msup>
<mrow>
<mo>(</mo>
<mrow>
<msub>
<mi>&Delta;&sigma;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
</mrow>
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
<mo>)</mo>
</mrow>
<mfrac>
<mrow>
<mo>&part;</mo>
<msub>
<mi>E</mi>
<mi>k</mi>
</msub>
</mrow>
<mrow>
<mo>&part;</mo>
<msub>
<mi>&sigma;</mi>
<mrow>
<mi>i</mi>
<mi>j</mi>
</mrow>
</msub>
</mrow>
</mfrac>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>13</mn>
<mo>)</mo>
</mrow>
</mrow>
步骤四、惯性导航控制器设计;
全向底盘对弧线轨迹进行追踪,对于解算出来的轨迹,原有轨迹逼近解算轨迹,得到实际轨迹,解算轨迹与实际轨迹两者之间相差θ度;惯性导航系统的惯性测量单元测的角度偏差θ并将其作为输入,电机转速ω作为输出;
步骤五、将运动控制系统和惯性导航系统进行输入融合,控制全向底盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711369709.9A CN107942679A (zh) | 2017-12-19 | 2017-12-19 | 基于模糊免疫神经网络算法的全向底盘控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711369709.9A CN107942679A (zh) | 2017-12-19 | 2017-12-19 | 基于模糊免疫神经网络算法的全向底盘控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107942679A true CN107942679A (zh) | 2018-04-20 |
Family
ID=61941164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711369709.9A Pending CN107942679A (zh) | 2017-12-19 | 2017-12-19 | 基于模糊免疫神经网络算法的全向底盘控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107942679A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213174A (zh) * | 2018-10-24 | 2019-01-15 | 北京工业大学 | 一种基于模糊神经网络的污水处理厂智能巡检避障方法 |
CN109445484A (zh) * | 2018-12-05 | 2019-03-08 | 长安大学 | 一种基于猫群优化和免疫模糊pid的孵化室温度控制方法 |
CN109606089A (zh) * | 2018-11-27 | 2019-04-12 | 北京建筑大学 | 一种灭火车 |
CN111812968A (zh) * | 2020-06-24 | 2020-10-23 | 合肥工业大学 | 基于模糊神经网络pid控制器的阀位串级控制方法 |
CN114407679A (zh) * | 2022-03-04 | 2022-04-29 | 浙江理工大学 | 一种伸缩架对接控制方法及移动充电方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101782771A (zh) * | 2010-03-17 | 2010-07-21 | 东华大学 | 基于免疫神经网络的纺丝工艺智能优化设计方法 |
CN103699124A (zh) * | 2013-12-04 | 2014-04-02 | 北京工业大学 | 一种用于全向智能轮椅避障的模糊神经网络控制方法 |
-
2017
- 2017-12-19 CN CN201711369709.9A patent/CN107942679A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101782771A (zh) * | 2010-03-17 | 2010-07-21 | 东华大学 | 基于免疫神经网络的纺丝工艺智能优化设计方法 |
CN103699124A (zh) * | 2013-12-04 | 2014-04-02 | 北京工业大学 | 一种用于全向智能轮椅避障的模糊神经网络控制方法 |
Non-Patent Citations (4)
Title |
---|
熊中刚等: "基于免疫模糊 PID 的小型农业机械路径智能跟踪控制", 《机器人》 * |
葛锁良等: "采用免疫BP算法的模糊神经网络PID控制器", 《合肥工业大学学报(自然科学版)》 * |
陈文科等: "万向电动底盘控制系统设计", 《农业机械学报》 * |
陈文科等: "模糊 PID 控制在万向电动底盘上的应用", 《机械工程学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213174A (zh) * | 2018-10-24 | 2019-01-15 | 北京工业大学 | 一种基于模糊神经网络的污水处理厂智能巡检避障方法 |
CN109606089A (zh) * | 2018-11-27 | 2019-04-12 | 北京建筑大学 | 一种灭火车 |
CN109445484A (zh) * | 2018-12-05 | 2019-03-08 | 长安大学 | 一种基于猫群优化和免疫模糊pid的孵化室温度控制方法 |
CN109445484B (zh) * | 2018-12-05 | 2020-09-15 | 长安大学 | 一种基于猫群优化和免疫模糊pid的孵化室温度控制方法 |
CN111812968A (zh) * | 2020-06-24 | 2020-10-23 | 合肥工业大学 | 基于模糊神经网络pid控制器的阀位串级控制方法 |
CN111812968B (zh) * | 2020-06-24 | 2022-04-22 | 合肥工业大学 | 基于模糊神经网络pid控制器的阀位串级控制方法 |
CN114407679A (zh) * | 2022-03-04 | 2022-04-29 | 浙江理工大学 | 一种伸缩架对接控制方法及移动充电方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107942679A (zh) | 基于模糊免疫神经网络算法的全向底盘控制方法 | |
Xiang et al. | Robust fuzzy 3D path following for autonomous underwater vehicle subject to uncertainties | |
CN112904728B (zh) | 一种基于改进型趋近律的机械臂滑模控制轨迹跟踪方法 | |
CN108008720B (zh) | 一种轮式移动机器人的模糊滑模轨迹跟踪控制及方法 | |
Chao et al. | Type-2 fuzzy hybrid controller network for robotic systems | |
CN102393639B (zh) | 基于自适应模糊滑模的微陀螺仪追踪控制方法 | |
CN104950678B (zh) | 一种柔性机械臂系统的神经网络反演控制方法 | |
Awad et al. | Model predictive control with fuzzy logic switching for path tracking of autonomous vehicles | |
Cui et al. | Learning-based balance control of wheel-legged robots | |
Fu et al. | Motion tracking control design for a class of nonholonomic mobile robot systems | |
CN106527152A (zh) | 闭环分数阶PDɑ型迭代学习机器人控制器的设计方法及系统 | |
Koubaa et al. | Adaptive sliding-mode dynamic control for path tracking of nonholonomic wheeled mobile robot | |
CN108972560B (zh) | 一种基于模糊优化的欠驱动机械臂分层滑模控制方法 | |
Michałek et al. | Feedback control framework for car-like robots using the unicycle controllers | |
CN103760902A (zh) | 一种基于模糊控制的无人水面艇直线路径跟踪方法 | |
CN113031446A (zh) | 不确定时滞非线性系统非奇异性神经自适应跟踪控制方法 | |
Lee et al. | Safe end-to-end imitation learning for model predictive control | |
CN107193210A (zh) | 一种非线性系统的自适应学习预设性能控制方法 | |
Zangina et al. | Non-linear PID controller for trajectory tracking of a differential drive mobile robot | |
Khodamipour et al. | Adaptive formation control of leader–follower mobile robots using reinforcement learning and the Fourier series expansion | |
Zhu et al. | Baidu apollo auto-calibration system-an industry-level data-driven and learning based vehicle longitude dynamic calibrating algorithm | |
Mazur | Hybrid adaptive control laws solving a path following problem for non-holonomic mobile manipulators | |
Bobtsov et al. | Hybrid parallel neuro-controller for multirotor unmanned aerial vehicle | |
Kar et al. | Trajectory tracking by automated guided vehicle using GA optimized sliding mode control | |
Wang et al. | Adaptive preassigned-time controller design for a hypersonic vehicle with improved performance and uncertainties |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180420 |