您的位置首页百科知识

求MPPT(太阳能最大功率点跟踪)扰动法算法的完整源程序,最好是基于avr编程的。

求MPPT(太阳能最大功率点跟踪)扰动法算法的完整源程序,最好是基于avr编程的。

的有关信息介绍如下:

求MPPT(太阳能最大功率点跟踪)扰动法算法的完整源程序,最好是基于avr编程的。

*关于频率和占空比的确定,对于6M晶振,假定PWM输出频率为1KHZ,;这样可以设定占空比可从(1-100)%变化,即0.01ms*100=1ms。周期用T1定时,输出高电平用T1定时。 * #include #define uchar unsigned char #define V_TH1 0XFE #define V_TL1 0X0C #define V_TMOD 0X11 void init_sys(void); /*系统初始化函数*/ unsigned char ZL,ZH; void main (void) { init_sys(); while(1) { Unsigned Int temp; int16 zkb=50; Temp =2^16-5*zkb;ZH = temp/256; ZL = temp%256;K(); } }void init_sys(void) /*系统初始化函数*/ { TMOD=V_TMOD; /*定时器初化*/ TH0=ZH; TL0=ZL; TH1 = V_TH1;TL1= V_TL1;TR1 = 1;ET1 = 1; ET0=1; /*允许T0中断 EA=1; /*CPU开中断} Void k(int16 vk,ik){ static int16 prek; pk=vk*ik;prek=0;vk=0;if(prvpk==pk){ return; }else{ if(pk>prepk) { prek=pk; if(vk>prevk){zkb++;prevk=vk;prepk=pk; }else{zkb--;prevk=vk;prepk=pk;} } else{ if(vk>prevk) {zkb++;prevk=vk;prepk=pk; } else{zkb--;prevk=vk;prepk=pk;} }}/*中断函数*/ void timer0(void) interrupt 1 { P2_2=! P2_2; TR0 = 0;}Void timer1(void) interrupt 2{TH1 = V_TH1; /*恢复定时器T0初始值*/TL1 = V_TL1;P2_2=! P2_2;TH0=ZH; /*恢复定时器T0初始值*/ TL0=ZL;TR0 = 1;}