首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ARM的无人机飞行控制系统的实现(2)

基于ARM的无人机飞行控制系统的实现(2)

2 控制策略及软件设计
    2.1 控制策略
    根据无人机飞行控制系统设计要求及所要完成的功能, 将无人机飞行控制分为姿态保持与控制模态、航向保持与控制模态、高度保持与控制模态、速度控制模态、自主导航模态、自动起飞模态及着陆模态。如图2所示为无人机飞行控制系统结构图。以垂直陀螺、三轴角速率陀螺惯性姿态信号为基础,通过升降舵、方向舵和副翼舵控制,构成飞行姿态稳定与控制内回路。内回路是飞行控制的核心控制回路,是飞行高度、航迹等外回路控制的基础。以GPS的位置、航向信号、高度传感器的气压高度信号为基准,通过导航控制方法计算出飞行控制内回路给定姿态和发动机油门位置指令,构成系统的外回路。



    2.2 软件设计
    飞控软件的设计是实现飞控计算机功能的关键部分。信息吞吐量大,功能多,逻辑时序关系复杂, 特别是实时性要求高,是飞控计算机软件的主要特点。传统的嵌入式系统设计中,大多采用单任务的顺序机制。应用程序是一个无限的大循环,所有的事件都按顺序执行,与时间相关性较强的事件靠定时中断来保证。这种编程方式的优势在于程序较为直观,但由此带来一个重要的问题,那就是系统的稳定性、实时性较差。尤其当系统功能较复杂, 同时对实时性要求较严格时,这种单任务机制的弱点便暴露无遗。
    本飞行控制采用了源码公开的实时嵌入式操作系统 u[size=+0]C/0s—II
,它是实时多任务操作系统,存在多任务库并可并发管理多外设, 它可根据应用程序和系统硬件的需求对操作系统进行裁剪和配置,最大程度压缩代码, 实现程序的优化。因此,在新一代的飞控系统软件设计中选用 uc/OS—II操作系统。将系统所要的功能细化成为几个核心任务, 由 uc/OS—II实时内核进行调度,实现了多任务的并行执行, 系统的可靠性和实时性得到大幅提升。
将系统功能按照优先级顺序分为数据采集模块,控制解算模块,模态控制模块, 高度航向读取模块, 指令接收模块,GPS接收模块,航路控制模块,遥测发送模块。这8个模块作为 uc/Os—II的8个任务,在实际系统中,每个任务都是一个无限循环的,由uC/OS—II根据各个模块的优先级和模块间的信号量和消息队列进行任务的调度。各个任务之间采取消息机制实现任务间通信。
    数据采集模块负责各个模拟信号的收集和处理,将收集的结果通过消息队列发给控制解算模块和遥测发送模块,由于无人机的姿态信息需要根据采样率进行定时采样,将本模块在定时器中断函数中实现,采样周期为20 ms。
    控制解算模块用于收集其他相关模块收集的无人机姿态航向和高度、位置等信息,根据地面指令,依照控制算法解算出对于各个舵机的控制量,将结果输出给舵机,控制无人机姿态。模态控制模块用于根据当前指令和无人机姿态、速度等信息决定当前所在的控制模态。
高度航向读取模块,指令接收模块和GPS接收模块分别用于接收高度航向,指令和GPS数据 航路控制模块用于在预设航路飞行时根据GPS数据解算航路控制信息。将解算值发送给控制解算模块。
    遥测发送模块用于发送遥测信息到地面,优先级最低。
    系统上电复位以后,经过bootloader把指令复制到片外512KRAM 中,开始运行,首先进行系统初始化,包括片内外围的器件、数字I/O 口初始化,定时器的设置,以及uC/OS— II自身的初始化。然后创建上述7个任务。在普通飞行模态下,除航路控制模块外,其余模块都处于就绪态。进入优先级
