基于神经网络的农业机械路径跟踪控制方法

文档序号:6281829阅读:262来源:国知局
专利名称:基于神经网络的农业机械路径跟踪控制方法
技术领域
本发明涉及导航控制技术,特别涉及一种基于神经网络的农业机械路径跟踪控制方法。
背景技术
精确导航是实现农业机械自主行走的关键技术之一,其导航控制算法直接影响农业机械进行路径自动跟踪的质量。国内外常用的导航控制方法有三种,即线性模型控制方法、最优控制方法和模糊控制方法。线性模型常用PID控制方法,PID控制参数一经调节完成,就固定下来,因而难以对农业机械的偏差变化以及运动特性的变化(如侧向滑移、纵向滑移等)做出在线调整,势必影响导航精度和稳定性。最优控制方法需要精确的农业机械运动学和动力学模型作为控制器设计依据,但农业机械在田间作业的运动学和动力学模型难以精确建立,因此,所谓的“最优控制”也只是理论上的。模糊控制方法虽然可以提高路径跟踪的稳定性,但稳态精度较差。田间作业时,随着农业机械、作业机具与地面相互作用的变化以及田间土壤特性的变化,农业机械运动特性必然是时变的,还有作业工况等引起的传感器测试干扰等,这些因素对导航控制系统的影响都较大。上述常规方法缺乏必要的自适应能力,不能根据农机运动状态变化、路径跟踪误差等反馈及时调节控制参数,因而难以精确控制农田作业机械自动导航和路径跟踪。

发明内容
本发明的目的在于克服现有技术中存在的缺点,提供一种基于神经网络的农业机械路径跟踪控制方法,采用神经网络学习熟练驾驶员的驾驶经验,建立神经网络导航控制器,充分利用神经网络的自适应能力和容错能力以提高农业机械对预定路线的跟踪精度。
本发明一种基于神经网络的农业机械路径跟踪控制方法,包括下述步骤(1)样本采集将导航定位系统安装在农业机械上,由熟练驾驶员驾驶农业机械在田间按不同速度条件沿着预定路线行走,由导航定位系统采样、解算并记录当前时刻农业机械相对于预定路线的横向跟踪误差、纵向航向偏差、行进速度以及转向轮的操纵角,获得神经网络的训练样本;(2)网络训练采用BP神经网络构建的导航控制器由输入层、隐层和输出层组成,如图2所示;输入层神经元为横向跟踪误差、纵向航向偏差和行进速度;隐层神经元采用 (ξ取0~9)的方式获得;输出层为控制输出量,即转向轮操纵角;在MATLAB中对所设计的BP神经网络导航控制器进行仿真训练,确定BP神经网络的权值和阈值,并进行神经网络精度T检验;(3)网络应用采用VC++调用MATLAB中的神经网络工具箱来实现导航控制器,将训练好的神经网络导航控制器应用于农业机械DGPS导航控制系统,实现农业机械对预定路线的跟踪。
步骤(1)中,所述的导航定位系统主要包括导航传感器组合、便携计算机和数据传输线等。导航传感器组合包括伪距差分GPS、磁航向传感器等。导航定位系统结构如图3所示。伪距差分GPS可以采集农业机械在WGS-84坐标系下的定位坐标以及前进速度信息;磁航向传感器测量其航向角度信息。便携计算机与导航传感器组合通过多根数据传输线建立连接。便携计算机实现数据采集、数据预处理和信息融合定位软件系统的运行。将上述导航定位系统安装在农业机械上,然后用数据采集软件系统进行动态数据采集(采集频率为1Hz),以获取神经网络训练样本。驾驶员通过驾驶操纵,快速修正位置偏差,将插秧机沿预定路线行驶的经验完全隐含在训练样本中,供神经网络学习。
步骤(1)中,当前时刻农业机械相对于预定路线的横向跟踪误差是指当前定位点到预定义路线的垂直距离。纵向航向偏差是指预定义路线的目标方向与当前农业机械航向角度之间的差值,其定义如图4所示。
步骤(2)中,在MATLAB中对所设计的BP神经网络导航控制器进行仿真训练,运用NNTool工具箱进行BP神经网络的训练分析,神经网络的参数设置如下初始学习率为0.02,动量系数为0.98,网络的误差为0.01。采用带动量的批处理梯度下降法来训练BP神经网络。在模型精度的检验中,运用SPSS(Statistics Package for Social Science)统计分析软件,采用配对样本T检验的方法,对理论值和神经网络输出值进行比较。
步骤(3)中,采用VC++调用MATLAB中的神经网络工具箱的方法来实现导航控制器,利用Matlab引擎的客户机/服务器方式,通过Windows的ActivcX通道和Matlab接口。在具体的应用中,VC程序作为前端客户机,通过调用Matlab引擎在后台与Matlab服务器建立连接,实现动态通信。与其他各种接口方式相比,引擎所提供的MATLAB功能支持是最全面的,通过这种方式,应用程序实际上会打开一个新的MATLAB进程,可以控制它完成任何计算和绘图操作,对所有的数据结构都提供100%的支持。这种方法实现较为简单,不要求连接整个Matlab,只需要嵌入必要的Matlab引擎库,可大大节省系统资源。
步骤(3)中,神经网络导航控制器应用于农业机械DGPS导航控制系统的具体方式是,在导航定位系统基础上,将神经网络导航控制器软件模块嵌入前述数据采集软件系统中,实现农业机械对预定义路线的跟踪。DGPS导航控制的BP神经网络控制原理如图5所示。
本发明与现有技术相比具有如下优点和效果(1)本发明提出采用神经网络学习人工驾驶农业机械的操作经验,构建神经网络导航控制器,实现农业机械沿预定路线的自动路径跟踪。
(2)本发明设计的神经网络导航控制器具有一定的自适应能力,有效提高了路径跟踪的精度。


