全国电子竞赛光伏并网发电.doc_第1页
全国电子竞赛光伏并网发电.doc_第2页
全国电子竞赛光伏并网发电.doc_第3页
全国电子竞赛光伏并网发电.doc_第4页
全国电子竞赛光伏并网发电.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

光伏并网发电模拟装置(A题)设计报告一、 方案比较与选择系统总体结构框图如图1所示图1系统总体框图1、电源逆变方案方案一:采用单极性SPWM算法,优点是信号等效倍频,在不增加开关损耗的情形下,等到较高的“等效”开关频率,仅需要较小的输出滤波即可得到较好的输出;缺点是需要两路独立的控制信号,计算量较大。方案二:采用规则采样法,通过软件形成一个正弦表,利用软件查表的方式来实现载波与调制波大小的比较,再控制脉宽来生成SPWM波形。这种方案不仅具有生成的SPWM波形最接近正弦波的优点,而且计算量也不大。鉴于ATMEGA16较低的运算速度,并且本题对波形失真度的要求并不太高,我们选择方案二。2、最大功率点跟踪方案采用对US 、Ud 进行相同比例采样的方法实现最大功率点跟踪,使US 紧紧跟随US 的变化而变化,RS和RL在给定范围内变化时,使,相对偏差的绝对值不大于1%。3、频率跟踪功能方案方案一:采用频压芯片将采到的频率信号转换为与之成线性关系的电压信号,再将转换后的电压信号送给单片机与给定值比较,进行频率闭环控制。这种方案的优点是对单片机要求低,计算量小,采样速度快,而且频压转换的线性也较高。方案二:采用单片机队输出波形进行采点计数,通过软件实现频率跟踪,这种方法的计算量较大,对采样频率要求较高。综上所述,根据我们选用的单片机Atmega16L的具体特点,再考虑到采样速度和精度的要求,我们选择方案一。4、相位跟踪功能方案方案一:采用锁相环实现。锁相环中的鉴相器利用模拟乘法器来实现,输出利用低通滤波,在两个比较信号为同相电压时,可以得到一个精确的仅与这两个比较信号相位差有关的直流量,再送到单片机中进行比较、处理。这种方案的优点是利用硬件电路即可实现对相位的跟踪,电路简单,但是同时此方案对两个比较信号的同频度要求较高。方案二:采用滞回比较器实现。合理设置滞回比较器参数,将参考正弦信号上升过零点转化为比较器输出方波的下降沿,由单片机采样,将输出电压上升过零点与参考信号上升过零点相同,从而实现开环相位跟随。综合可靠性与硬件调试的具体情况,我们选择方案二实现相位跟随功能。二、理论分析计算及电路设计1、DC-AC主回路设计与器件选择 系统主回路采用DC-AC单相全桥逆变电路实现,如图2所示。对于主回路DC-AC变换器,主要计算及器件选择如下:开关器件选择IRF740(额定电流10A,耐压达400V,导通电阻小于0.55);缓冲电路二极管采用FR107,耐压1000V,允许通过电流30A,最大反向恢复时间为500ns;缓冲电容根据经验值选择0.01F,缓冲电阻选择5.1,3W的功率电阻。为防止单片机生成的SPWM信号收到主电路的干扰,将驱动信号通过光耦PC817隔离后输入到IR2130高性能集成六输入高压MOS栅极驱动器,再加到MOSFET的栅源极之间。同时利用IR2130内部的检测单元可以有效地防止桥路直通现象。图2 DC-AC主回路原理图2、滤波电路设计SPWM波形中包含的谐波主要是载波频率c和2c及其附近的谐波,需要采用LC无源低通滤波电路滤除高次谐波使输出电压为基波分量,即工频正弦波。本系统设定的开关频率为5KHz,设计滤波器的截止频率应低于5KHz,即12LC5KHz据此设定L、C值。选用30F的无感电容,电感小,高频特性好,根据计算得出电感值约为1,85mH,采用自制电感。图3 滤波电路原理图3、控制电路设计采用AVR单片机最小系统板实现控制功能,将单片机生成的SPWM信号隔离后对全桥电路的MOSFET进行驱动控制,单片机内置10位的AD可以对电压值和信号频率进行采样,其中信号频率是通过频压芯片LM2907转换为直流电压信号再送给单片机处理。单片机通过软件对电压、电流和频率进行闭环控制,实现最大功率点跟踪和频率、相位的跟踪。同时单片机利用欠压和过流信号控制MOSFET 的开关可实现过流、欠压保护功能。此外,单片机可以控制LCD液晶显示,实时反映输出端电压和频率的变化。4、频率、相位跟随电路设计设计的频压转换电路如图4所示,通过将参考信号的频率值转换为与之成正比的电压值可以有效地对频率进行采样,经单片机处理后控制输出端信号的频率变化,实时有效地跟踪参考信号。图4 频压转换电路原理图相位跟随通过将参考信号输入滞回比较器,合理设置滞回比较器参数,将参考正弦信号上升过零点转化为比较器输出方波的下降沿,由单片机采样,将输出电压上升过零点与参考信号上升过零点相同,从而实现开环相位跟随。 图5 滞回比较器电路原理图5、最大功率点跟踪(MPPT)方法设计采用对US 、Ud 进行相同比例采样的方法实现最大功率点跟踪,采用精密电阻(比例为1:30)对二者进行分压,使US 紧紧跟随US 的变化而变化,能保证RS和RL在给定范围内变化时,使,相对偏差的绝对值满足设计要求。6、过流、欠压保护电路设计利用精密电阻对US 、Ud进行合理的分压后得到适合A/D采样范围的电压进行采样。只要单片机检测到采样电压低于动作电压Ud(th)即关断SPWM信号,使输出为零,实现欠压保护。利用电流互感器和有效值芯片AD736对输出电流的反馈信号进行采样,得到相应正弦信号的有效值送给单片机进行处理,经过计算将Io(th)=1.5A作为动作电流进行处理,可以得到准确、稳定的过流关断信号。过流保护电路如附录图5所示。7、提高效率的方法选择合适的主回路拓扑,使用尽可能少的元器件,降低开关频率;主电路选择导通损耗小的开关器件;测量及控制电路在设计时尽可能使用工作电压低的元器件;控制电路尽可能使用数字方法实现等都可以有效地提高系统的效率。8、特色设计(1)辅助电源利用LM2576系列开关稳压集成电路可以产生稳定的15V和+5V的电压给系统中的芯片可靠供电,设计的辅助电源的原理图如附录图所示(2)LCD液晶显示选择JM12864液晶屏做数据显示,可以实时显示输出的电压值以及输出信号的频率,作为系统稳定性和检查指标时的参考。三、软件设计STARTSPWM程序初始化液晶初始化ADC初始化相位跟踪初始化显示当前状态量当前各相关量显示延时,等待中断图6 程序流程图电压和频率的闭环控制均在ADC的中断服务子程序里实现,可保证较好的实时性;SPWM中断子程序具有最高的优先级,可保证输出的波形无明显失真;相位跟踪通过外部中断实现。四、测试方法及测试结果1、测试仪器与设备(1)直流稳压电源DF1731SD3AB(2)四位半数字万用表UT56(3)60MHz双通道数字示波器DS5102CA(4)函数信号发生器TFG3050 DDS(5)失真度测试仪2、测试数据(1)最大功率点跟踪测试表1 输入电压UdRS=RL=30RS=30、RL=38RS=38、RL=30RS=RL=38US(V)60.0560.0360.0360.01Ud(V)29.8829.9329.7429.80(2) 频率跟踪测试表2 输出频率 fFfREF (Hz)4546474849505152535455fF (Hz)45.0546.0847.1748.0849.0250.2551.2852.3653.1954.0555.25(3)DC-AC变换器的效率测试表3效率参数测试 Ud29.95VId0.98APd29.351WUo125.9VIo10.838APo21.704W73.9%(4)输出电压Uo的失真度THD测试利用失真度仪在当RS=RL=30时测试得到失真度为2.8%,满足基本部分的要求。(5)输入欠压保护功能测试利用万用表测得当动作电压Ud(th)=24.98V时可以有效地实现欠压保护功能。(6)输出过流保护功能测试 利用万用表测得当动作电流Io(th)=1.48A时可以有效地实现过流保护功能。(7)相位跟踪功能测试当fREF在给定范围内变化时,均能保证uF与uREF同相,相位偏差的绝对值5,满足要求。五、问题及改进措施1、效率较低,没有完成扩展部分的要求,分析原因可能是由于开关管的损耗较大或是输出滤波效果不好所致,考虑选用性能更优的开关管并且更加合理地设计滤波参数来提高效率。2、输出电压失真度不能降得更低,分析原因可能是由于频率、电压和电流通过AD采样时互相产生干扰,使输出波形不稳,考虑延长以调节时间的代价来提高系统调节的可靠性以改善输出波形。附录1、电路原理图图1 单相全桥原理图图2 驱动隔离电路原理图图3 频压转换原理图图4 滞回比较电路原理图图5 电流采样电路原理图图6 辅助电源原理图图7 单片机最小系统原理图2、软件设计源程序(1)主程序#define F_CPU 7.3728e6#include#include#include#include#includeLCD_string.hconst prog_int16_t sin99=0 ,16 ,33 ,49 ,65 ,81 ,97 ,112 ,126 ,141 ,154 ,167 ,179 ,191 ,202 ,212 ,221 ,229 ,237 ,243 ,248 ,253 ,256 ,258 ,260 ,260 ,259 ,257 ,254 ,251 ,246 ,240 ,233 ,225 ,216 ,207 ,197 ,185 ,173 ,161 ,147 ,134 ,119 ,104 ,89 ,73 ,57 ,41 ,25 ,8,-10,-27 ,-43 ,-59 ,-75 ,-91 ,-106 ,-121 ,-136 ,-149 ,-163 ,-175 ,-187 ,-198 ,-209 ,-218 ,-227 ,-235 ,-242 ,-248 ,-253 ,-256 ,-259 ,-261 ,-262 ,-262 ,-260 ,-258 ,-255 ,-250 ,-245 ,-239 ,-231 ,-223 ,-214 ,-204 ,-193 ,-181 ,-169 ,-156 ,-143 ,-128 ,-114 ,-99 ,-83 ,-67 ,-51 ,-35 ,-19 ;#define Fbin 780/频率典型值780#define Ibin455/过流典型值455#define Vlow 315 /低电压临界值315#define Kv 31/电压增益31#define Kf 171/频率系数171volatile int top=0x02f8;/计数顶值volatile long Kp=4096;/幅度调制比增益volatile float TVs=0;/实际Vsvolatile float TVd=0;/实际Vdvolatile float TIout=0;/实际Toutvolatile unsigned int Rvoltage=388;/参考电压值volatile float Tfrequency=50.0;/实际频率volatile unsigned char sincount=0;volatile unsigned int Vd=0,frequency=0,Iout=0;volatile long Vs=0;volatile unsigned char ccflag=0;long Ktop=443200;unsigned char List1=当前Us: V;unsigned char List2=当前Ud: V;unsigned char List3=输出电流 A;unsigned char List4=当前频率 Hz;void InitDsp(void);void SPWMInit(void);void ADCInit(void);void CCInit(void);/过流恢复void PhaseInit(void);int main()SPWMInit();InitDsp();ADCInit();PhaseInit();CCInit();sei();do_delay_ms(200);TVs=(float)Vs/400*Kv;TVd=(float)Vd/400*Kv;TIout=(float)Iout/40000*139;Tfrequency=(float)frequency/57*5;LCDDspFloat(1,4,TVs);LCDDspFloat(2,4,TVd);LCDDspFloat(3,4,TIout);LCDDspFloat(4,4,Tfrequency);while(1);/*SPWM初始化*/void SPWMInit(void)DDRD|=0x30;ICR1=top;/TOP=1490,载波频率为4.948kHzTCCR1A=0xe0;TCCR1B=0x11;/模式8、无分频、A上升匹配置位、B上升匹配清0OCR1A=20;OCR1B=20;TIMSK|=0x04;/溢出使能TCNT1=0;/*SPWM中断服务*/ISR(TIMER1_OVF_vect)static int ram_val;static signed long int temp;ram_val=pgm_read_word(sin+sincount);temp=ram_val;temp=temp*Kp;temp=temp12;temp=temp+(top1);OCR1A=temp;OCR1B=temp+4;sincount+;if(sincount=98) sincount=0;ICR1=top;/*AD初始化*/void ADCInit(void)ADMUX=0xc2;/采2通道(电压)3为频率ADCSRA=0xed;/开AD、开始启动、中断使能、自动触发、64分频,采样周期4.43KhzSFIOR=0x00;/*AD中断处理*/ISR(ADC_vect)static unsigned char i=0;unsigned int temp1,temp;static unsigned char Vflag=0;static unsigned char chflag=0;/0,Vs;1,Vd;2,fint du;static int sumf=0,sumVs=0,sumVd=0,sumI=0;static int ftemp4=760,760,760,760;if(chflag=0) ADMUX=0xc1;if(chflag=1) ADMUX=0xc2;if(chflag=2) ADMUX=0xc3;if(chflag=3) ADMUX=0xc0;temp1=ADCL;temp=ADCH;temp=(temp5;Vs=temp;Vs=Vs*1041/1000;Rvoltage=Vs1;if(RvoltageVlow+20)/欠压恢复Vflag=0;DDRD|=0x30;sumVs=0;break;break;case 1:if(i=0) temp=0;sumVd+=temp;i+;if(i=33)i=0;chflag=2;temp=sumVd5;Vd=temp;sumVd=temp;if(Kp5500) temp=Rvoltage;Kp=5500;du=temp-Rvoltage;Kp+=du;sumVd=0;break;break;case 2:if(i=0) temp=0;sumf+=temp;i+;if(i=33)static signed char ct=0;static unsigned char j=0;i=0;chflag=3;temp=sumf5;frequency=temp;sumf=Ktop/temp;ftempj=sumf;j+;if(j=4) j=0;if(ftempjFbin+300)|(ftempj(top+2) ct+;if(ftempj2;ct=0;sumf=0;break;break;case 3:if(i=0) temp=0;sumI+=temp;i+;if(i=33)i=0;chflag=0;temp=sumI5;Iout=temp;if(tempIbin) ccflag=1;DDRD&=0xcf;/过流保护sumI=0;break;break;default:break;/*初始显示*/void InitDsp(void)LCDinit();LCDDspString(1,0,List1);LCDDspString(2,0,List2);LCDDspString(3,0,List3);LCDDspString(4,0,List4);/*过流恢复初始化*/void CCInit(void)TCCR0=0x4d;/1024分频、快速PWM、无输出TIMSK|=0x01;/溢出使能OCR0=0xff;TCNT0=0;/*过流恢复*/ISR(TIMER0_OVF_vect)static char count=0;count+;if(count=60)&(ccflag=1)DDRD|=0x30;count=0;ccflag=0;/*相位跟随初始化*/void PhaseInit(void)MCUCR=0x02;/int0、1下降沿触发GICR|=0x40; /0号中断使能DDRD&=0xfb;/PD2为输入/*相位跟随*/ISR(INT0_vect)static unsigned int temp;sei();_delay_us(50);if(PIND&0x04)=0)/*if(sincount=0)return;else if(sincount50)sincount+;elsesincount-;*/temp=sincount;if(sincount43)&(sincount63)sincount=53;(2)LCD显示驱动程序#define F_CPU 7.3728e6#include#include#includeLCD_string.h/*显示字符串*/void LCDDspString(unsigned char X,unsigned char Y,unsigned char *DData)unsigned char Length=0;LCDPOS(X,Y);while(DDataLength)LCDWData(DDataLength);Length+;/*显示单个字符*/void LCDDspChar(unsigned char X,unsigned char Y,unsigned char DData)LCDPOS(X,Y);LCDWData(DData);/*显示实数(显示形式为XX.XXX)*/void LCDDspFloat(unsigned char X,unsigned char Y,float DData)unsigned char i,temp5=0,0,0,0,0;DData=DData/10;temp0=(int)DData;for(i=1;i5;i+)DData=(DData-tempi-1)*10;tempi=(char)DData;LCDPOS(X,Y);LCDWData(temp0+0x30);LCDWData(temp1+0x30);LCDWData(.);LCDWData(temp2+0x30);LCDWData(temp3+0x30);LCDWData(temp4+0x30);/*LCM初始化*/void LCDinit(void)DDRA|=0xf0;/PORTA&=(1LCM_RST);/_delay_ms(10);/PORTA|=(1LCM_RST);/上电复位LCDCmd(0x30);/基本指令集_delay_ms(10);/LCDCmd(0x34);/扩充指令集LCDCmd(0x0c);/脱离睡眠模式_delay_ms(10);LCDCmd(0x01);/待命模式_delay_ms(10);LCDCmd(0x06);/_delay_ms(10);/*写显示位置*/void LCDPOS(unsigned char X,unsigned char Y)unsigned char pos;if (X=1) X=0x80;else if (X=2) X=0x90;else if (X=3) X=0x88;else if (X=4) X=0x98;pos = X+Y;LCDCmd(pos);/*写数据*/void LCDWData(unsigned char WDLCM)unsigned char s0,s1,s2;_delay_us(100);s0=0xfa;s1=WDLCM&0xf0;s2=WDLCM&0x0f;s2=4;PORTA|=(1LCM_CS);LCDOut(s0,s1,s2);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论