本文针对传统仿真方法的不足,采用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)。
利用matlab\simulink工具箱[5]可将数学模型转换为计算机仿真模型。图2为系统(1)第一个变量的仿真模型。input controller为系统的控制器模块,其功能是将采集的目标状态s0通过函数计算得到系统的控制信号f1输出。
图2 系统(1)第一个变量的仿真模型
4 三维动画仿真软件设计
4.1 导入功能设计
研究轨迹跟踪系统需要采集和处理大量的系统状态数据,而数据的来源方式具有多样性,可以是系统仿真数据,也可以是若干智能体设备的运行数据。导入模块的功能是将这些外部数据以规则的方式存贮在仿真软件指定的存储器中。图3为该仿真软件的数据流图。
当仿真对象发生变化时,只要在存储器中导入新的跟踪系统状态数据,无需改变任何程序代码,就可以进行新系统的仿真。导入功能将数据的供给与动画实现程序独立开来,使整个仿真软件不受数据来源情况复杂的限制。
图3 仿真软件数据流图
4.2 opengl动画开发设计
opengl图形系统是行业领域中最为广泛接纳的2d/3d图形api[6],其跨平台性和优越的三维动画特性可以满足仿真软件的需求。基于第2节对程序各个功能模块进行的需求和能力分析,设计开发了轨迹跟踪动画实现代码。该模块只向指定存储器读取轨迹跟踪行为的数据,并且留有控制指令接口,实现了动画核心程序的重用和可扩展。程序流程如图4所示。
图4 opengl三维动画程序流程图
将第3节建立的智能跟踪控制系统模型分别运用matlab和三维动画仿真软件进行仿真,仿真结果分别如图5,图6所示。
图5 matlab仿真结果
图6 三维动画仿真结果
图5是matlab仿真结果,我们只能观察到跟踪过程完成后的情况,其中sys1、sys2、sys3的点线分别表示智能跟踪系统一、系统二、系统三的轨迹。图6是三维动画仿真结果,如图6所示,目标为红色,其运动轨迹为红色椭圆,颜色分别为橙色、绿色、蓝色的智能体从不同空间位置出发,以各自的路径和速度进入目标轨迹,然后沿着目标轨迹跟踪目标。从图6(b)中可以看到绿色智能体跟踪速度最快,进入目标轨迹后几乎与目标重合。对比两种软件的仿真效果,三维动画仿真能更加直观地表现出智能体跟踪运动过程。
4.3 仿真过程控制
在对跟踪控制问题的研究过程中,为了改进智能体模型或者控制器性能,需要详细观察智能体某个阶段的运动轨迹形态。为了达到此要求,设计开发过程控制模块,实现对仿真过程的实时控制。该模块主要设计了两种键盘控制功能,即速度调整和视点调整。
速度调整是在创建系统形体的间隙设置额外的延迟时间来调控仿真速度。设计在f1~f6按键响应程序中分别设置六个档次的速度。
视点调整是设计用几何变换法来改变视点的位置。该方法的设计原理如图7所示。
图7 几何变换设计原理图
图7中,o为轨迹中心;ρ为由o指向视点的矢量;视点坐标(x,y)为矢量ρ分别在x轴和y轴上的投影值;圆环面l为xoy平面上的视点调整区域,由ρ的模最大值和最小值来界定;上、下方向键分别用于调整ρ变大、变小;左、右方向键用于调整视点在l内以o为圆心ρ为半径的圆环上分别向左、向右移动。基于该几何变换法的设计,在仿真运行过程中,通过控制模块向软件发出指令,就能够实现视点360°全方位移动和观察距离的调整。图8为经过视点调整后看到的仿真图像。
图8 轨迹交接放大图
从图8中能够观察到各条跟踪轨迹接近目标轨迹前的形态以及接近的位置,进而判断各系统模型或跟踪控制器的优劣,为改进它们的参数提供了实验依据。
5 结束语
本文根据智能跟踪控制系统研究的需要,开发出三维动画仿真软件。该软件具有以下突出优点:采用数据导入的思想,使软件摆脱数据来源复杂的限制,拓宽了该仿真软件的使用范围;设计视点几何变换法等,实现仿真过程的实时可操作特性,从而提高了其作为仿真研究的价值;采用模块化设计,结构紧凑合理,可重用性和扩展性较强。
评论
查看更多