2. 传感器与执行机构:温度传感器、压力传感器、转速传感器、燃油计量活门、作动筒

各位同学,咱们今天聊聊发动机控制系统的“眼睛”和“手脚”。传感器就是眼睛,负责感知温度、压力、转速这些物理量;执行机构就是手脚,负责执行控制指令,比如调节燃油流量、推动作动筒。这两块要是出问题,整个控制系统就是“睁眼瞎”或者“手脚不灵便”。

我个人习惯,在仿真模型里,传感器和执行机构是最容易“翻车”的地方。为什么?因为真实物理世界有噪声、有延迟、有非线性,而仿真模型往往太“干净”了。你想想看,一个理想的传感器模型,输出值跟输入值一模一样,这在实际中根本不可能。所以,咱们做仿真,一定要把这些“不完美”加进去。

2.1 温度传感器

温度传感器,最常见的就是热电偶和热电阻。在航空发动机上,排气温度(EGT)和涡轮进口温度(TIT)是重点监控对象。热电偶的原理说白了就是两种不同金属在温度差下产生电势差,这个电势差很小,需要放大和冷端补偿。

我在项目中遇到过一个问题:仿真模型里温度响应特别快,但实际发动机台架试验时,温度信号总是慢半拍。后来一查,发现是热电偶的热惯性没考虑进去。热惯性说白了就是传感器本身也有“温度”,它需要时间才能跟上被测气体的温度变化。

关键点:温度传感器模型必须包含一阶惯性环节,时间常数通常在0.1秒到2秒之间,具体取决于传感器类型和安装位置。

仿真代码示例(一阶惯性环节):

// 温度传感器一阶惯性模型
// T_in: 真实温度,T_out: 传感器输出温度,tau: 时间常数
double temperature_sensor(double T_in, double T_out_prev, double dt, double tau) {
    double T_out = T_out_prev + (T_in - T_out_prev) * dt / tau;
    return T_out;
}

小技巧:时间常数tau不要设成固定值。我建议根据气流速度做插值,因为高速气流下热交换更快,时间常数更小。

2.2 压力传感器

压力传感器,在发动机上主要测进气压力、压气机出口压力、燃油压力等。常用的有压阻式和电容式。压阻式传感器说白了就是硅片上有个膜片,压力变化导致电阻变化,再转换成电压信号。

嗯,这里要注意:压力传感器模型里,最容易忽略的是“动态响应”。很多人只做静态映射,比如输入压力P,输出电压V = k * P + b。但实际中,压力传感器也有带宽限制,高频压力波动会被滤掉。

我曾经在仿真一个喘振边界的时候,发现仿真结果跟试验数据对不上。折腾了好几天,最后发现是压力传感器模型太“理想”了,没有考虑传感器本身的低通滤波特性。喘振信号是高频振荡,传感器根本测不出来那么快的波动。

避坑指南:我曾经在压力传感器模型里只用了线性映射,结果仿真出来的喘振边界比实际宽了20%。后来加上二阶低通滤波,才跟试验数据吻合。所以,压力传感器模型一定要包含频率响应特性。

压力传感器模型通常包含:

  • 静态特性:线性或非线性映射(考虑零偏和灵敏度)
  • 动态特性:二阶低通滤波(阻尼比0.7左右,截止频率根据传感器型号定)
  • 噪声特性:高斯白噪声,幅值通常为满量程的0.1%~0.5%

2.3 转速传感器

转速传感器,测的是发动机转子转速,也就是N1(低压转子)和N2(高压转子)。常用的有磁电式和霍尔式。磁电式传感器原理很简单:一个线圈靠近旋转的齿轮,齿轮的齿牙切割磁力线,产生感应电动势。转速越高,感应电压越大,频率也越高。

我个人习惯,在仿真模型里,转速传感器用“脉冲计数法”来模拟。也就是根据真实转速生成脉冲信号,然后通过测量脉冲间隔来计算转速。这样做的好处是,能模拟出转速测量的量化误差和延迟。

你想想看,真实发动机的转速信号是连续的,但传感器测量是离散的。每个脉冲周期才能更新一次转速值,这就带来了延迟。转速越低,脉冲周期越长,延迟越大。这个特性在慢车状态特别明显。

仿真代码示例(脉冲计数法):

