第1章:风向标信号处理
各位同学,今天咱们聊聊偏航控制里最基础、也最容易出问题的一环——风向标信号处理。
我做了十几年风电控制,见过太多因为风向标信号不准导致的偏航故障。说白了,风向标就是风机的「眼睛」。眼睛要是花了,整个偏航系统就瞎了。
1.1 风向标的工作原理
风向标的结构其实很简单。一个尾翼,一个转轴,内部装着一个角度传感器。
风从哪个方向吹来,尾翼就转到哪个方向。转轴跟着转,传感器输出对应的角度值。嗯,原理上就是这么回事。
但实际项目中,我遇到过一个问题:风向标安装在机舱顶部,机舱本身就在转动。所以风向标测到的角度,其实是「相对机舱」的角度。要得到真正的风向,还得加上机舱的偏航角度。
核心公式:
真实风向角 = 风向标测量角 + 机舱偏航角
注意:两个角度都要做0-360°的归一化处理。
1.2 风向标信号采集
信号采集这块,我习惯用模拟量输入模块。常见的风向标输出是4-20mA电流信号,或者0-10V电压信号。
我个人建议用4-20mA。为什么?抗干扰能力强。你想想看,机舱里电磁环境那么复杂,电压信号很容易被干扰。
采集流程大致如下:
- 模拟量输入模块读取电流/电压值
- 转换成对应的角度值(0-360°)
- 做量程校验,判断是否在合理范围内
- 送入滤波算法处理
小技巧:我一般会在采集程序中加一个「信号突变检测」。如果相邻两个采样点的角度差超过30°,直接标记为可疑数据。这能提前发现很多问题。
1.3 风向标信号滤波
原始信号直接拿来用?不行。风是乱的,风向标会抖。你想想看,如果直接用原始信号控制偏航,那偏航电机不得累死?
我常用的滤波方法有两种:
1.3.1 中值滤波
中值滤波的原理很简单:取连续N个采样值,排序后取中间那个。
举个例子:
原始数据:[352°, 355°, 10°, 358°, 2°]
排序后:[2°, 10°, 352°, 355°, 358°]
中值结果:352°
注意看,这里有个坑。10°和352°其实只差了18°,但因为跨越了0°线,排序后看起来差很多。我刚开始做的时候就被这个坑过。
避坑指南:做中值滤波前,一定要先做角度归一化处理。把角度转换到连续的数值空间,比如用三角函数展开,或者用特殊的环形排序算法。
1.3.2 滑动平均滤波
滑动平均滤波,说白了就是取最近N个点的平均值。
公式长这样:
y[n] = (x[n] + x[n-1] + ... + x[n-N+1]) / N
N取多大?我一般取5-10。N太小,滤波效果不好;N太大,信号延迟太大,偏航响应跟不上。
我曾经在一个项目中,把N设成了20。结果偏航系统反应慢半拍,风机老是追不上风向。后来改成8,效果就好多了。
两种滤波对比:
| 特性 | 中值滤波 | 滑动平均滤波 |
|---|---|---|
| 抗脉冲干扰 | 强 | 一般 |
| 信号平滑度 | 一般 | 好 |
| 延迟 | 小 | 较大 |
| 计算量 | 大(需排序) | 小 |
我个人习惯的做法是:先用中值滤波剔除野点,再用滑动平均滤波做平滑。两个配合着用,效果最好。
1.4 风向标故障诊断
风向标出故障,是偏航系统最常见的停机原因之一。我总结了两类典型故障:
1.4.1 卡死故障
风向标卡死了,输出值一直不变。怎么判断?
我一般用这个逻辑:
if (当前值 - 前一个值) 的绝对值 < 0.5° 持续超过 60 秒:
标记为「卡死故障」
触发报警
切换到备用风向标
注意,阈值不能设得太小。风特别稳的时候,风向标确实可能长时间不动。我一般设0.5°/60s,这个值经过多个项目验证,比较靠谱。
1.4.2 漂移故障
漂移比卡死更难诊断。风向标还在动,但输出值慢慢偏离了真实方向。
我常用的诊断方法:
- 对比法:用两个风向标做对比。如果差值持续超过15°,判定为漂移。
- 自检法:偏航到某个已知位置(比如0°),检查风向标输出是否对得上。
- 统计法:统计一段时间内风向标输出值的分布。如果分布明显偏离当地风玫瑰图,可能是漂移。
重要提醒:漂移故障往往是渐变的。我见过一个项目,风向标慢慢漂了20°,运维人员愣是没发现。直到风机发电量下降了15%,才排查出来。所以,定期做风向标校准非常必要。
知识体系总览
下面这张图,是我画的风向标信号处理知识体系。你可以把它当作本章的「地图」:
好了,风向标信号处理这块,核心内容就是这些。从工作原理到信号采集,再到滤波和故障诊断,每一步都有讲究。记住一句话:信号处理做得好,偏航控制就成功了一半。
最后说一句:我见过太多工程师,一上来就调PID参数,结果发现风向标信号本身就有问题。先把基础打牢,后面的控制才能稳。这是经验之谈。
公众号:蓝海资料掘金营,微信deep3321