光伏并网发电模拟装置(二)(09全国大学生电子设计大赛全国一等奖)
1 光伏并网发电模拟装置全国二等奖四川理工学院四川理工学院 刘勇刘勇刘勇 郭振建郭振建 李岱李岱 摘要 本 光伏并网系统以 MSP430F169单片机为核心, 单片机输出 SPWM 波形经 IR2110驱动 H 桥,实现 DC-AC 逆变。最大功率点跟踪( MPPT)绝对误差小于 1%,利用 430单片机软件实现锁相环,用参考频率作为基准频率,对 MSP430单片机的外中断和定时器测定相位,当反馈的电压信号相位滞后(超前)于参考信号的相位时,就增大(减小) SPWM的频率;达到相位和频率同步。包括阻性负载,以及非阻性负载,实现了频率跟踪, 相位跟踪。 DC-AC 转换效率达 88%, , 人机接口 LCD 液晶显示器, 界面直观、简洁,显示输出电压、电流,具有良好的人机交互性能。关键词:光伏并网 MSP430F169 DC-AC 软件锁相一、 系统方案设计系统方案设计、 、 比较与论证根据题目要求分以下几部分进行方案设计与论证: 1、正弦脉宽调制 SPWM的及驱动电路方案选择 方案一:采用可输出 SPWM波形的控制芯片 SG3525。该芯片能直接驱动功率场效应管,具有内部基准源、运算放大器和欠压保护功能,外围电路简单。 方案二:采用 MSP430F169单片机输出 SPWM波形,再送 IR2110 驱动 H桥。此方案控制电路简单,靠软件产生 SPWM波,成本低,有调试经验,此方案可取。 方案三 : 如图所示,用比较器组成的正弦脉宽调制电路,所得 SPWM波形最接近正弦波。但由于三角波与正弦波交点有任意性,脉冲中心在一个周期内不等距,从而脉宽表达式是一个超越方程,计算繁琐,调试困难。 图 1 SPWM产生电路 综合题目要求,为实现方案,选择单片机输出 SPWM波,选择方案二。 2、频率、相位跟踪方案选择 方案一:如图所示,采用锁相环芯片 CD4046的相位控制系统,能够自动跟踪输入信号的频率和相位。但是有效的锁相要求芯片对输入波形、 PCB 布局、滤波网络参数要求较高。 图 2 锁相环电路2 方案二:如图 3 所示,用 MSP430 单片机进行过零检测。实现并网发电,关键是输出的电压要和电网电压同相位。实时检测电源电压的过零点和频率,根据过零点和频率就可以跟踪输入的电源电压的相位,实现同步,但是用 MSP430 单片机进行频率、相位跟踪,实现需要很大考验。图 3 过零检测电路 方案三:采用速度更 快 的 DSP。 将 电网电压信号经滤波、 整 形产生同步方波信号,同步方波信号输入 D S P 的外部中断口, 捕捉 电网电压的过零点,检测同步信号的 上升沿 ,可以实现方案。 经过 我们 小组 讨 论,最 终 方案如下图 4 所示 图 4 总体框 图 二 、 理论分析与计算1、 MPPT 的控制方 法 与参数计算 MPPT 的控制方 法 很 多 ,如 恒 定电压控制 法 、 扰 动观测 法 、 导纳 增 量法 , 模糊 控制 法 ,本题要求 Rs 和 RL 在 给 定 范 围内变 化 时, 使 Ud=1/ 2Us。所以本题为 恒 定电压控制 法 。实现方 法 如图 5 所示 直流稳压电源DC-AC LC 滤波 隔离变压器MSP430F169 单片机MPPT 欠压保护IR2110 驱动电路SPWM 波反馈绕组负载电流检测精密整流过零比较施密特整形滤波电路正弦信号参考输入精密整流过零比较 整形滤波 显示部分 辅助电源3 如图 5 MPP T 跟踪 如图所示: 我们 得 Ud=Us-Ul,为 使 Ud=1/ 2Us, 通 过取 样 电阻网络,用 MSP430F169内部 12 位 AD采 样 , 控制单片机输出 SPWM的 占空 比, 改 变输出电压, 使 Ud稳 定在 1/ 2Us,此方案简单, 容易 实现。 2、同频、同相的控制方 法 与参数计算 用 MSP430单片机软件实现锁相环,用参考频率作为基准频率,用 430 单片机的外中断和定时器测定相位,当反馈的电压信号相位滞后于参考信号的相位时,就增大 SPWM的频率; 否则 就减小 SPWM的频率, 使 最后达到相位和频率同步。但是, 我们 在实 际 测试中发现, 真 正要实现同频、同相,对电路的要求非 常 高,对 PCB 布局,对 PCB 布 线都是很有 讲究 的,由于程 序 靠 查询 430 单片机外部中断,所以,当外部输入信号包 含尖峰 脉冲 或者 是非 标志 波形时,很难实现方案。所以, 我们 在送单片机中断口时, 加 入施密特触 发器,和滤波电路,而 且 要 尽量 靠近此中断口, 这样 很有效的实现了,频率和相位的 追 踪, 无 需任 何 相关电路, 真 正由一个 8M单片机实现光伏并网。 3、 提 高效率的方 法( 1)采用环形变压器。由于 其 内部 结构 用 优质冷轧硅钢 片 无缝地卷 制而成, 线圈均匀地绕 在 铁 心 上 , 线圈 产生的 磁力线 方 向 与 铁 心 磁 路几 乎完全重 合,与 叠 片式相比 激磁能 量 和 铁 心 损耗将 减小 25% , 漏磁 最小,效率可达 95%左右 , 其 效率 优 于 传 统变压器。( 2) 采用 IR2110 驱动芯片。 由于 IR2110 驱动芯片驱动 mosfet 管驱动波形的正 向边缘陡 直, 幅 度大,能减小 开 关管 趋 于 导通 时的 上升 时 间 。 使 H 桥中的 mosfet 管能够可靠的交 替导通 , 开 关 损耗降 低,非 常 有利用 提 高 整板 效率。4、滤波参数的计算由于 H 桥以高频的 SPWM 波形 工 作, 输出滤波器的作用是滤出高 次谐 波分 量 , 使 输出波形接近于正弦波。滤波器的设计应 使 输出电压 谐 波 少 、阻频 特 性好、滤波功 耗 小,但是实 际 LC 滤波电路, 计算相对 复杂 , 最 重 要的是算出的电 感值 一 般 不 易购买 到, 所以 我们 参考经验 公 式,选用 常见 LC 滤波电路,此 处 滤波电路如图 6 所示。图 6 LC 滤波4 三 、 电路与程序设计1、 DC-AC 主回 路与器件(1)DC-AC 逆变部分如图 7 所示。 DC-AC 逆变是本设计的核心, MSP430 单片机输出的SPWM 波形,由于 其 IO 驱动能 力 不 足 ,不能直接驱动由 四 个 mosfet 管 IRF540 组成的H 桥,所以电路 加 入 IR2110 驱动芯片,该芯片驱动电路简单,成本低,最 重 要的就是其 输出驱动波形好,有利于 提 高电源效率,图 7 DC-AC 主回 路(2)精密整 流电路图 8 所示。 该电路实现 把隔离 变压器的交流反馈信号变换成直流信号,方 便 数 字 部分 即 单片机 处理 ,此外该电路 还 实现了阻 抗 变换, 降 低输入阻 抗 。图 8 精密整 流电路2、保护电路(1)欠压保护电路。电路如图 9 所示,该电路 通 过对电阻 R1,R2 上 分压进行 AD 采 样 ,送 MSP430 单片机 处理 , 判 断 R2 上 的电压 值 ,当输入电压小于 25v,此时 R2 上 电压值 小于 1.2V 时,单片机驱动 继 电器断 开 后 极 电路, 起 到欠压保护功能。图 9 欠压保护(2)过流保护电路。如图 10 所示 ,该过流保护电路, 主 要 解决 方案是在输出 回 路中 串联 一自 绕 的互 感线圈 , 使 输出电流变换反 映 到互 感线圈 的 次级 ,在送测 量 放大电路 处理 后,送单片机 AD,当输出电流超过 2. 5 图 10 过流保护3、 主 程 序 流程( 详细 程 序见附 件 8)四、测试方案与测试结果1、测试时所用 仪 器。 见附 件 1.1 2、测试方案及测试 条 件2.1 基本要求测试(1)最大功率点跟踪( MPPT) 见附 件 1.2 (2)频率跟踪当 fREF 在 45Hz~55Hz范 围内变 化 时, 使 uF 的频率 fF=Fref,相对 偏 差绝对 值 不大于 1%。fFEF (Hz) 45 50 55 fF (Hz) 44.98 49.90 54.95 相对 偏 差绝对 值0.04% 0.2% 0.09% (3)当 Rs=RL=30 ? 时, DC-AC 变换器的效率 η≥ 60% 。 见附 件 1.3 开始初始化ADC 采样最大功率跟踪是否欠压欠压保护是否过流 过流保护更新显示6 (4)当 Rs=Rl=30 ? 时,输出电压 uo 的 失真 度 THD ≤ 5%。此 次 测试 使 用 ZC4121A 失真度测试 仪 , SU3100 DDS 函 数信号发生器, 其失真 度 , 其 中 Ci 为信号源失真 度, Ki 为 加上 信号源测 被 测设 备 产生的 失真 度。 见附 件 1. 4 ( 5) 输入欠压保护功能。动作电压 Ud(th)=( 25± 0. 5)V。 见附 件 1. 5 ( 6) 输出过流保护功能。动作电流 I o(th)=( 1. 5± 0. 2)A。 见附 件 1. 6 2. 2 发 挥 部分测试 ( 1)提 高 DC-AC变换器的效率, 使 η≥ 80% ( Rs=Rl=30 ? )。( 2)降 低输出电压 失真 度, 使 THD≤ 1%(Rs=Rl=30? ) 。( 3) 实现相位跟踪功能:当 f REF 在 给 定 范 围内变 化 以及 加 非阻性负载时, 均 能保证 uf与 uref 同相,相位 偏 差的绝对 值 ≤ 5° 。 fREF( Hz) 45 50 55 相 位 偏 差 绝对值3.5°3° 3°( 4) 过流、欠压 故障排除 后, 装置 能自动 恢复 正 常状态 。 见附 件 1.73、测试 结果 及 其完整 性4、测试 结果 分 析在几 天 的调试中, 我们 发现困 扰我们 前进的 做 大 原因 就是 干扰 ,由于相位跟踪、频率跟踪,在光伏并网中 十 分难实现的 指标 ,一 般做 光伏并网 都 是采用 DSP 等高速的 微处理 器,而 我们 此 次 设计的光伏并网采用 8M 单片机的 MSP430F169 实现了频率和相位的跟踪,在此过程中, 学 到了很 多东西 ,就是在以后的电路设计中,一定要 处理 好电源的 退偶 ,就是在高频电路设计时, PCB 布局, PCB 走线 , 都 是非 常重 要的。5、 总结 : 这次 能有机 会 参 加 电 子 设计大 赛 , 我们 大二的三位同 学都 非 常 高 兴 , 这两 个月 的 磨练 和 这四天 的比 赛 , 使我们学会 了很 多 , 也感受 了 许多 ,此 次我们 选择的是 A题, 模拟 光伏并网发电 装置 , 我们使 用的是 MSP430 单片机,在 四天 的 努力 中, 我们实现了题目中的大部分要求,能够跟踪相位,频率和转换效率,欠压保护, 我们 非 常的高 兴 。 感谢 组 委会 跟 我们 的 这次锻炼 机 会 。 我们会 在以后的 学习 中更 加努力 。参考 文献[1] 王志刚 龚兴华 谢嘉奎 编著《 现 代 电 子线 路 》 北京 : 清华 大 学 出 版社 ; 北京 交 通大 学 出 版社 , 2003.2 [2] 高 吉祥 主编 , 刘希顺 刘 菊荣 高 勐 编著 《全 国 大 学 生电 子 设计 竞 赛 培训 系 列教 程 》北京 :电 子工 业 出 版社 2007.5 [3] 周 志 敏 周 纪海 纪爱 华 编著《 逆变电源实用 技术 》北京 :中 国 电 力 出 版社 , 2005 7 附件:1、测试时所用 仪 器。附件 1.1 2. 最大功率点跟踪( MPPT) 通 过 改 变 Rs 和 Rl 在 给 定 范 围内( 30? ~36? )变换时,使 Ud=1/2Us。 使 相对 偏 差的绝对 值 不大于 1%。RS 30? 30? 36? 36?RL 30? 36? 30? 36?Ud 30.3 30.25 30.12 30.15 相对 偏 差绝对 值 ≤ 1% ≤ 1% ≤ 1% ≤ 1% (3)当 Rs=RL=30 ? 时, DC-AC 变换器的效率 η≥ 60% 。输入电压( V) 30.14 输入电流( A) 0.96 输入功率( W) 28.9344 附件 1.2 输出电压( V) 14.37 输出电流( A) 1.77 输出功率( W) 25.4349 效率 η =Po/Pi= 87.9% 附件 1.3 ( 4)当 Rs=Rl=30 ? 时,输出电压 uo 的 失真 度 THD ≤ 5%。此 次 测试 使 用 ZC4121A 失真 度测试 仪 , SU3100 DDS 函 数信号发生器, 其失真 度 , 其 中 Ci 为信号源 失真 度, Ki 为 加上 信号源测 被 测设 备 产生的 失真 度。 见附 件 1. 4 序号 仪器 数量1 三位半数字万用表 VC89D 1 2 LCR 数字电桥 CB-2812 1 3 直流稳压电源 YB1732A3A 1 4 函数信号发生器( 100M ) SU3100 1 5 数字存储示波器( 100 MHz 双通道 250MSa/s 实时采样率和25GSa/s 等效采样率) GDS-1102 1 6 失真度测试仪(测试精度高,操作方便,性能可靠 ■ 失真测量范围可打 0.01% ■ 电平自动校准, 测量时不受输入信号电平的影响,不需 进行满意度校正。 ■ 频率自动跟踪) ZC4121A 1 8 测 量 结果Ki 4. 2%Ci 0. 66%失真 度 4. 3%附件 1.41.4 ( 5) 输入欠压保护功能。动作电压 Ud(th)=( 25± 0. 5)V。 经过测试,欠压保护电路动作电压 Ud=25. 3V( 6) 输出过流保护功能。动作电流 I o(th)=( 1. 5± 0. 2)A.经过电路动作电流在 1. 48A(7) 过流、欠压 故障排除 后, 装置 能自动 恢复 正 常状态.电路在 排除故障 后, 都 能自 恢复 。 (8) 重 要程 序 。 附 录 8#define uchar unsigned char #define uint unsigned int #include “io430.h“ #include “in430.h“ #include “LCD.h“ #include “show.h“ uint adc_0; uint adc_1; uint D_SPWM; //用 来 控制 SPWM 的 总体占空 比uint F_SPWM; //用 来 控制 SPWM 的频率uint P_SPWM; //用 来 控制 SPWM 的相位uint REF1; //记录 上 一 次 参考信号周期uint time0, time1; uint REF, FEED; //REF, FEED 为周期的 记录 值uint Vin, Iout, Fre, F, feed; uint adc0_sum[8]; uint adc1_sum[8]; uint j; // 判 断 继 电器动作//正弦表const uint SPWM[]={ 2, 5, 9, 12, 16, 19, 22, 25, 28, 32, 35, 38, 41, 44, 9 47, 51, 54, 57, 60, 63, 66, 69, 72, 76, 79, 82, 85, 88, 91, 94, 97, 100, 103, 106, 108, 111, 114, 117, 120, 123, 126, 128, 131, 134, 137, 139, 142, 145, 147, 150, 153, 155, 158, 160, 163, 165, 168, 170, 172, 175, 177, 179, 182, 184, 186, 188, 190, 193, 195, 197, 199, 201, 203, 205, 207, 208, 210, 212, 214, 216, 217, 219, 221, 222, 224, 225, 227, 228, 230, 231, 232, 234, 235, 236, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 247, 248, 249, 250, 250, 251, 252, 252, 253, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 253, 253, 252, 252, 251, 250, 250, 249, 248, 247, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 236, 235, 234, 232, 231, 230, 228, 227, 225, 224, 222, 221, 219, 217, 216, 214, 212, 210, 208, 207, 205, 203, 201, 199, 197, 195, 193, 190, 188, 186, 184, 182, 179, 177, 175, 172, 170, 168, 165, 163, 160, 158, 155, 153, 150, 147, 145, 142, 139, 137, 134, 131, 128, 126, 123, 120, 117, 114, 111, 108, 106, 103, 100, 97, 94, 91, 88, 85, 82, 79, 76, 72, 69, 66, 63, 60, 57, 54, 51, 47, 44, 41, 38, 35, 32, 28, 25, 22, 19, 16, 12, 9, 7, 4, 2, 3, 6, 9, 12, 16, 19, 22, 25, 28, 32, 35, 38, 41, 44, 47, 51, 54, 57, 60, 63, 66, 69, 72, 76, 79, 82, 85, 88, 91, 94, 97, 100, 103, 106, 108, 111, 114, 117, 120, 123, 126, 128, 131, 134, 137, 139, 142, 145, 147, 150, 153, 155, 158, 160, 163, 165, 168, 170, 172, 175, 177, 179, 182, 184, 186, 188, 190, 193, 195, 197, 199, 201, 203, 205, 207, 208, 210, 212, 214, 216, 217, 219, 221, 222, 224, 225, 227, 228, 230, 231, 232, 234, 235, 236, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 247, 248, 249, 250, 250, 251, 252, 252, 253, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 253, 253, 253, 252, 252, 251, 250, 250, 249, 248, 247, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 236, 235, 234, 232, 231, 230, 228, 227, 225, 224, 222, 221, 219, 217, 216, 214, 212, 210, 208, 207, 205, 203, 201, 199, 197, 195, 193, 190, 188, 186, 184, 182, 179, 177, 175, 172, 170, 168, 165, 163, 160, 158, 155, 153, 150, 147, 145, 142, 139, 137, 134, 131, 128, 126, 123, 120, 117, 114, 111, 108, 106, 103, 100, 97, 94, 91, 88, 85, 82, 79, 76, 72, 69, 66, 63, 60, 57, 54, 51, 47, 44, 41, 38, 35, 32, 28, 25, 22, 19, 16, 12, 9, 6, 4, 2 }; void init() { uint i; WDTCTL = WDTPW | WDTHOLD; for (i = 0; i = 8) { i = 0; 12 } adc0_sum[i] = ADC12MEM6; //电压adc1_sum[i] = ADC12MEM7; //电流dat1 = sum(adc1_sum,8); dat0 = sum(adc0_sum,8);//转换 获 得Vin = (1000*dat0)/7730; //用 来 更 新 显示Iout = dat1; if (dat0 > 2340) //用 来 调 整 最大功率{ if (D_SPWM 2) { D_SPWM--; } } if (Vin 2200) //过流保护{ 13 LCD_CLR(); show_huamian(); show_guoliu(); while (dat1 > 400) { D_SPWM = 50; dat1 = ADC12MEM7; dat0 = ADC12MEM6; Vin = (1000*dat0)/7700; show_data(); } LCD_CLR(); show_huamian(); show_gongzuo(); } if (REF > 20000) { F = (long long)10000120 / (FEED-6400); //计算出输出频率} else { F = (long long)10000120 / (FEED-3200); //计算出输出频率} Fre = (long long)10000120 / REF; } void main( void ) { init(); show_huamian(); while (1) { show_data(); det(); } } #pragma vector = TIMERB1_VECTOR //益 处 中断 (更 新 PWM) __interrupt void TimerB1() { if (TBIV == 0x0e) { 14 if (P_SPWM > 8); P_SPWM++; if (P_SPWM == 250) { TBCCTL3 = CLLD_1 + OUTMOD_0 + OUT; TBCCTL4 = CLLD_1 + OUTMOD_0; } } else { TBCCR1 = ((D_SPWM*SPWM[P_SPWM]) >> 8); //D_SPWM 的 值 不超过 255 P_SPWM++; if (P_SPWM == 500) { P_SPWM = 0; TBCCTL3 = CLLD_1 + OUTMOD_0; TBCCTL4 = CLLD_1 + OUTMOD_0 + OUT; } } } } #pragma vector = PORT1_VECTOR //外部中断__interrupt void INT1() { P1IFG REF = TAR - time0; time0 = TAR; if ((REF > 17800) } else { time1 = TAR-3200; } time = time1-time0; if ((time 50)) // 如 果 相位超前了 则 减小频率{ F_SPWM++; } if (time >55500 } TBCCR0 = F_SPWM; } (9)DC-AC 部分精密整 流,过零检测电路16 主 电路 原理 图 17