神州普惠

自动驾驶仪神经网络控制的HLA仿真研究

  摘 要:在对空空导弹自动驾驶仪各功能模块需求和能力分析的基础上,以组件的重用和可扩展为目标,运用HLA技术划分各联邦成员,成功组建神经网络自动驾驶仪分布式仿真系统。设计过程中的关键技术如对FOM/SOM设计和Simulink模型代码转换分别做了研究,给出了基于Matlab/Simulink所建立的空空导弹自动驾驶仪神经网络控制算法与HLA集成的一个工程样例。

  关键词:空空导弹;自动驾驶仪;高层体系结构;运行支撑框架;联邦对象模型;仿真对象模型

  最近十几年来,神经网络技术作为一种新技术已经应用在飞行器控制系统中,并且取得了很大的进展。MCFarland .M.B等人利用神经网络自适应控制技术为灵巧的防空导弹设计了自动驾驶仪,Unnikrishnan. N等人也将自适应控制和神经网络相结合设计了导弹的纵向运动自动驾驶仪[1]。把神经网络技术和导弹建模控制技术结合起来,直接应用在非线性模型上,对提高导弹控制系统的抗干扰性、改善导弹的飞行品质、提高导弹的精确打击能力,将是一项很有意义的尝试。但是神经网络控制系统的仿真和传统的控制方法不同,人工神经网络具有并行处理、高度容错、非线性运算等诸多优点,基于单一的Matlab软件仿真所得的结果并不能和实际运行的结果分析相一致,原因在于神经网络控制的优点在于并行和高速,计算机技术的仿真程序是串行运行,其控制对象参数变化的时序与神经网络辨识的时序很难一一对应,为保证仿真运算结果与实际物理实现尽可能的一致性,文中采用HLA(high level architecture)分布式仿真技术,对自动驾驶仪的神经网络控制算法进行实时性和同步性仿真。

  1、空空导弹自动驾驶仪控制系统结构

  导弹系统是一种多变量、非线性、时变的复杂系统,即使在舵面固定偏转的条件下,导弹作为刚体在空间运动有6个自由度,需要由12个一阶微分方程来描述,再加上制导系统中各元部件的工作过程,需要的微分方程数目就更多了。而对于实际飞行中的导弹来说,它在空中飞行时所受到的干扰很大,各种非预期的干扰因素很多,这更增加了导弹建模和仿真的难度。在目前的Matlab仿真中,一般的处理方法是采用小扰动固定参数简化模型的方法来减少计算

  机仿真的计算时间。神经网络辨识的对象应尽可能的逼近实际的对象,复杂对象本身的仿真将对计算机性能提出很高的要求,在Matlab/Simulink环境中,对象仿真和神经网络辨识仿真、BP网络自适应PID控制仿真一般分别进行。在图1所示的神经网络控制器的设计中,为增加仿真结果和实际系统的一致性,便于系统整体开发和今后的扩展、重用,根据驾驶仪控制过程的特点和需求,文中采用HLA技术,将Matlab/Simulink环境下开发的控制算法转换为HLA的联邦成员,实现整个系统的协同仿真。

 

 

  

 

  2、仿真系统设计

  2.1 系统结构体系

  根据驾驶仪BP神经网络控制过程的特点和需求,将其划分为3个功能模块(即转换为3个邦员)作为整个系统的不同功能组件。该仿真系统中每个联邦成员用一台计算机来模拟。另外,由一台计算机运行管理联邦运行的仿真管理邦员。RTI由一台服务器来运行,并设置好Windows系统环境变量和RTI初始化文件RID (RTI initialization data)。系统体系结构如图2所示。

  

 

 

  2.2 联邦成员设计

  系统中各个邦员之间信号和数据的传递是十分复杂的,在进行改造过程中把各模块代码转换作为子程序,不仅能更好的实现系统仿真任务,而且组件有较好的重用性和可扩展性,便于今后系统的重用。系统联邦成员设计如下:

  1)仿真管理联邦成员:主要用来负责联邦执行的创建,完成仿真管理的任务规划、初始化设置及控制管理和系统仿真模式的初始化配置。

  2)神经网络飞行控制联邦成员:包括BP神经网络与PID控制器,现代空空导弹的驾驶仪是实时调整参数系统,其性能仿真通常针对导弹的飞行状态采用多条极限弹道,选择典型的特征点,对每个特征点进行参数设计。文中将这些单个的特征点作为神经网络的输入、输出样本,对神经网络进行训练。这样,即可通过特征点的设计来确定驾驶仪的控制参数,自适应的调整PID器控制参数。在Matlab/Simulink环境下可以建立其模型如图3。

  3)舵机联邦成员:空空导弹伺服机构的仿真模型,4个舵偏角控制输入信号接受神经网络控制算法输出,主要作用是用以偏转舵面,操纵导弹机动。

  4)导弹动力学联邦成员:该联邦成员的设计主要用来计算弹体的动力学模型、陀螺模型和加速度模型。

  图3 BP网络PID控制器.mdl邦员

  

 

 

  2.3 FOM/SOM的开发

  FOM表描述联邦执行中各联邦成员之间进行交互的全部共享信息,是各联邦成员发布的对象类和交互类信息的集合。SOM是单一联邦成员的对象模型,它描述了单个联邦成员对其它联邦成员需要订购哪些对象类属性和交互类参数及向其它联邦成员可以公布哪些对象类属性和交互类参数。FOM /SOM通常是在系统详细设计之前完成的,是联邦进行交互的基础。众多的开发方法中,面向对象的分析和设计(OOAD)方法为各联邦成员建立对象模型提供了一个比较理想的技术方法[2]。系统采用Labworks-OMDT来实现FOM/SOM[3]的设计与开发,主要是对象类与交互类的设计。本系统的对象类主要是邦员的信号输出类,属性有类型、状态、数值。

  3、仿真实现和运行

  3.1 系统仿真流程

  将空空导弹自动驾驶仪仿真程序改造成HLA兼容的仿真程序,仿真主线程流程图如图4所示

  

 

 

 

  3.2 仿真程序实现

  3.2.1 控制算法RTW C代码转换完成仿真模型的SOM设计后,即可开发支持该SOM的HLA接口软件。通过文献[1]提出的Simu-link模型转化为HLA成员的思想,用Real-TimeWorkshop将Simulink模型转化为C代码,再用分析/配置工具将C代码转化为HLA联邦成员代码。由于Real-Time Workshop生成C代码不是面向对象的,而SOM及其代码均面向对象,因此HLA接口

  实现可采用C和C++混合编程(因C++支持C,易于实现),其运行不依赖于Matlab,速度快。

  由于对System Target File文件选择的目标文件不同,RTW生成的文件也不尽相同,文中选择“Visual C/C++ Project Makefile only for“grt”target,以BP神经网络控制.mdl为例,给出C代码转换过程,

  如图5所示。

  

 

 

  在Visual C/C++环境下打开pidbp.mak文件,相关文件会自动加载到对应的文件目录下。

  3.2.2 程序实现

  • 文件大小: 164.1KB

运行支撑框架,高层体系结构,仿真对象模型