本站小编为你精心准备了无人船编队控制仿真开发参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
《电子设计工程杂志》2014年第十一期
1硬件设计
1.1仿真中心仿真中心需要完成显示船体状态,串口信息输出和读取模拟电压值这3个功能。因此设计仿真中心由一台工控机实现,为这台工控机配置3个标准RS-232串口和一个PCI扩展的A/D,D/A扩展板,这里选用9112型扩展板,包含16路A/D通道,可以满足需求[1]。
1.2控制节点控制节点需要完成传感器数据接收,无线通信数据接收发送和电机电压输出等功能,其中,数据接收发送由串口实现,电压以模拟电压信号形式输出。因此,设计控制节点由嵌入式PC104控制平台实现,配置两个RS-232串口,及两路D/A输出通道。控制节点结构图,如图2所示。船上控制器PC104工控机挂载的设备有一个MTI-G传感器,一个无线模块和两个电机调速模块。MTI-G传感器周期性的提供姿态,3个角速度信息和GPS位置信息,与控制器的接口为RS232;无线模块周期性的将无人船的航行信息发送给遥控中心,并且实时接收遥控中心的控制指令,与控制器的接口为RS232;电机调速模块根据控制器发出的模拟信号,控制电机转动,与控制器的接口为D/A通道。
1.3遥控中心遥控中心需要完成无线通信数据接收发送的功能,其中,数据接收发送由串口实现。因此,设计遥控中心由普通笔记本电脑实现,配置一个USB转RS-232串口即可。
1.4接口描述仿真中心与控制节点有两个接口,分别是标准串口和两路D/A,A/D通道。其中,串口实现传感器数据的模拟,两路D/A,A/D通道实现两路电机控制电压传输的模拟。控制节点与遥控中心有一个由无线模块构建的无线通信网络实现数据交流,而这个通信接口在逻辑上也可简化理解为串口通信。
2软件设计
2.1仿真中心软件仿真中心软件为VC++6.0下编写的MFC程序,包含串口驱动,PCI9112扩展卡驱动和曲线绘图组件等。半实物仿真系统要求仿真系统实时接收控制节点的输入,并产生实时动态输出,较高的实时性才可以保证半实物仿真系统的稳定性和精度。本软件采用了多媒体定时器(multimediatimer),保证模型迭代的实时性,定时精度为1ms,无人船模型的仿真步长根据经验选择为10ms。对于传感器的定时输出,采用VisualC++的WM_TIMER消息映射实现。对于无人船的仿真采用面向对象的软件设计方法[5],设计类CAutoUSV完成对无人船的运动学仿真,将无人船的所有运动状态参数抽象出来封装进这个类中作为私有产量。这样关于无人船的运动将完全由该类的内部函数运算实现,分析无人船的特性可知,需要一个函数实现无人船在时间上的状态递推,解算下一时刻船的状态,设计函数CAutoUSV::onestep()实现船的状态递推,既模拟船在时间上的运动。还需要设计函数CAutoUSV::getStates()实现无人船状态的输出,相当于使用传感器测量船的状态。还需要设计函数CAutoUSV::control()函数实现外部控制的输入,相当于推进器作用于船的运动。由于模型解算对于时间的要求很高,所以函数control()和onestep()需要在多媒体时钟的响应函数中执行,而getStates()需要在时钟消息的响应函数中执行,获得船的实时状态,并以传感器格式发送出去。仿真中心软件提供了良好的图形界面,实时显示各个无人船的位置曲线,可以直观的看到仿真的效果。仿真软件模拟的传感器输出格式如表1所示。
2.2控制节点软件控制节点软件运行于船上控制器,其实时性要求很高,因此控制中心软件采用VxWorks嵌入式实时多任务操作系统,进行任务调度,以保证系统的实时性。船上软件中的任务主要有主任务,控制指令接收任务,MTI-G数据采集任务,无线通信驱动模块,电机控制任务。针对大量串口数据的收发,控制节点软件设计了高速有效串口数据读写缓冲区,保证了串口数据的实时更新。同时把串口的I/O操作放在任务中去,与主控制任务分开,保证了软件的稳定性和实时性。对于电机控制,不能有剧烈的提速。因此,控制机设计了提速保障机制,即在单位时间内设置提速上限,将过大的提速,逐渐提高上去,确保电机稳定工作。3.3遥控中心软件遥控中心软件工作在岸上的遥控计算机上,配备1个标准串口接无线模块,与各船上的无线模块构建无线通信网络,实时监控两条船的航行情况。并且在必要情况下通过无线块发出控制信息,直接控制船的航行。遥控软件接收控制节点发送过来的无人船航行状态数据,其具体格式如表1所示。同时遥控软件发送到控制节点的数据格式如表2所示。
3实验验证
为了验证本系统的实用性,进行3条无人船的编队运动控制实验。本次实验采用主从跟随的编队算法,设定一条船为主船,引领船队的航行,跟踪一条既定轨迹[6],其余两条为跟随船,以三角性姿态跟随主船运动。主船跟踪的轨迹曲线为:y=5sin(0.02πx),三条船的初始坐标为:主船(0,0),从船分别为(-50,-50),(0,50)。跟随船以三角性编队跟随主船[7-8],队形保持为边长为10的等边三角形,以主船为顶点的中垂线时刻指向船的航向。实验结果如图4所示。实验结果表明,本系统有足够的稳定性和实时性,可以满足多无人船编队仿真的要求。
4结论
针对无人船编队系统开发的需要,本文设计并实现了一种用于模拟多无人船编队的实时半实物仿真系统,该系统通过对电压信号的数模模数转换模拟电机控制信号的输出和采集,通过串行通讯端口模拟测量设备的数据输出和数据采集。利用PC104平台搭建无人船控制器,使用基于VxWorks的实时控制软件;利用工控机和VC++6.0环境搭建无人船仿真中心,实现无人船仿真过程数据的图形化显示。分析仿真实验结果,可以良好的模拟多无人船的编队行为。在验证编队算法和测试无人船嵌入式控制软件方面有很强的使用价值。
作者:严卫生王卫国高剑李勇强单位:西北工业大学航海学院