基于 STM32 的风力发电机控制系统设计
导语
风能作为清洁高效的可再生能源,其利用效率直接取决于发电机控制系统的智能化水平。本文设计一种以 STM32F103C8T6 为核心的风力发电机控制系统:三杯风速风向传感器经 RS485 总线实时上报风况,主控据此驱动步进电机调节桨叶角度,使叶轮始终正对风向以最大化捕获风能;光耦测速模块监测叶轮转速,转速为零时判定发生缠绕故障,随即控制直流电机逆时针旋转自动解除;发电侧采用 TL494 逆变器将 12 V 直流转换为 220 V 交流并入电网,集成风力捕获、故障检测处理与电能并网三大功能,保障系统高效稳定运行。
一、系统功能总览
| 编号 | 功能名称 | 功能描述 |
|---|---|---|
| F1 | 风速风向检测 | 三杯传感器经 RS485 实时采集风速与风向 |
| F2 | 对风控制 | 步进电机调节桨叶角度,叶轮正对风向 |
| F3 | 转速监测 | 光耦测速模块脉冲计数换算 RPM |
| F4 | 缠绕故障处理 | 转速为 0 判定缠绕,直流电机逆时针解缠 |
| F5 | 电能转换 | TL494 逆变器 12 V→220 V 交流 |
| F6 | 并网输出 | 逆变交流电接入电网 |
二、核心模块选型对比
2.1 主控模块选型
| 方案 | 型号 | 主频 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案一 | STM32F103C8T6 | 72 MHz | 高性价比、37 个 GPIO、定时器/PWM 丰富、稳定成熟 | 算力中等 |
| 方案二 | 高性能工控 PLC | --- | 可靠性极高 | 成本高、体积大、不便于定制 |
选择方案一: 数据采集与电机控制属中等复杂度任务,STM32 凭借外设资源与嵌入式灵活性成为经典选择。
2.2 风速风向传感器选型
| 方案 | 型号 | 原理 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案一 | 三杯风速风向模块 | 风杯旋转测速 + 风向标测角 | 灵敏度高、量程宽、环境适应好 | 机械结构需维护 |
| 方案二 | 超声波风速仪 | 声学时差测风 | 无运动部件 | 成本高 |
选择方案一: 户外风场监测中三杯式结构成熟可靠,经 RS485 差分传输抗干扰能力强。
2.3 步进电机驱动模块选型
| 方案 | 型号 | 电流 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案一 | ULN2003 | 500 mA | 成本低、集成保护二极管、直接连 GPIO | 无微步细分 |
| 方案二 | A4988 | 2 A | 1/16 微步、运行平稳 | 成本较高 |
选择方案一: 28BYJ-48 小型步进电机调角需求下,ULN2003 经济实用、控制简单。
2.4 直流电机驱动模块选型
| 方案 | 型号 | 电流 | 优点 | 缺点 |
|---|---|---|---|---|
| 方案一 | L298N | 2 A | 双向控制、5--35 V 宽压、带散热与防反接 | 效率一般 |
| 方案二 | 分立继电器方案 | --- | 结构简单 | 无调速、寿命短 |
选择方案一: 解缠需要正反转与速度控制,L298N 全桥驱动支持双向调速且安全可靠。
2.5 逆变器模块选型
| 方案 | 型号 | 优点 | 缺点 |
|---|---|---|---|
| 方案一 | TL494 逆变电路 | 内置误差放大器/PWM 比较/死区控制、输出稳定 | 需外围功率电路 |
| 方案二 | SG3525 逆变电路 | 软启动、频率可调 | 驱动能力较弱 |
选择方案一: TL494 功能集成度高,反馈稳压与占空比控制完善,适合 12 V→220 V 逆变并网。
三、系统接线总表
| 模块 | 引脚 | MCU 引脚 | 说明 |
|---|---|---|---|
| 三杯风速风向模块 | RS485 A/B | 经 MAX485 | USART 通信,5 V 供电 |
| MAX485 | RO/DI | PA10/PA9 | USART1,方向控制 PA8 |
| 光耦测速模块 | OUT | PA0 | 外部中断下降沿计数,5 V 供电 |
| ULN2003 | IN1--IN4 | PB0--PB3 | 四拍时序调桨叶角度 |
| L298N | IN1/IN2 | PB5/PB6 | 直流电机方向控制 |
| L298N | ENA | PA6 | PWM 调速 |
| TL494 逆变器 | 输入 12V/输出 220V | --- | 独立功率电路 |
四、系统软件设计
4.1 主程序流程
上电初始化 ADC、UART 等接口与寄存器后进入主循环:读取风速风向数据 → 依据风向控制步进电机调节桨叶角度使叶轮正对风向 → 光耦监测叶轮转速,检测到转速为 0 时判断缠绕故障,控制直流电机逆时针旋转解除缠绕,循环执行保证风能利用最大化与故障自恢复。
int main(void)
{
SystemInit();
USART1_Init(); /* RS485 风况 */
Speed_Timer_Init(); /* 光耦脉冲计数 */
Motor_Init();
DC_Init();
while (1)
{
/* 1. 风况采集与对风 */
RS485_Query(&wind_spd, &wind_dir);
if (abs(wind_dir - blade_dir) > DEAD_ZONE)
StepMotor_Turn(wind_dir - blade_dir); /* 调桨对风 */
blade_dir = wind_dir;
/* 2. 故障检测与处理 */
rpm = Speed_GetRPM();
if (rpm == 0) { /* 判定缠绕 */
DC_Reverse(); /* 逆时针解缠 */
while (Speed_GetRPM() == 0)
delay_ms(100);
DC_Stop();
}
/* 3. 电能转换(逆变器持续并网) */
delay_ms(500);
}
}
4.2 风速风向检测流程
初始化 USART 与 RS485 通信模式后,主控发送查询指令 → 模块依据风杯旋转频率与风向标角度计算风速风向 → 以差分信号返回 → STM32 接收解析并校验,结果用于叶轮角度调整,循环执行实现实时风况获取。
4.3 电机速度检测流程
OUT 引脚配置输入并使能内部上拉 → 外部中断下降沿触发,ISR 中递增脉冲计数器 → 定时器每秒读取并清零计数器 → 依据计数值与时间间隔计算转速并换算为 RPM,为缠绕判定提供依据。
4.4 步进电机驱动流程
GPIO 推挽输出、初始低电平 → 按引脚 1→2→3→4 顺序置高并延时实现正转(反向则倒序)→ 转至目标角差对应步数后将全部引脚置低锁定,完成桨叶角度精确调节。
4.5 直流电机驱动流程
缠绕故障时 IN1/IN2 置对应电平使电机逆时针旋转,ENA 输出 PWM 控制速度 → 光耦检测到转速恢复后停止输出,实现解缠自动化。
五、系统实现与测试
5.1 硬件焊接与测试
完成主控、RS485 通信、测速、两路电机驱动与逆变器电路焊接后上电,万用表核查各路供电与 MAX485 差分线,验证步进电机时序、L298N 正反转与逆变器空载输出电压。
5.2 软件实现与测试
Keil 编译下载,串口观察 RS485 风况解析与 RPM 计算;调试对风死区参数、解缠判断逻辑与 PWM 占空比。
5.3 功能测试
| 测试编号 | 测试步骤 | 预期 | 结论 |
|---|---|---|---|
| T1 | 改变风向 | 桨叶跟随转动正对风向 | 通过 |
| T2 | 风速变化 | RS485 读数与实际一致 | 通过 |
| T3 | 转速监测 | RPM 显示随转速变化 | 通过 |
| T4 | 人为制造缠绕(停转) | 直流电机逆时针解缠 | 通过 |
| T5 | 逆变器输出测量 | 12 V 输入得 220 V 交流 | 通过 |
| T6 | 长时间户外运行 | 系统稳定、对风及时 | 通过 |
六、总结
本文以 STM32F103C8T6 为核心设计了风力发电机控制系统,集成三杯风速风向传感器、光耦测速、ULN2003 步进电机、L298N 直流电机与 TL494 逆变器,实现风向实时跟踪对风、缠绕故障自动检测解除与 12 V→220 V 电能转换并网等功能;系统兼顾风能利用率、运行安全与发电效率,为提高风能利用率和降低运行成本提供了可行的嵌入式解决方案,对推动风电技术进步与"双碳"目标实践具有积极意义。