基于586-Engine的无人机飞行控制器设计
扫描二维码
随时随地手机看文章
引言
在无人机飞行控制系统中,飞行控制器是其核心部件,它负责飞行控制系统信号的采集、控制律的解算、飞机的姿态和速度,以及与地面设备的通讯等工作。
随着无人机越来越广泛的应用,它所完成的任务也越来越复杂,对无人机的机动性要求也越来越高,这就要求无人机的控制核心向高集成度和小型化方向发展。
本文以586-Engine嵌入式芯片为核心,设计了某型无人机的飞行控制器,详细介绍了系统的硬件结构和相应的软件流程,并给出了仿真实验结果。
586-Engine嵌入式芯片的性能特点
586-Engine是TERN公司的基于AMD Elan SC520处理器的微控制模块,具有高可靠性、结构紧凑以及低功耗等特点,它同时具有功能强大的调试软件。586-Engine的主要参数指标如下:
(1)CPU为32位AMD Elan SC520,主频为133MHz;
(2)具有高性能的浮点运算单元,支持正弦、正切、对数等复杂运算,非常适合需要复杂运算的应用。
(3)配置512KB的SRAM,512KB的Flash,114字节内部RAM;
(4)支持15个外部中断。共有7个定时器,包括一个可编程内部定时器,提供3个16位内部定时器和3个16位GP定时器,再加上一个软件定时器。这些定时器支持外部事件的计时和计数。软件定时器提供微秒级的硬件时间基准。
(5)提供32路可编程I/O,2个UART。共有19路12位A/D输入,包括11路ADC串行输入和8路并行ADC,转换频率为300kHz;6路D/A输出,包括2个串行输出DAC和4个输出并行12位DAC,转换频率为200kHz。
(6)工作温度为-40℃~80℃,尺寸为91.4mm×58.4mm×7.6mm。
飞行控制器硬件设计
该型无人机是为海军野战部队提供通讯中继用途的中型轮式无人机,其飞行控制器是一个单独装箱的小型航空机载电子设备,由DC/DC直流电源变换板、计算机主机板、模拟量通道板、开关量通道板和舵机控制板组成,全部模板通过母板上的总线方式连接,以减小尺寸,提高集成度。飞行控制器硬件结构如图1 所示,实物图如图2所示。
下面详细介绍飞行控制器的数据采集、信息传输、控制量输出等问题。
(1)串口扩展
由图1可知,该飞行控制器需要与GPS、磁航向计和无线电高度表等进行通讯,共需5个串口。而586-Engine主板只提供2个串口,分别供地面检测和测控电台使用,因此需要进行串口扩展。串口扩展电路如图3所示。
串口扩展电路中采用TL16C754四通道UART并-串转换器件,将8位并行数据转换成4路串行输出,外加MAX202和MAX489电平转换芯片,扩展了2个RS232串口和2个RS422串口,可满足飞行控制器的硬件需求。
(2)D/A转换
此型无人机采用模拟舵机,共需6路D/A通道产生PWM信号来驱动舵机。586-Engine主板总共提供8路D/A,其中4路12位并行 D/A(DA7625)分别控制升降舵机、左右副翼舵机和方向舵机,2路12位串行D/A(LTC1446)控制前轮舵机和油门舵机。由于DA7625的输出电压范围为0~2.5V,LTC1446输出电压范围为0~4.096V,而舵机工作电压为-10~10V,因此需要对信号进行放大和电平平移。 D/A电平平移电路如图4所示。
由图可知,D/A电平转换原理是在运放输入端采用加法电路,将输入信号与基准电平比例相加,得到适合采样的电压范围。输入电平与输出电平的关系为。
(3)A/D采集
586-Engine主板上自带的19路12位的A/D接口完全满足飞控系统通道数和转换精度的要求,这些A/D接口分别采集气压高度表的数据,无人机机载电压、发动机转速和温度、油门开度等。这些信号发往地面测控计算机,为操作人员对无人机工作状态进行监控提供了基础。
(4)I/O控制
586-Engine主板上提供了32个16位可编程数字I/O口,用于采集发动机启动信号、伞舱打开信号等,并输出开关量信号控制其它设备,控制无人机起飞与回收过程。
(5)电源模块
飞行控制器的电源模块电路给飞行控制器提供干净稳定的供电电压,用来保证飞行控制器正常工作。电源模块电路的设计好坏直接影响飞行控制器运行的稳定性和可靠性。该型无人机由于对尺寸有一定的要求,同时考虑到可靠性与成本,因此在设计时选用了成熟的标准模块电源,外接少量器件即可工作。飞行控制器供电模块电路如图5所示。
其中,采用24T05D12模块电源作为供电电路的主芯片,提供的功率为30W,输入电压范围为18V~36V,具有三路电源输出:+5V和±12V,为机载传感器和舵机进行供电。
控制软件设计
飞控软件开发环境
586-Engine微处理器使用的开发环境Paradigm C/C++Professional是美国Devtools公司用于开发嵌入式系统应用的集成开发环境,它支持嵌入式X86系统,包括一个X86的集成开发环境。包含了编译、汇编、链接、定位和调试功能,可以编辑嵌入式C/C++代码,支持实模式、扩展模式和保护模式的嵌入式X86开发系统。
飞控软件开发过程是用户在开发环境中编译程序,通过串口将程序加载到飞行控制器,并且可以在PC机上进行调试,这是其突出优点。此外TERN公司还提供了底层操作程序,为软件开发提供了便利。
飞控软件设计
机载飞行控制软件总体分为三大模块:初始化模块、定时处理模块和串行中断处理模块。
各模块的功能如下:
(1)初始化模块:主要完成系统的初始化,包括A/D卡初始化、DIO口初始化、串口初始化、传感器初始化及参数的设置等。
(2)定时处理模块:主要完成与时间有关的周期性任务,包括传感器信号的采集、飞行模式管理、导航计算、飞行控制律计算和执行机构控制等。
(3)串行中断处理模块:完成遥控指令的接收、磁航向计和无线电高度表数据的接收等。
飞控软件的主函数流程如图6所示。
半实物仿真实验
在半实物仿真试验中,飞行控制计算机的控制信号通过D/A转换后,经过伺服控制驱动器放大来驱动无人机的执行机构即电动伺服舵机,然后仿真计算机通过A/D通道采集电动伺服舵机的位移信号,并且输出控制指令(三轴姿态角)控制三轴飞行仿真转台,模拟出无人机的姿态角及姿态角速率等信号。机载传感器将这些信号反馈给飞行控制器,从而构成一个闭环系统,完成各种飞行任务。仿真试验可以检验飞行控制系统的安全性与可靠性,为无人机成功放飞奠定基础。半物理仿真实验结果如图7所示。
从图中可以看出,无人机基本上可以沿给定航线飞行,切入直线航段或圆弧航段后,侧偏距较小,在转弯处有一定的超调,总体来说控制效果较好,分析后认为该无人机压航线飞行基本达到需求方的要求。
结论
586-Engine嵌入式芯片的使用,减小了飞行控制器的体积与重量,实现了飞行控制器小型化、高集成度的设计目标;自行设计的串口扩展电路、舵机控制板等降低了研制成本,满足了项目需求方的要求。可以预见,586-Engine特有的功能以及较高的性价比将在无人机飞行控制领域得到广泛的应用。