您现在的位置是:首页 >其他 >智能离网微逆变系统网站首页其他
智能离网微逆变系统
简介智能离网微逆变系统
文章目录
一、功能描述
- 把风光能,逆变为可调压调频的交流电
- 可通过串口屏,PLC,以太网等调整及显示电压频率
- 串口屏:显示电压波形,修改电压频率,开机及修改次数
- PLC:修改电压频率
- 以太网:修改电压频率
二、硬件部分
2.1、单片机选型及中断号
2.1.1、引脚分配
2.2、EG8010
- EG8010 是一款数字化的、功能很完善的自带死区控制的纯正弦波逆变发生器芯片,应用于 DC-DC-AC 两
级功率变换架构或 DC-AC 单级工频变压器升压变换架构,外接 12MHz 晶体振荡器,能实现高精度、失真和
谐波都很小的纯正弦波 50Hz 或 60Hz 逆变器专用芯片。该芯片采用 CMOS 工艺,内部集成 SPWM 正弦发生器、
死区时间控制电路、幅度因子乘法器、软启动电路、保护电路、RS232 串行通讯接口和 12832 串行液晶驱动
模块等功能。
2.3、控制电路图
- 保护检测,光耦隔离,AD采样,eg8010,sg3525
- IAP15W4K61S4(STC15系列单片机)
- RS232:串口1 RXD:P3.0 TXD:P3.1
- 串口屏:串口2 RXD2:P1.0 TXD2:P1.1
- EG8010:串口3 RXD3:P0.0 TXD2:P0.1
- RS485:串口4 RXD4:P0.2 TXD4:P0.3 485_EN:P0.4
- wifi:模拟串口 RXB:P3.6 TXB:P3.7
- 故障指示灯:LED1-LED4 P4.1-P4.4
- 故障信号检测:Fault1-Fault4 P2.0-P2.3
- 输出电压检测:U ADIn:P1.7
- 输出电流检测:U ADIn:P1.6
- eg8010
- 6脚使能信号
- 7脚风扇
- 4.5脚通信
- 1.2脚死区时间调整
- 9脚正极性脉冲调制方法
- spwm脉冲,单极,性双极性调制方法
- 10.11脚晶振
- 13.14.15反馈输入
- 18.19频率选择
- 20调制方法选择
- 21软起动
- 27-30SPWM输出
- IR2110S:SPWM隔离放大5-15v
- 兼有光耦隔离和电磁隔离的优点,是中小功率变换装置中驱动器件的首选
- SG3525
- 驱动N沟道功率MOSFET,是一种性能优良、功能齐全、通用性强的单片集成PWM控制芯片,输出驱动为推拉输出形式,增加了驱动能力;内部含有欠压锁定电路、软启动控制电路、PWM锁存器,有过流保护功能,频率可调,能限制最大占空比
- 电流控制型PWM控制器,所谓电流控制型脉宽调制器是按照接反馈电流来调节脉宽的。在脉宽比较器的输入端直接用流过输出电感线圈的信号与误差放大器输出信号进行比较,从而调节占空比使输出的电感峰值电流跟随误差电压变化而变化。由于结构上有电压环和电流环双环系统,因此,无论开关电源的电压调整率、负载调整率和瞬态响应特性都有提高,是目前比较理想的新型控制器。
原文链接:https://blog.csdn.net/weixin_42341666/article/details/100046363
- 保护检测电路
- Batt_I,前级过流保护
- HVOv_Vol,母线过压
- BattUn_Vol,欠压(风光能20v)
- BattOv_Vol,过压(风光能28v)
2.4、主电路图
-
前级升压:
- 由SG3525发出PWM
- PWM控制芯片,输出驱动为推拉输出形式,增加了驱动能力;内部含有欠压锁定电路、软启动控制电路、PWM锁存器,有过流保护功能,频率可调,能限制最大占空比。
- 变压器升压
- 二极管整流
- 电容滤波
- 由SG3525发出PWM
-
后级逆变
- EG8010产生SPWM逆变
- 等幅不等宽方波,等效正弦波
- 面积等效原理
- EG8010产生SPWM逆变
-
直流供电电压降压
- 24转12
- 24转15
- 15转5
-
PC817
- 光耦隔离
- 给SG3525(1,9脚输入信号)
与引脚1间接电阻电容构成PI调节器
-
母线过压信号检测
-
电压,电流采样AD值
-
VFB,IFB,TFB
- EG8010反馈输入信号
三、代码流程图
-
代码共1075行
-
主函数流程图
- 模拟串口流程图
四、代码部分展示
4.1、主函数
#include "main.h"
#include "uart.h"
#include "send_eg.h"
#include "modbus.h"
#include "wifi.h"
#include "EEPROM.h"
void port_mode(void) // I/O口模式设置
{
P0M1 = 0x00; P0M0 = 0x10; //P0.4--485控制引脚 强推挽输出,,,,,\en
P1M1 = 0xc0; P1M0 = 0x00; //P1.6 P1.7--ADC采集口高阻输入模式,\I_ADIn,U_ADIn
P2M1 = 0xff; P2M0 = 0x00; //P2 高阻输入模式 \4 NLFault 不需要采集ad,大概率不需要初始化
P3M1 = 0x00; P3M0 = 0x00; //准双向口! 可以不写,因为默认模式
P4M1 = 0x00; P4M0 = 0xff; //强推挽输出\4 led led基本不需要强推晚
}
void delay_us(u16 n)
{
do
{
n--;
}
while(n);
}
void delay_ms(u16 n)
{
do
{
delay_us(900);
}
while(--n);
}
void main()
{
u8 i=0;
u8 buffer[50],len;//串口屏数据处理用
port_mode();
Uart2_init();//串口屏
Uart3_init();//eg8050
RS485_init();//485
Timer0Init();//1ms
InitADC(); //AD初始化
UART_INIT(); //wifi初始化
EEPROM_Read(); //读邋邋邋EEPROM,读电压,频率,开机次数
delay_ms(10);
kjc++; //开机次数+1
SetTextValue(0,14,dyc);//串口屏显示电压
SetTextValue(0,14,dyc);//串口屏显示电压,写一次显示不出来,可能需要
SetTextValue(0,15,plc);
SetTextValue(0,13,kjc);
delay_ms(10);
EEPROM_Write(); //电压,频率,开机次数,写入EEPROM
EG_OUTPL(0);
while(1){
Curve_Show();//曲线,电压电流,峰谷值
check_modbus();//485判断是否收到数据,然后去处理
Wifi_Ctrl(); //网络控制输出
if(i==255){ //queue_find_cmd(buffer,50); 延时作用,因为串口屏数据接收需要一定时间,不加延时可能读不到完整数据
i=0;
EG8010_ctr();//频率, 电压值是通过ad采样(虽然eg也可以读取电压,但是还是使用ad更为稳妥)
len = queue_find_cmd(buffer,50); //取串口屏发送的一帧数据,有返回数据长度,没有完整数据返回0
if(len>0){
ProcessMessage((PCTRL_MSG)buffer);//处理一帧数据
len=0;
memset(buffer,'