本文针对传统仿真方法的不足,采用opengl图形系统结合vc++软件开发平台设计出智能跟踪控制系统三维动画仿真软件。在该软件的设计方案中,提出自动导入的方法使其能直接导入来自各种现场的数据,克服数据来源复杂的难题;提出几何变换法实现视点调整功能,使仿真过程具有多角度可视性;利用程序的延时技术实现仿真速度的可控性,提高了软件对仿真对象进行观察研究的能力。
2 仿真软件总体框架
智能跟踪控制系统三维动画仿真软件的基本任务是提供仿真数据的导入功能,智能体轨迹跟踪过程的精确重演,提供仿真过程的交互功能。通过数据导入功能,不论是来自于实物实验还是仿真实验的数据都能较容易地被该仿真软件使用。仿真运行时要能生成三维动画图像,精确模仿智能体轨迹跟踪过程。仿真过程中要能够对视点和速度进行调整,以便于从各个方向和不同的距离观察,以及快放和慢放轨迹跟踪过程,进一步方便对仿真结果进行分析和处理。
轨迹跟踪控制系统可能只涉及到一个智能体,也可能涉及到若干个智能体,各个智能体在跟踪过程中可能组成编队并担任着不同的职能,不同类型的智能体以及不同的跟踪任务其跟踪控制方法也不同[3]。但跟踪原理基本一致,即智能体根据预设的或者捕捉到的目标轨迹,经过计算产生控制信号输入,使其发出跟踪行动,产生跟踪轨迹。
为了便于整体开发和扩展应用,根据轨迹跟踪过程的特点和研究需求,将软件按照实现的功能进行模块化设计,并通过操作界面来控制其功能的实现。图1所示为该仿真软件的框架结构。
图1 仿真软件框架示意图
该仿真软件主要设计有导入模块、重演模块、控制模块三大功能模块,以及提供用户界面的界面模块。其中界面模块用vc++[4]开发,为用户提供可实现各项功能的操作界面。导入模块可将复杂数据源的数据导入到指定存储器中;重演模块将数据生成轨迹跟踪过程的三维动画;控制模块实现用户交互功能,可以在仿真过程中通过它调整仿真速度和视点位置。
3 智能跟踪控制系统建模
根据轨迹跟踪基本原理建立智能轨迹跟踪控制系统模型。
设定目标轨迹为:
s0(t)=[s0(t),s0(t),s0(t)]t,
智能跟踪控制系统为:
(1)其中t为时间参数,x(t)=[x1(t),x2(t),x3(t)]t为系统的状态向量,u(t)=[u1(t),u2(t),u3(t)]t为系统的输入向量,f(t)=[f1(t),f2(t),f3(t)]t为系统的控制信号输入向量,ai,i=1,2,3为系统状态的常数系数矩阵,bi,i=1,2,3为系统输入的常数系数矩阵。
设计控制信号输入f(t)使系统(1)有一个特解为s0(t)这时:
(2)由于系统(1)渐近稳定,因而系统(1)的任意解都趋向于s0(t)。
利用matlabsimulink工具箱[5]可将数学模型转换为计算机仿真模型。图2为系统(1)第一个变量的仿真模型。input controller为系统的控制器模块,其功能是将采集的目标状态s0通过函数计算得到系统的控制信号f1输出。
图2 系统(1)第一个变量的仿真模型