控制/MCU
与活塞发动机相比,涡轮喷气发动机(以下简称涡喷发动机)在推重比方面的优势无可争议。如果将之微型化,将使小型无人飞行器获取较高的速度和载荷能力。因此,研制微型涡喷发动机在军用和民用领域都有深远的意义。目前,美、德、丹麦等国家都有相当成熟的微型涡喷发动机产品,已成功应用到航模和无人机上。但在国内,无论是发动机本身还是其控制系统,都属于较新领域[1]。
本文针对国产某系统发动机,设计了基于C8051F021和MicroStar RTOS的微型涡喷发动机通用控制系统。它以处理器为核心,集传感器、伺服机构、人机接口为一体、体积小、重量轻,提供了与主控系统的指令接口和与地面测试设备的检测接口,功能完善。
微型涡喷发动机计算机控制系统的整体结构如图1所示。
控制器接收遥控接收机(或主控计算机)发出的PCM(Pulse Coding Modulation,脉冲编码调制)形式的推力和起停指令,驱动油泵、油阀、点火器等伺服机构,实时测量发动机的温度和转速,完成自动点火、加速、减速、转速稳定、超温超速保护等控制功能,并将状态参数通过RS232总线实时发送到PC机。通过手持终端,可修改系统参数。
为便于系统调试和测试发动机性能,还开发了运行于Windows平台的实时检测软件ECU1.0(Engine Control Unit, Version1.0)。
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为系统硬件结构图。
发动机的转速采用红外对管来测量。发动机的轴上钻有一通孔,安装时使发送-接收管的连线通过该孔。发动机每转一周,红外接收管会导通两次。由于通、断状态是渐变的,再加上普通红外管开关速度较低,在发动机高速运转(可达120000RPM)时,接收管输出的脉冲信号幅值很小,而且上升沿/下降沿较为平缓,单片机无法准确识别,必须加以整形。整形电路如图3所示。
信号通过电容C6耦合至运放AR1的同相输入端,(以2.5V为参考点)进行高倍数放大,以保证即使在高转速下,脉冲的峰-峰幅值也接近5V供电电压。运放AR3用于实现回滞比较器,提高抗干扰能力,其输出信号至单片机T4EX脚。利用定时器4的边沿捕捉功能可方便地测出相邻脉冲间的时间间隔,从而换算出速度。
发动机体内的温度是发动机安全、可靠工作的重要指标。由于发动机较小,考虑到装配的方便,以尾喷管的温度表征发动机的工作温度。
试验表明,尾喷管的温度最高可达900℃。出于测温范围、成本等方面的考虑,选用镍铬-镍硅(Ni,Cr,Si)热电偶作为测温元件。镍铬-镍硅热电偶具有良好的线性度,测温范围为0~1000℃。由于发动机对温度测量精度的要求并不苛刻,采用热敏电阻进行温度补偿。
系统中气阀和点火器、启动电机和油泵电机等伺服机构采用PWM方式控制。启动电机、齿轮泵的工作电流较大,可达14A。宜选用过流大且导通电阻小的MOS管或压降小的肖特基二极管。本系统选用过流为120A、导通电阻7.5mΩ的MOS管。但试验表明,MOS管工作温度仍然较高,故采用两片并联驱动方式。一路PWM控制单元的原理图如图4所示。
电阻R6的主要作用是当无控制输入信号时(如线路故障、单片机复位过程中),MOS管保持关闭,伺服机构不动作。MOS管开通时,通过Q4对MOS管输入电容快速充电;关断时,MOS管的输入电容通过D3和Q3快速放电。采用上述具有较高开关速度的电路,可有效减少MOS管的发热量。
I2C总线成本低廉,连线简单,并有一定的抗干扰能力,同时可连结多个器件,故选用I2C总线作为系统通讯总线。手持终端、信号灯均通过I2C总线与系统板连接,并由串转并芯片PCF8574驱动。
本系统主要完成发动机控制任务与人机接口任务。直接采用处理器开发软件时,由于时间上的并存,这两个任务处理将严重耦合。此外,与人机接口相关的函数调用必须设计为非阻塞模式,否则,当出现诸如I2C总线等故障时,控制流程无法继续向下执行。
RTOS能合理地分配处理器资源,使多个任务在宏观上达到并行运行的效果,可大大降低任务间的耦合,提高系统的可靠性。即使某个任务长时间被阻塞,也不会影响到其它任务。因此,采用RTOS进行软件开发更为简单和可靠。本系统采用MicroStar RTOS V1.0[3]。MicroStar RTOS是针对中低档单片机而设计的嵌入式实时操作系统内核。它同时支持按时间片轮转、按优先级抢占、二者结合共三种调度策略,具有完善的任务管理功能可提供定时、延时服务,支持消息、信号(Signal)通讯机制,支持临界代码段保护,提供二进制、计数型信号量(Semaphore)同步对象等,支持Bottom-half中断管理机制。
本控制器选用按优先级抢占调度策略,系统时钟周期设定为2ms。共创建了三个用户任务:人机接口主任务、控制任务以及与PC机通讯任务。
由于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调度函数等。这一点与其它平台无异。
人机接口主任务主要负责系统自检、键盘扫描、液晶显示、指令解析等,其流程图如图5所示。
主任务有测试和正常两种运行模式。在开机按特定键或系统自检失败时,将进入测试模式。测试模式中拥有系统参数设定、脉宽指令学习、测试各路伺服机构的权限,但不具备运行发动机的权限。正常模式下仅具备运行发动机的权限,但不能修改任何参数,以降低对系统参数意外改写的风险。在激活控制任务之前,主任务将进行包括程序代码校验、配置参数校验、温度传感器检查等的软硬件模块检查。这些措施均能提高系统的可靠性。
MicroStar RTOS提供周期性定时服务。主任务通过os_SetTimer设定一个50ms的键盘扫描定时器、一个100ms的LCD显示刷新定时器。当定时时间到时,定时器会给任务发送消息。调用os_GetMessage获取消息后,调用键盘处理函数和显示函数来分别处理与之对应的消息。
2.3 控制任务
一次完整的发动机运行可分为如图6所示的几个阶段。控制任务按这些阶段循环进行,任一阶段内出现异常状况,任务都进入停车状态。具体阶段为:
(1)待命阶段。发动机的状态满足运行要求,等待以PCM码方式输入的启动命令。规定以大车指令对应的脉宽为启动命令。
(2)点火阶段。电机转速在设定的上下限内波动,助燃丁烷气阀打开,向发动机体内注入易燃气,同时开启点火器对气体加热,当气体点燃使尾喷管温度升高到设定值时,认为点火成功。
(3)着车阶段。油泵开始工作,供油量逐渐增大,点火器、气阀、启动电机先后关闭,发动机转速开始加速。当转速和温度均超过设定值时,认为着车成功。
(4)热车阶段。发动机成功着车之后,不宜立即投入工作,需在慢车(怠速)状态下持续运行一段时间。
(5)正常运行阶段。PID控制算法投入运行。
(6)停车阶段。油泵停止运行,启动电机会根据温度间歇性地开启,在有利于发动机散热的条件下,尽可能地节省电能。
3 控制律设计
按控制内容划分,微型涡喷发动机的控制项目分为以下几类:
(1)过程控制。使发动机迅速、稳定、可靠地完成过渡工作状态,包括启动控制、加速控制、减速控制。启动控制保证发动机正常点火和顺利启动。加速控制的目的是在发动机不超温的前提下,改变供油量,使加速时间尽可能缩短。减速控制使收油门时减油不致过猛,防止燃烧室贫油熄火。
(2)推力控制。目的是给发动机提供所需的推力。飞行器空中飞行时发动机推力不易直接测量,但发动机转速能够表征发动机的推力,故通过转速控制实现推力控制。
(3)安全控制。目的是保证发动机安全、可靠地工作。包括超温保护、超速保护、电池电压欠压保护等。
3.1 启动控制
启动时间越短越好,因而发动机增速要快。简单地提高供油量虽然可以提高发动机的增速,但容易因过度“富油”而超温。“富油”现象是指当供油量增速过快时,由于发动机的惯性大于油泵的惯性,使发动机转速增量相对落后,吸入空气相对油量不足,以致燃油燃烧不充分,严重时,发动机体内的温度会急剧上升,尾气中会出现火苗,这种现象对发动机极为有害。为减轻“富油”现象,在着车过程控制中引入温度和升温速度反馈。当温度超过警戒值或者升温速度超过警戒值时,供油量将停止增加。
3.2 转速控制
转速控制采用工程上常用的位置式数字PID控制算法。对本系统而言,控制量为油泵的PWM占空比。占空比为负值是没有物理意义的,需在PID的输出之上加入工作点,使输出在工作点上下调整。转速控制框图如图7所示。
其中,F(N0)为工作点产生函数,表示指令转速N对应的占空比参考值,即工作点,通过试验来获取,软件实现时采用查表法和线性插值法。限幅环节保证油泵占空比既不会小于怠速时的占空比,以避免熄火;也不会大于设定的最大值,以避免过速危险。油门加速度限幅环节一方面限制了加油速度,防止因加油过快而超温;另一方面限制了收油速度,防止因收油过快而贫油熄火。油门加速度限幅简单地实现了加速控制和减速控制。
由于油泵占空比与发动机转速间的非线性关系(如图8所示),采用了分段PID方法,即不同阶段采用不同的PID参数。单就Kp而言,由图可看出:在低转速段,曲线的斜率较陡,转速对占空比的变化敏感,Kp取值较小,避免了超调过大和振荡;而在高转速段,曲线上升非常平缓,Kp取较大值,以提高响应速度。同样地,为取得较好的性能,Ki、Kd在不同的转速段也应取不同的值。在本系统中共分为三段。
4 系统测试
本系统已进行了多次台架试验。试验中,被控对象选用国产500牛推力的某型涡喷发动机,原始数据利用运行于PC机平台上的ECU V1.0通过串行口获得。
4.1 检测软件ECU V1.0
为便于系统调试和测试,自行开发了软件ECU V1.0。它能将发动机各种参数实时记录下来,以曲线方式动态地显示出来,以便分析各个参量间的相关性,并具有发送控制命令、报警等辅助功能。图8、图9均由该软件生成。
4.2 测试结果
试验表明,在控制系统的作用下,发动机能很好地跟踪转速遥控指令。图9给出一次由18000RPM至 23000RPM的推杆操作中指令和转速的曲线,图中虚线为指令,实线为速度,两条曲线基本吻合。
微型涡喷发动机控制系统在我国还是一个较新的领域,笔者在此方面作了较为深入的探索。试验中控制系统能可靠稳定地工作,达到了工程样机的水平。
全部0条评论
快来发表一下你的评论吧 !