4. 传感器冗余设计:速度、扭矩、位置传感器的冗余配置与仲裁逻辑
传感器,说白了就是传动系统的眼睛和耳朵。眼睛花了,耳朵聋了,系统再强壮也白搭。我这些年处理过的故障案例里,因为传感器失效导致整条产线停机的,少说也有十几起。所以今天咱们重点聊聊——怎么给传感器做冗余,以及出问题后怎么“投票”选出正确信号。
4.1 为什么传感器需要冗余?
你想想看,一个速度传感器坏了,变频器直接报“速度反馈丢失”,电机要么急停,要么飞车。扭矩传感器漂移了,张力控制直接崩掉。位置传感器丢脉冲了,伺服定位偏个几毫米,产品就废了。
我遇到过最典型的一次:某钢厂主轧线,编码器因为振动导致接头松动,信号时有时无。操作工以为是电机坏了,折腾了三个小时。最后发现就是编码器的问题。从那以后,我设计的系统里,关键传感器至少两路冗余。
4.2 速度传感器冗余配置
速度反馈是传动控制的基础。常用的冗余方案有几种,我按可靠性从低到高排个序:
| 方案 | 配置方式 | 可靠性 | 成本 |
|---|---|---|---|
| 双编码器 | 电机轴端装两个独立编码器 | 高 | 中 |
| 编码器+测速发电机 | 一个数字式,一个模拟式 | 中高 | 中 |
| 编码器+无速度传感器估算 | 硬件+软件冗余 | 中 | 低 |
| 三模冗余(TMR) | 三个独立编码器+三取二表决 | 极高 | 高 |
我个人习惯,在普通调速应用里用双编码器方案。一个装在电机非驱动端,一个装在驱动端。两个信号进PLC或者驱动器,做差值比较。差值超过设定阈值(比如2%),就报警并切换到备用通道。
4.3 扭矩传感器冗余配置
扭矩传感器在张力控制、拧紧工艺里特别关键。我见过最惨的一次,扭矩传感器零点漂移,导致螺栓拧紧力矩偏大,批量产品报废。
扭矩冗余常用的做法:
- 双扭矩传感器串联: 在传动轴上串两个传感器,取平均值。差值过大时报警。
- 扭矩传感器+电机电流估算: 硬件传感器为主,软件估算为辅。软件估算精度不高,但能检测出传感器是否严重偏离。
- 应变片+压电传感器组合: 两种不同原理的传感器,一个测静态扭矩,一个测动态扭矩。
嗯,这里要注意:扭矩传感器的安装位置很讲究。我建议装在靠近负载端,而不是靠近电机端。因为电机端的扭矩包含了传动损耗,和实际负载扭矩有偏差。
4.4 位置传感器冗余配置
位置传感器,最常见的就是编码器、旋转变压器、光栅尺。在伺服定位系统里,位置反馈一旦出错,后果很严重。
我常用的几种冗余方案:
- 双编码器背靠背安装: 两个编码器同轴安装,一个做主反馈,一个做校验。差值超过1个脉冲就报警。
- 编码器+限位开关: 软件位置+硬件极限位置双重保护。限位开关不参与精确定位,只做安全冗余。
- 绝对值编码器+增量编码器: 绝对值编码器提供绝对位置,增量编码器提供高分辨率。两者互相校验。
- 光栅尺+磁栅尺: 在直线运动系统中,两种不同原理的尺子同时安装。
你想想看,如果只有一路位置反馈,一旦编码器丢脉冲,位置就偏了。而且这种偏差是累积的,越跑越偏。双冗余至少能检测出问题,及时报警停机。
4.5 仲裁逻辑:怎么选出正确的信号?
传感器冗余了,信号多了,问题来了——该信谁的?这就是仲裁逻辑要干的事。
常用的仲裁方法有四种:
| 仲裁方法 | 原理 | 适用场景 |
|---|---|---|
| 最大值/最小值选择 | 取两路信号中的最大值或最小值 | 安全保护回路(取大或取小更安全) |
| 平均值仲裁 | 两路或多路信号取平均 | 精度要求高的场合 |
| 三取二表决 | 三路信号,两路一致则采用 | 高可靠性系统(如核电、航空) |
| 优先级仲裁 | 设定主/从关系,主信号有效时用主信号 | 主备切换系统 |
我个人的习惯是:双冗余用“差值比较+优先级切换”。两路信号差值在允许范围内,用主信号。差值超限,自动切换到备用信号,同时报警。三冗余用“三取二表决”,这个最可靠。
下面是我常用的一个双冗余仲裁逻辑伪代码:
// 双速度传感器仲裁逻辑
// Sensor1: 主编码器 Sensor2: 备用编码器
float speed1 = ReadSensor1();
float speed2 = ReadSensor2();
float diff = abs(speed1 - speed2);
float threshold = 0.02 * max(speed1, speed2); // 2%阈值
if (diff < threshold) {
// 两路一致,用主信号
output_speed = speed1;
status = NORMAL;
} else {
// 差值超限,检查哪路故障
if (IsSensor1Healthy()) {
output_speed = speed1;
status = WARNING_SENSOR2_FAULT;
} else if (IsSensor2Healthy()) {
output_speed = speed2;
status = WARNING_SENSOR1_FAULT;
} else {
output_speed = 0;
status = FATAL_BOTH_FAULT;
TriggerEmergencyStop();
}
}
4.6 知识体系总览
说了这么多,我画了一张图帮你理清思路。传感器冗余设计,说白了就是三件事:怎么配、怎么判、怎么切。
这张图从左到右展示了三种传感器的冗余配置方式,然后汇聚到仲裁逻辑,最终输出可靠信号。说白了,冗余是手段,仲裁是核心,可靠输出是目的。
4.7 实战中的几个坑
最后,我把自己踩过的坑总结一下,你遇到了能少走弯路:
- 共因失效: 两个同型号传感器装在一起,一个坏了另一个大概率也快了。我建议用不同原理或不同批次的传感器。
- 信号隔离: 冗余传感器的供电和信号线要独立走线。我曾经遇到过一根电缆破损,两路信号同时短路的情况。
- 仲裁周期: 仲裁逻辑的执行周期要快于控制周期。否则传感器已经坏了,仲裁结果还没出来,系统就失控了。
- 故障恢复: 传感器故障恢复后,不能自动切回主通道。要手动确认或者经过一段时间的稳定期再切换。否则来回切换会导致系统震荡。
好了,传感器冗余设计就聊到这儿。记住一句话:冗余不是简单的“多装一个”,而是从传感器选型、安装、信号处理到仲裁逻辑的系统工程。每一步都做到位了,系统才能真正可靠。
公众号:蓝海资料掘金营,微信deep3321