DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1588|回复: 1
打印 上一主题 下一主题

[待整理] 基于RTOS的涡喷发动机数字控制系统

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-5 10:45:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
基于RTOS的涡喷发动机数字控制系统

摘要:介绍了一种应用于无人机的微型涡轮喷气式发动机数字控制系统的设计与实现。该系统基于C8051F021单片机和MicroStar嵌入式实时操作系统,实现了小型涡喷发动机自动点火、启动、推力控制与稳定、超温超速保护、系统自检、冷却等功能。该系统具有体积小、重量轻、功能全的特点。    关键词:C8051F021 MicroStar RTOS 涡喷发动机 PID
与活塞发动机相比,涡轮喷气发动机(以下简称涡喷发动机)在推重比方面的优势无可争议。如果将之微型化,将使小型无人飞行器获取较高的速度和载荷能力。因此,研制微型涡喷发动机在军用和民用领域都有深远的意义。目前,美、德、丹麦等国家都有相当成熟的微型涡喷发动机产品,已成功应用到航模和无人机上。但在国内,无论是发动机本身还是其控制系统,都属于较新领域。

    本文针结国产某系统发动机,设计了基于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程序存储器。在本应用系统中,无需扩展存储器。


图3


    (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总线等故障时,控制流程无法继续向下执行。
PTOS能合理地分配处理器资源,使多个任务在宏观上达到并行运行的效果,可大大降低任务间的耦合,提高系统的可靠性。即使某个任务长时间被阻塞,也不会影响到其它任务。因此,采用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所示。
主任务有测试和正常两种运行模式。在开机按特定键或系统自检失败时,将进入测试模式。测试模式中拥有系统参数设定、脉宽指令学习、测试各路伺服机构的权限,但不具备运行发动机的权限。正常模式下仅具备运行发动机的权限,但不能修改任何参数,以降低对系统参数意外改写的风险。在激活控制任务之前,主任务将进行包括程序代码校验、配置参数校验、温度传感器检查等的软硬件模块检查。这些措施均能提高系统的可靠性。
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的推杆操作中指令和转速的曲线,图中虚线为指令,实线为速度,两条曲线基本吻合。
微型涡喷发动机控制系统在我国还是一个较新的领域,笔者在此方面作了较为深入的探索。试验中控制系统能可靠稳定地工作,达到了工程样机的水平。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-23 05:34 , 耗时 0.095899 秒, 20 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表