图1为用于样本采集的农业机械行驶轨迹设计。
图2为BP神经网络仿真分析结构图。
图3为导航定位系统结构框图。
图4为横向跟踪误差和航向跟踪误差的几何定义图。
图5为DGPS导航控制的BP神经网络控制原理图。
图6为田间试验的路径跟踪效果图。
具体实施例下面结合实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
在本实施例中,以KUBATA SPU-60插秧机为测试平台,进行基于神经网络的农业机械路径跟踪控制。具体实施步骤如下
(1)将导航定位系统装备在插秧机上,由熟练驾驶员驾驶插秧机在水田中以不同速度条件沿着图1所示轨迹行走,由导航定位系统采样、解算并记录当前时刻农业机械相对于预定路线的横向跟踪误差、纵向航向偏差、行进速度以及转向轮的操纵角。记录频率为1Hz。将横向跟踪误差、纵向航向偏差、行进速度和转向轮操纵角作为神经网络导航控制器的训练样本。
本实施例采用的农业机械为久保田插秧机,其导航定位系统主要包括导航传感器组合、便携计算机和USB-RS232数据传输线等。导航传感器组合包括伪距差分GPS、电子罗盘和微机械陀螺。伪距差分GPS可以采集插秧机在WGS-84坐标系下的定位坐标以及行进速度信息;电子罗盘测量其航向角度信息(以正北方向为0,逆时针方向为正);微机械陀螺测量其横向角速率(逆时针方向为正)。便携计算机与导航传感器组合通过多根USB-RS232数据传输线建立连接。便携计算机实现数据采集、数据预处理和信息融合定位软件系统的运行。将上述多传感器组合安装在插秧机后端的台架上,然后用数据采集软件系统进行动态数据采集,采集频率为1Hz。数据采集、数据预处理和信息融合定位软件系统采用Visual C++编程工具在Windows XP操作系统下开发完成。
(2)如图3所示构建BP神经网络导航控制器。基于试验采集样本,在MATLAB中对所设计的BP神经网络导航控制器进行仿真训练,确定出BP神经网络的权值和阈值,并进行神经网络精度的T检验。
进行仿真训练时,在MATLAB中按如下命令格式设置参数net.trainParam.show=1000;net.trainParam.Ir=0.02;net.trainParam.mc=0.98;net.trainParam.epochs=1000000;net.trainParam.goal=1e-2;设置完各个参数,采用带动量的批处理梯度下降法训练BP神经网络,经过22851次训练,BP神经网络收敛到目标值,此时,得到网络隐层的权值W1、阈值B1,网络输出层的权值W2和阈值B2。
运用SPSS(Statistics Package for Social Science)统计分析软件,采用配对样本T检验方法,对理论值和神经网络输出值进行比较。结果表明,神经网络输出值与理论值相减的平均值为-0.479069、标准差为0.3568643,95%可信区间为-0.1283673~0.0325536,配对检验结果t=-1.186,显著值为0.239>0.05,表明所设计的神经网络与理论值没有显著差异,能较好地跟踪理论值。
(3)采用VC++调用MATLAB中的神经网络工具箱的方法来实现导航控制器,将训练好的神经网络导航控制器应用于农业机械导航控制系统,实现农业机械对预定路线的跟踪。
VC++调用MATLAB引擎的实现步骤如下第一步,将MATLAB在系统的控件库中进行注册。当MATLAB初次安装的时候,会自动执行一次matlab/regserver如果由于特殊原因无法打开引擎对话,可以在DOS命令行执行上述命令,以重新注册。
第二步,配置Visual C++环境。在Visual C++开发窗口下,打开工具(tool)菜单,点击选项(options),在弹出的对话框中选择目录标签,在显示目录下拉列表中选中“include files”选项,把目录%MATLAB%\extern\include加入到路径中,然后在显示目录下拉列表中选中“library files”选项,把目录%MATLAB%\extern\lib加入到路径中。
第三步,因为MATLAB引擎库函数都在文件engine中予以说明,所以在所创建的工程文件头文件中包括engine.h。
第四步,链接MATLAB所必需的库文件。为了能够调用MATLAB引擎库函数,所编程序必须包含几个MATLAB库文件。将libeng.lib,libmx.lib,libmat.lib 3个文件通过Visual C++的工程菜单下添加工程子菜单的文件项加入到工程中。这3个库文件根据所使用的编译工具的不同,分别位于%MATLAB%\extern\lib\win32文件夹下的相应位置。
完成了上述步骤之后,就可以在Visual C++中调用MATLAB引擎程序进行编译和调试。
在本设计中,Visual C++中调用MATLAB的主要程序代码如下if(!(ep=engOpen(″{followups.content}″))){AfxMessageBox(″\nCan′t start MATLAB engine!\n″);return;} //打开MATLAB引擎z_nn=mxCreateDoubleMatrix(1,2,mxREAL);OutPut_ptr=mxCreateDoubleMatrix(1,1,mxREAL);memcpy((void*)mxGetPr(z_nn),(void*)z,sizeof(z));
engPutVariable(ep,″z_nn″,z_nn);engEvalString(ep,″x1=z_nn(1,1)″);engEvalString(ep,″x2=z_nn(1,2);″);engEvalString(ep,″n1=[x1 x2]′;″);engEvalString(ep,″load net;″);engEvalString(ep,″OutPut_ptr=sim(net,n1);″);OutPut_ptr=engGetVariable(ep,″OutPut_ptr″);OutPut=mxGetPr(OutPut_ptr);U=*OutPut; //BP神经网络输出值在Visual C++中通过调用以上程序,实现Visual C++与Matlab通信。
田间试验测试时,在日本久保田SPU-60型插秧机试验平台上,将已经训练好的BP神经网络模型作为导航控制器,以Trimble 4700 RTK-DGPS接收机为导航传感器,在行进速度为0.6m/s下,对水田中预定路线进行路径跟踪。图6为BP神经网络控制器在水田中对预定义路线的跟踪结果。图中虚线为预定义的路径规划曲线,实线为BP神经网络的跟踪曲线。试验结果表明,在行进速度为0.6m/s的条件下,插秧机沿预定路线的最大横向位置偏差为0.2299m,平均偏差为0.0934m。采用BP神经网络控制的方法能够满足插秧机对水田路径跟踪的要求。
权利要求
1.一种基于神经网络的农业机械路径跟踪控制方法,其特征在于包括下述步骤(1)样本采集将导航定位系统安装在农业机械上,由熟练驾驶员驾驶农业机械在田间按不同速度条件沿着预定路线行走,由导航定位系统采样、解算并记录当前时刻农业机械相对于预定路线的横向跟踪误差、纵向航向偏差、行进速度以及转向轮的操纵角,获得神经网络的训练样本;(2)网络训练采用BP神经网络构建的导航控制器由由输入层、隐层和输出层组成,输入层神经元为横向跟踪误差、纵向航向偏差和行进速度;隐层神经元采用 (ξ取0~9)的方式获得;输出层为控制输出量,即转向轮操纵角;对BP神经网络导航控制器进行仿真训练,确定BP神经网络的权值和阈值,并进行神经网络精度的T检验;(3)网络应用将训练好的神经网络导航控制器应用于农业机械导航控制系统,实现农业机械对预定路线的跟踪。
2.根据权利要求1所述的基于神经网络的农业机械路径跟踪控制方法,其特征在于所述的导航定位系统包括导航传感器组合、便携计算机和数据传输线。
3.根据权利要求1所述的基于神经网络的农业机械路径跟踪控制方法,其特征在于步骤2中,在进行网络训练时,参数设置是初始学习率为0.02,动量系数为0.98,网络的误差为0.01;采用带动量的批处理梯度下降法来训练BP神经网络。
4.根据权利要求1所述的基于神经网络的农业机械路径跟踪控制方法,其特征在于步骤3中,采用VC++调用MATLAB中的神经网络工具箱的方法来实现导航控制器。
5.根据权利要求1所述的基于神经网络的农业机械路径跟踪控制方法,其特征在于步骤3中,将神经网络导航控制器软件模块嵌入所述数据采集软件系统中,实现农业机械对预定义路线的跟踪。
全文摘要
本发明公开了一种基于神经网络的农业机械路径跟踪控制方法,通过样本采用、网络训练和网络应用等步骤完成。本发明采用神经网络学习人工驾驶农业机械的操作经验,构建神经网络导航控制器,实现农业机械装备沿预定义路线的自动路径跟踪;具有一定的自适应能力,有效提高了路径跟踪的精度。
文档编号G05B13/02GK101078935SQ20071002887
公开日2007年11月28日 申请日期2007年6月28日 优先权日2007年6月28日
发明者罗锡文, 王坤, 张智刚, 周志艳 申请人:华南农业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1