本发明属于导航制导控制技术领域,具体涉及一种基于快速原型的无人机拦阻着陆实时仿真方法。
背景技术:
基于快速原型的无人机拦阻着陆实时仿真技术是拦阻型无人机飞行控制系统测试验证的重要手段与方法,在拦阻型无人机研制过程中具有重要作用。设计与开发基于快速原型的无人机拦阻着陆实时仿真技术是为了对拦阻无人机研制过程中各个机载传感器设备与飞行控制逻辑进行逻辑验证和品质测试,及时进行错误反馈并纠正,从而降低研制成本和风险,并能够有效缩短研制周期。
随着拦阻型无人机系统本身的发展以及搭载设备的不断丰富,研制成本和开发难度也与日俱增。相应地,飞行仿真系统软件也日益复杂,不仅体现在本身功能的复杂上,也体现在系统的设计过程中,对各阶段和各模块的设计结果进行验证的复杂上。现有技术中对拦阻无人机各功能模块的模拟,都包含着大量、复杂的逻辑和运算,采用传统手工编码的方式进行设计时,开发难度大且设计周期较长。并且,传统手工编码的设计结果为文本代码,只有在已经具备仿真系统硬件平台的前提下才能对代码进行验证和测试,代码的通用性和可移植性差。为了解决这些问题,有必要设计一套更加高效经济的验证方法,来实现对拦阻无人机高置信度的测试与验证。
技术实现要素:
发明目的:本发明的目的是提供一种具有高置信度和能够快速软件代码实现的基于快速原型的无人机拦阻着陆实时仿真方法。
技术方案:本发明所述的一种基于快速原型的无人机拦阻着陆实时仿真方法,包括如下步骤:
(1)根据无人机空中及拦阻着陆阶段的动力学和运动学方程搭建无人机六自由度空中模型和地面拦阻模型,根据实际测试故障类型构建故障注入模型;
(2)根据仿真系统同优先级任务竞争、不同优先级任务相互抢占的特点设计时间片轮转与优先级抢占相结合的任务调度机制,根据任务收发频率快,数据量大的资源交互特点设计互斥保护机制与消息队列数据保护逻辑;
(3)根据无人机系统模型特点设计多采样频率模式,编写用于处理数据与逻辑的手工代码,针对vxworks目标机平台设计交叉编译环境;
(4)将快速原型生成的标准化代码与手工代码交叉编译生成可执行文件。
进一步的,所述步骤(1)包括以下步骤:
(101)根据动力学与运动学方程构建无人机空中模型、伺服舵机模型和传感器模型;
(102)将无人机分为机身系统(机身与起落架支承)与起落架系统(不包含起落架支承)
两部分,共同构建地面拦阻着陆模型;
(103)根据故障类型构建故障注入模型,其数学模型为:
式中,y为模型在故障注入后的输出值,u为模型在故障注入前的输入值,ei为叠加类的故障输出值,n为叠加类故障的个数,j为非叠加类故障的个数,fj为非叠加类故障的函数。
进一步的,所述步骤(2)包括以下步骤:
(201)根据cpu实时操作系统vxworks,创建可重配置任务和通讯任务;
(202)根据仿真系统任务特点进行优先级分配,设计时间片轮转与优先级抢占相结合的任务调度逻辑;
(203)使用环形缓冲区和消息队列等工具设计资源访问策略,并设计通讯互斥保护逻辑和消息队列溢出保护逻辑。
进一步的,所述步骤(3)包括以下步骤:
(301)根据通信频率要求与实时性要求设计模型为多采样频率工作模式;
(302)通过参数内联化与使能子系统等方式,从内存占用率和代码执行效率两个方面对模型进行优化;
(303)根据模型与用户代码共用的变量类型设计模型交互的接口文件,使得模型与代码能够彼此调用;
(304)设置编写对应vxworks目标系统的目标语言编译文件(tlc文件);
(305)根据vxworks目标机平台类型编写模板联编文件(make文件)。
有益效果:本发明的一种基于快速原型技术的无人机拦阻着陆实时仿真方法,克服了传统手工建模编码的开发周期长、人为错误率高的困难,将复杂的拦阻着陆过程以数学表达式形式描述,再以图形化的simulink框图表示,利于进行快速原型设计初期的数字闭环仿真验证与仿真系统后期维护工作;本发明利用“存储空间重用”和“参数内联化”方法对快速原型生成代码的内存使用量进行了优化,既可以降低内存占用率又可以对特殊需求的变量进行实时修改;通过“使能子系统”和“参数内联化”方法对代码的执行效率进行了优化,提升了cpu的运算性能与仿真系统实时性;本发明针对仿真系统设计的时间片轮转与优先级抢占相结合的调度机制,提高了系统运行的实时性和稳定性;利用设计的资源交互保护策略,保障了数据访问与交互的安全性和可靠性。
附图说明
图1为本发明一种基于快速原型技术的无人机拦阻实时仿真方法流程图;
图2为本发明中无人机本体模型构成示意图;
图3为本发明中舵回路结构示意图;
图4为本发明中拦阻着陆示意简图;
图5为本发明中半物理仿真与实测拦阻索拉力曲线对比示意图;
图6为本发明中故障注入结构示意图;
图7为本发明中任务时间片与优先级抢占结合的调度机制示意图;
图8为本发明中互斥信号量实现互斥机制示意图;
图9为本发明中消息队列实现消息传递策略流程图;
图10为本发明中实时仿真结果验证示意图。
具体实施方式
为进一步了解本发明的内容,结合附图及实施例对本发明作详细描述。
本实施例所述的一种基于快速原型技术的无人机拦阻着陆实时仿真方法,具体设计步骤如下:
步骤101:搭建无人机系统模型
如图2所示,首先由舵面偏转值计算气动力和力矩,由油门开度值计算发动机力和力矩,再结合重力及力矩与风扰力及力矩,根据无人机刚体运动方程求出无人机所受总的力和力矩,通过搭建出的六自由度非线性模型计算出飞行状态,以此形成闭环系统;再采用舵回路作为执行机构,其结构示意图如图3所示,舵回路本身就是一个伺服系统,核心部件是直流伺服电机,通过机理分析可建立伺服电机的数学模型;最后根据gps、速率陀螺等传感器特性搭建数学模型,其它传感器则仅对接口特性进行模拟。
步骤102:搭建拦阻着陆模型
如图4所示拦阻着陆阶段无人机的受力简图,将无人机分为两部分,一部分是机身、起落架系统中的空气弹簧支承,另一部分是缓冲器活塞筒、刹车系统和轮胎系统组成的非空气弹簧支承部分,对这两部分分别进行受力分析与建模,最后进行力和力矩的综合。如图5所示,为本拦阻着陆模型的仿真结果与实测拦阻拉力的曲线比较图,初始条件为:飞机质量为1200kg,拦阻速度为72m/s,飞机质量在拦阻挂钩初期,由于拦阻索中应力波影响,导致拉力波动幅度较大,本模型并未考虑应力波影响,故曲线呈平滑状态,但是拦阻拉力变化趋势一致,最大拉力值达到25105n,拦停距离为90.24m,符合拦阻基本特性。
步骤103:搭建故障注入模型
如图6所示利用软件代码处理各个舵机、传感器与飞控计算机之间的底层通信数据,再把各类故障表现出来的故障特性叠加到原始数据上进行传输,其数学表达式为:
式中,y为模型在故障注入后的输出值,u为模型这故障注入前的输入值,ei为叠加类的故障输出值,n为叠加类故障的个数,j为非叠加类故障的个数,fj为非叠加类故障的函数。以此故障注入模型作用于仿真系统表现出漂移、偏差、饱和、死区、噪声、延迟和舵效下降等故障特征,以此验证系统的容错和故障处置逻辑。
步骤201:选择cpu的实时操作系统,并创建可重配置任务和通讯任务
根据项目需求选择功能和性能达标的vxworks操作系统作为目标机平台,创建高优先级的系统任务rt_main及模型解算任务singlerate,创建低优先级的各传感器通讯任务如ahrs_rate、gps_rate等,以保证系统正常运行的实时性。
步骤202:设计任务调度逻辑并进行优先级分配
无人机仿真系统任务繁多,任务类型与实时性要求各不相同,所以按照优先级分配原则对仿真系统的任务进行划分,以满足系统运行的实时性要求;任务间运行则选择使用时间片轮转与优先级抢占相结合的调度机制,以实现相同优先级与不同优先级任务间的合理调度,工作机制如图7所示。图7中分别有t1、t2、t3三个任务,其中t2和t3是同优先级任务,t1的优先级高于t2和t3。t2和t3是采用的时间片轮转的方式根据时间片长度轮询占用cpu的资源;当t1任务处于就绪态时,便会抢占t2任务的资源,t2被挂起,t1任务执行完毕后,t2任务被唤醒重新执行,这里采用的是优先级抢占机制。
步骤203:设计资源访问策略与通讯互斥保护逻辑
仿真系统任务间通过共享数据区和消息传递来实现任务之间的资源访问和数据交互。但是需要采用互斥信号量的方式对共享数据进行保护,互斥信号量实现互斥机制示意图见图8;任务a在对数据a写入完成后释放信号量,任务b获取信号量之后,对数据a拥有全程使用权,第二次高优先级任务a试图对数据a进行写入操作时,无法获取信号量,所以不能执行写入操作,直到任务b执行完将信号量释放,任务a才能重新获得使用权。这样有效保证了数据交互前后的一致性。消息队列也需要通过取出过期数据来解决缓存区写满的问题,处理逻辑如图9所示。两种保护逻辑共同保证了数据资源访问的安全性与实时性。
步骤301:设计模型多采样频率模式
根据伺服作动器与各类传感器的通信速率要求与模型解算精度要求,将各个模块设置为原子子系统,不同子系统采用不同采样频率,舵机模块设置采样周期为4ms,无人机本体模型设置为1ms,传感器模块设置为5ms,这样设计既充分满足系统运行实时性要求又能减少cpu占用率。
步骤302:优化模型的内存使用量和代码执行效率
使用存储空间重用和参数内联化这两种优化手段对代码生成的方式进行优化,有效降低了模型生成的代码量和内存使用量;使用使能子系统和参数内联化这两种手段减少对不必要实时参与解算模块和不需要实时修改参数的访问,提高代码的执行效率。
步骤303:统一模型和用户代码交互的全局变量
在模型配置界面configurationparameters添加全局变量表,在用户代码端编写接口文件进行全局变量申明,使用stateflow状态机便可实现模型与手工代码之间的交互应用。
步骤304:设置对应目标系统的目标语言编译文件(tlc文件)
根据不同的目标操作系统平台设置并修改对应的目标编译文件,本仿真系统使用的是vxworks操作系统故需要修改为tornado.tlc,用于指导和控制整个代码的自动生成的过程。
步骤305:根据目标机平台类型编写模板联编文件(make文件)
在自动生成模型的源代码c文件和h文件后,需要修改模板链编文件(tmf)生成指定目标系统的make文件,其中包括配置目标cpu类型(cpu_type)、make文件执行路径(makecmd)、设置选择的实时操作系统编译器(wind_base)和内核位置(vx_core_loc)、生成目标名及目录(objs)、用户执行目录(user_srcs)等。
步骤306:编译链接模型
通过make文件指导生成可在vxworks操作系统上运行的可执行文件。
完成上述步骤后,便能够将matlab环境下搭建的无人机系统模型转换生成为适配于vxworks目标机平台的可执行文件运行。现设置无人机初始状态为:油门开度95%,方向舵和副翼舵均偏转0°,升降舵面偏转-5°。仿真开始,无人机在95%的油门开度下有足够的推力使飞机升速至22m/s后起飞离地进行爬升飞行。
如图10所显示的飞行高度和俯仰角曲线可知,模型与代码生成的运行结果误差低于1%,说明实时仿真结果可信,从而说明本发明一种基于快速原型的无人机拦阻实时仿真方法切实有效。
1.一种基于快速原型的无人机拦阻着陆实时仿真方法,其特征在于,包括如下步骤:
(1)根据无人机空中及拦阻着陆阶段的动力学和运动学方程搭建无人机六自由度空中模型和地面拦阻模型,根据实际测试故障类型构建故障注入模型;
(2)根据仿真系统同优先级任务竞争、不同优先级任务相互抢占的特点设计时间片轮转与优先级抢占相结合的任务调度机制,根据任务收发频率快,数据量大的资源交互特点设计互斥保护机制与消息队列数据保护逻辑;
(3)根据无人机系统模型特点设计多采样频率模式,编写用于处理数据与逻辑的手工代码,针对vxworks目标机平台设计交叉编译环境;
(4)将快速原型生成的标准化代码与手工代码交叉编译生成可执行文件。
2.根据权利要求1所述的一种基于快速原型的无人机拦阻着陆实时仿真方法,其特征在于,所述步骤(1)包括以下步骤:
(101)根据动力学与运动学方程构建无人机空中模型、伺服舵机模型和传感器模型;
(102)将无人机分为机身系统与起落架系统两部分,共同构建地面拦阻着陆模型;
(103)根据故障类型构建故障注入模型,其数学模型为:
式中,y为模型在故障注入后的输出值,u为模型在故障注入前的输入值,ei为叠加类的故障输出值,n为叠加类故障的个数,j为非叠加类故障的个数,fj为非叠加类故障的函数。
3.根据权利要求1所述的一种基于快速原型的无人机拦阻着陆实时仿真方法,其特征在于,所述步骤(2)包括以下步骤:
(201)根据cpu实时操作系统vxworks,创建可重配置任务和通讯任务;
(202)根据仿真系统任务特点进行优先级分配,设计时间片轮转与优先级抢占相结合的任务调度逻辑;
(203)使用环形缓冲区、消息队列和信号量工具设计资源访问策略,并设计通讯互斥保护逻辑和消息队列溢出保护逻辑。
4.根据权利要求1所述的一种基于快速原型的无人机拦阻着陆实时仿真方法,其特征在于,所述步骤(3)包括以下步骤:
(301)根据通信频率要求与实时性要求设计模型为多采样频率工作模式;
(302)通过参数内联化与使能子系统方式,从内存占用率和代码执行效率两个方面对模型进行优化;
(303)根据模型与用户代码共用的变量类型设计模型交互的接口文件,使得模型与代码能够彼此调用;
(304)设置编写对应vxworks目标系统的目标语言编译文件;
(305)根据vxworks目标机平台类型编写模板联编文件。
5.根据权利要求4所述的一种基于快速原型的无人机拦阻着陆实时仿真方法,其特征在于,步骤(302)中所述内存占用率的优化方式为使用存储空间重用。
技术总结