// 转速传感器脉冲计数模型
// N_real: 真实转速(rpm),pulse_per_rev: 每转脉冲数
double speed_sensor(double N_real, double &phase, double dt, int pulse_per_rev) {
    phase += N_real / 60.0 * pulse_per_rev * dt;  // 相位累加
    if (phase >= 1.0) {
        phase -= 1.0;
        // 产生一个脉冲,记录当前时间
        // 转速 = 60 / (脉冲间隔 * pulse_per_rev)
    }
    // 返回最近一次计算的转速值
}

小技巧:为了模拟更真实,可以在脉冲边沿加入±0.1%的随机抖动,模拟齿轮加工误差和电磁干扰。

2.4 燃油计量活门

燃油计量活门,说白了就是控制燃油流量的阀门。在发动机控制系统里,这是最关键的执行机构之一。常见的结构是滑阀式,通过移动阀芯来改变节流面积,从而控制燃油流量。

燃油计量活门的模型,核心是“流量-压差-开度”三者的关系。根据伯努利方程,流量Q = Cd * A * sqrt(2 * deltaP / rho)。其中Cd是流量系数,A是节流面积,deltaP是压差,rho是燃油密度。

我在项目中遇到过一个问题:仿真模型里燃油流量控制得很精准,但实际发动机上却出现了燃油流量振荡。后来发现,是燃油计量活门的“摩擦力”没考虑进去。阀芯运动有静摩擦和动摩擦,会导致“爬行”现象,也就是阀芯走走停停,造成流量波动。

关键点:燃油计量活门模型必须包含摩擦力模型(Stribeck曲线),以及阀芯运动的二阶动力学模型。忽略摩擦力,仿真结果会过于理想。

燃油计量活门模型通常包含:

  • 阀芯动力学:m * x'' + c * x' + k * x = F_actuator - F_friction
  • 摩擦力模型:静摩擦、库仑摩擦、粘性摩擦(Stribeck效应)
  • 流量特性:Q = f(x, deltaP),考虑节流面积的非线性
  • 泄漏特性:阀芯与阀套之间有间隙,存在泄漏流量

避坑指南:我曾经在燃油计量活门模型里用了简单的线性流量特性,结果仿真出来的燃油流量响应跟试验数据差了30%。后来改成基于伯努利方程的非线性模型,才准确。所以,千万别偷懒用线性近似。

2.5 作动筒

作动筒,在发动机上用来驱动可调叶片、放气活门、反推装置等。常见的有液压作动筒和电动作动筒。液压作动筒靠高压油推动活塞,电动作动筒靠电机带动丝杠螺母机构。

作动筒的模型,核心是“力平衡”和“流量连续性”。对于液压作动筒,输入是伺服阀的电流信号,输出是活塞位移。中间要经过伺服阀的流量特性、油液的压缩性、活塞的摩擦力等环节。

嗯,这里有个容易忽略的点:油液的“弹性模量”。很多人把液压油当成不可压缩的,但在高频响应下,油液的压缩性会显著影响作动筒的动态特性。油液中混入气泡后,等效弹性模量会大幅下降,导致作动筒响应变慢、甚至振荡。

我曾经在仿真一个可调叶片控制系统时,发现作动筒的响应速度总是不够快。查来查去,发现是油液弹性模量设成了纯油的值,但实际系统中油液已经混入了空气。把弹性模量降低30%后,仿真结果就跟试验对上了。

作动筒模型通常包含:

  • 伺服阀模型:电流-流量特性(考虑死区、滞环)
  • 活塞动力学:P1 * A1 - P2 * A2 - F_load - F_friction = m * x''
  • 油液压缩性:Q_in - Q_out = A * x' + V / beta * dP/dt
  • 摩擦力模型:同样需要Stribeck曲线

小技巧:作动筒的摩擦力参数很难精确获取。我建议在仿真模型里把摩擦力设成可调参数,然后通过对比试验数据来标定。这样既省事又准确。

小结

好了,这一章的内容就这些。传感器和执行机构,说白了就是控制系统跟物理世界之间的“接口”。做仿真时,千万别把它们当成理想元件。温度传感器有热惯性,压力传感器有带宽限制,转速传感器有量化误差,燃油计量活门有摩擦和泄漏,作动筒有油液压缩性。把这些“不完美”加进去,你的仿真模型才能真正反映真实系统的行为。

我个人习惯,每做一个新模型,都会先跟试验数据对一下静态特性和动态特性。对不上就调参数,直到吻合为止。这个过程虽然繁琐,但能让你对系统有更深的理解。下一章咱们讲控制器设计,到时候这些传感器和执行机构的模型都会用上。