基于RTOS的涡喷发动机数字控制系统
与活塞发动机相比,涡轮喷气发动机(以下简称涡喷发动机)在推重比方面的优势无可争议。如果将之微型化,将使小型无人飞行器获取较高的速度和载荷能力。因此,研制微型涡喷发动机在军用和民用领域都有深远的意义。目前,美、德、丹麦等国家都有相当成熟的微型涡喷发动机产品,已成功应用到航模和无人机上。但在国内,无论是发动机本身还是其控制系统,都属于较新领域[1]。
本文针对国产某系统发动机,设计了基于C8051F021和MicroStar RTOS的微型涡喷发动机通用控制系统。它以处理器为核心,集传感器、伺服机构、人机接口为一体、体积小、重量轻,提供了与主控系统的指令接口和与地面测试设备的检测接口,功能完善。
微型涡喷发动机计算机控制系统的整体结构如图1所示。
控制器接收遥控接收机(或主控计算机)发出的PCM(Pulse Coding Modulation,脉冲编码调制)形式的推力和起停指令,驱动油泵、油阀、点火器等伺服机构,实时测量发动机的温度和转速,完成自动点火、加速、减速、转速稳定、超温超速保护等控制功能,并将状态参数通过RS232总线实时发送到PC机。通过手持终端,可修改系统参数。
为便于系统调试和测试发动机性能,还开发了运行于Windows平台的实时检测软件ECU1.0(Engine Control Unit, Version1.0)。
1 硬件设计
C8051F021单片机是美国Cygnal公司推出的一款高性能8位SOC单片机。主要有以下优点:
(1)采用了流水线技术,峰值处理速度可达25MIPS,远远高于其它51单片机。
(2)具有12位8通道逐次比较式ADC,数据转换速率可达100ksps。
(3)具有4K字节的片上RAM和64K字节的Flash程序存储器。在本应用系统中,无需扩展存储器。
(4)可提供五路可编程的PWM控制信号。
(5)丰富的定时器资源,具有五个硬件定时器。
(6)提供I2C总线控制模块和两个UART口。
(7)片内FLASH支持IAP(在应用可编程)。因此,不常修改的数据如配置参数、查询表等可直接存放于片内的FLASH内,而不需外扩非易失性存储体。
C8051F021单片机具有丰富的片上硬件资源及高运算速度,对本控制系统,几乎不需扩展即可满足控制系统对硬件资源的需求并有较大裕量。图2为系统硬件结构图。
1.1 转速测量模块
发动机的转速采用红外对管来测量。发动机的轴上钻有一通孔,安装时使发送-接收管的连线通过该孔。发动机每转一周,红外接收管会导通两次。由于通、断状态是渐变的,再加上普通红外管开关速度较低,在发动机高速运转(可达120000RPM)时,接收管输出的脉冲信号幅值很小,而且上升沿/下降沿较为平缓,单片机无法准确识别,必须加以整形。整形电路如图3所示。
信号通过电容C6耦合至运放AR1的同相输入端,(以2.5V为参考点)进行高倍数放大,以保证即使在高转速下,脉冲的峰-峰幅值也接近5V供电电压。运放AR3用于实现回滞比较器,提高抗干扰能力,其输出信号至单片机T4EX脚。利用定时器4的边沿捕捉功能可方便地测出相邻脉冲间的时间间隔,从而换算出速度。
1.2 温度测量模块
发动机体内的温度是发动机安全、可靠工作的重要指标。由于发动机较小,考虑到装配的方便,以尾喷管的温度表征发动机的工作温度。
试验表明,尾喷管的温度最高可达900℃。出于测温范围、成本等方面的考虑,选用镍铬-镍硅(Ni,Cr,Si)热电偶作为测温元件。镍铬-镍硅热电偶具有良好的线性度,测温范围为0~1000℃。由于发动机对温度测量精度的要求并不苛刻,采用热敏电阻进行温度补偿。
1.3 PWM驱动模块
系统中气阀和点火器、启动电机和油泵电机等伺服机构采用PWM方式控制。启动电机、齿轮泵的工作电流较大,可达14A。宜选用过流大且导通电阻小的MOS管或压降小的肖特基二极管。本系统选用过流为120A、导通电阻7.5mΩ的MOS管。但试验表明,MOS管工作温度仍然较高,故采用两片并联驱动方式。一路PWM控制单元的原理图如图4所示。
电阻R6的主要作用是当无控制输入信号时(如线路故障、单片机复位过程中),MOS管保持关闭,伺服机构不动作。MOS管开通时,通过Q4对MOS管输入电容快速充电;关断时,MOS管的输入电容通过D3和Q3快速放电。采用上述具有较高开关速度的电路,可有效减少MOS管的发热量。
1.4 系统通讯总线
I2C总线成本低廉,连线简单,并有一定的抗干扰能力,同时可连结多个器件,故选用I2C总线作为系统通讯总线。手持终端、信号灯均通过I2C总线与系统板连接,并由串转并芯片PCF8574驱动。
2 系统软件
本系统主要完成发动机控制任务与人机接口任务。直接采用处理器开发软件时,由于时间上的并存,这两个任务处理将严重耦合。此外,与人机接口相关的函数调用必须设计为非阻塞模式,否则,当出现诸如I2C总线等故障时,控制流程无法继续向下执行。
RTOS能合理地分配处理器资源,使多个任务在宏观上达到并行运行的效果,可大大降低任务间的耦合,提高系统的可靠性。即使某个任务长时间被阻塞,也不会影响到其它任务。因此,采用RTOS进行软件开发更为简单和可靠。本系统采用MicroStar RTOS V1.0[3]。MicroStar RTOS是针对中低档单片机而设计的嵌入式实时操作系统内核。它同时支持按时间片轮转、按优先级抢占、二者结合共三种调度策略,具有完善的任务管理功能可提供定时、延时服务,支持消息、信号(Signal)通讯机制,支持临界代码段保护,提供二进制、计数型信号量(Semaphore)同步对象等,支持Bottom-half中断管理机制。
本控制器选用按优先级抢占调度策略,系统时钟周期设定为2ms。共创建了三个用户任务:人机接口主任务、控制任务以及与PC机通讯任务。
2.1 MicroStar RTOS在51单片机上的移植
由于51单片机内核上的原因,为了代码优化,Keil C51编译器采用一些独特的方法,与ANSI C编译器相比,有较大的差异。因而相对于其它硬件平台,在51单片机上移植MicroStar RTOS时修改较多,主要包括以下几类:
(1)Keil C51不仅有数据类型,还有存储类型,因此为系统变量添加了存储类型修饰符。
(2)默认情况下Keil C51对未能在寄存器中分配的临时变量采用静态分配策略,许多系统函数因此而不可重入,必须对这些函数添加reentrant函数来强迫编译器在模拟栈中分配临时变量。
(3)除了硬件堆栈外,Keil C51编译器在软件上实现了模拟栈,因此在堆栈保护中需加入对模拟栈的保护。
(4)修改 os_cpu.h 文件中的INITIAL_ STACK任务堆栈初始化宏、改写os_Schedule调度函数等。这一点与其它平台无异。
2.2 人机接口主任务
人机接口主任务主要负责系统自检、键盘扫描、液晶显示、指令解析等,其流程图如图5所示。
发动机数字控制系统 PID MicroStar RTOS 相关文章:
- 智能车速度控制系统设计与实现(02-28)
- 图像采集与处理在智能车系统中的应用(04-11)
- 基于单片机的AGV智能车的设计(04-27)
- 基于CPLD/DSP的赛车全电防滑刹车控制器设计(01-01)
- 汽车电子液压制动系统跟随特性的实验研究 ----EHB系统跟随特性的实验研究(二)(02-04)
- 汽车电子液压制动系统跟随特性的实验研究 ----EHB系统跟随特性的实验研究(01-26)