最高的控制解算模块开始运行,控制解算模块若收到多个模块发给的消息,则按照相应模态的控制规律进行运算,控制副翼舵机、升降舵机,否则进入挂起态;模态管理模块判断完无人机目前所处的模态,执行延时函数将自身进入就绪状态;指令接收模块,GPS接收模块和高度航线读取模块分别接收相应信息并发给控制解算模块消息,执行延时函数自身进入挂起态,若超时没有收到指令或GPS信息,则超时进入挂起状态;航路控制模块只有在无人机处于自主飞行时才处于就绪态,否则处于挂起态。遥测发送模块等待将各个模快收集的信息进行发送,发送完进入挂起态。上述各个任务之间通过信号量和消息队列进行协同, 完全能够按照要求并行运行。
    3 系统设计中的关键技术
    3.1 硬件资源的合理利用和端口配置的原则AT91M55800A有着丰富的硬件资源,能否充分利用和恰当配置这些资源是设计成败的关键。如果给CPU的负担过重,系统有可能难以完成实时控制的任务,如果配置不合理,资源则不能得到充分利用, 而且会影响系统的实时性,增添软件的复杂性。CPU 主要处理4路模拟量输入、1O路开关量输入、1路频率量输入、3路定时信号输入、4路PWM 波输出、8路开关量输出和4路串行数据接口,根据微控制器的结构特点分别配置,如将模拟量输入配置在A/D部分,开关量输入和输出配置在GPI/O,3路定时信号输入、1路频率量输入和PWM 波配置在定时/计数器多通道部分,4路串行数据接口通过适当扩展配置在3个USART上。在设计中对端口的分配遵循了以下原则,并做了一定的时间测算。

(1)首先确定MCU内核的实现方案,为输入输出信号量连接方案的确定开创条件;
(2)优先考虑各端口的基本功能,再次考虑端口的第二第
三功能;
    (3)考虑信号匹配与端口的驱动能力;
    (4)考虑时间因素, 对ADC、UARST、GPI/O、PWM、SPI等处理子程序进行时间估计与测算,确定CPU的任务量,保CPU有一定的时间裕度;
    (5)利用空余的端口做冗余设计,使某些功能的实现有一定的自由度。
    3.2 系统的抗干扰措施
    在无人机系统性能诸指标中,可靠性是首要考虑的因素。无人机飞行控制器必须稳定可靠地运行,否则将导致控制出现偏差,严重时将可能造成巨大经济损失或者生命危险。影响控制器可靠安全运行的主要因素有以下几个方面: 电磁场干扰,供电方式、元器件性能、PCB的布局与走线、机械结构设计等。针对这些因素,在本系统的硬件设计中采用了如下一些措施:主控板采用四层的高频电路板;采用滤波技术、去耦电容、屏蔽技术、隔离技术和接地技术减小电磁场的干扰;数字部分和模拟部分独立供电;尽量选用高集成度、高稳定性、高可靠性的面贴元件;PCB板上元器件按功能分区、就近布局,45。走线、满接地;选择高可靠性接插件, 紧固安装, 屏蔽壳体。
    在软件上,各个模块软件采取了抗干扰措施,如输人通道的数字滤波法,输出通道的重复赋值法,CPU 指令冗余法等。模块内部都有相应的故障诊断指令,一旦发生通讯超时等错误,将调用故障诊断函数进行处理。若判断相应的传感器发送故障,将故障编码通过遥测发送模块发送地面。
    3.3 采用uc/os- Ⅱ操作系统实现多任务机制
    采用uC/OS- Ⅱ操作系统, 通过自顶向下和面向目标的编程技术将系统按功能分为8个相对独立的子系统程序模块,分别完成输入、输出和控制计算等任务。可以单独对它们编写、调试、查错、修改和维护,减少了模块问的联系,增加了模块内的联系,愈发提高了模块的独立性达到了减少了程序的复杂性的设计目的,具有有效的控制程序的能力,适合实时系统的要求,更能反映无人机飞行状态。
    4 结束语
    本系统已经通过了地面联机试验,各模块功能完全正常,正在进行试飞。AT91M55800A 以它的高集成度,较低的功耗,强大的处理能力提高了系统的可靠性,减小了系统的体积,降低了系统功耗。尤其是uC/OS—II的使用,进一步提高了系统的可靠性,加强了系统的实时性,使得整机性能有了很大的提高。随着技术的不断发展,ARM 将以它特有的优越性在军事和高科技中得到广泛的应用。
继承事业,薪火相传
返回列表