µ±Ç°Î»ÖãºÊ×Ò³ > ǶÈëʽÅàѵ > ǶÈëʽѧϰ > ½²Ê¦²©ÎÄ > MPPT¹¤×÷Á÷³Ì¼°Ëã·¨ºÍÓ²¼þµÄÑ¡Ôñ
ÔÚ¹â·ü¿ØÖÆÏµÍ³ÖУ¬ÒòΪÈÕÕÕ¡¢Î¶ȵÈÌõ¼þµÄ±ä»¯£¬¹â·üµç³ØµÄÊä³ö¹¦ÂÊÒ²ÊÇÔÚ²»¶Ï±ä»¯µÄ£¬Îª±£Ö¤Ê¹µÃ¹â·üµç³ØµÄÊä³ö¹¦Âʱ£³ÖÔÚ×î´óµã£¬ÐèÒªµ÷Õû¹â·üµç³ØÊä³öµçѹ(ÈÕÕÕÇ¿¶È·¢Éú±ä»¯Ê±£¬¶Ì·µçÁ÷±ä»¯´ó£¬¿ªÂ·µçѹÊÜÓ°ÏìС;»·¾³Î¶ȷ¢Éú±ä»¯Ê±£¬¶Ì·µçÁ÷ÊÜÓ°ÏìС£¬¿ªÂ·µçѹ±ä»¯´ó)¡£ÁíÍ⣬¹â·üµç³ØµÄÊä³öµçѹºÍµçÁ÷Ò²ºÍ¸ºÔØÓкܴó¹ØÏµ£¬¸ºÔØ´ó£¬Êä³öµçѹ´ó£¬Êä³öµçÁ÷С;¸ºÔØÐ¡£¬Êä³öµçѹС£¬Êä³öµçÁ÷´ó¡£¹â·üµç³ØµÄMPPÖеĵçѹÊÇÖ¸¹â·üµç³ØµÄÊä³öµçѹ¡£
MPPTË㷨ѡÔñ
Ŀǰ£¬MPPTËã·¨ÓпªÂ·µçѹ±ÈÂÊ(ÀëÏß)¡¢¶Ì·µçÁ÷±ÈÂÊ(ÀëÏß)¡¢¹Û²ìµ÷½Ú(ÔÚÏß)¡¢¼«ÏÞ×·×Ù¿ØÖÆ·¨(ÔÚÏß)¡£
¿ªÂ·µçѹ±ÈÂÊ·¨——Õâ¿ÉÒÔ˵ÊǷdz£¾µäÒ²Ï൱¹ÅÀϵķ½·¨ÁË£¬ÓÖÃû“¹Ì¶¨µçѹ·¨”¡£¼òµ¥À´Ëµ£¬Ëã·¨»ùÓÚ×î´ó¹¦ÂʵçѹºÍ¿ªÂ·µçѹµÄÏßÐÔ¹ØÏµÊ½ £¬ÏµÊý ȡֵÓÉÉè¼ÆÊ¦¾ö¶¨£¬Ò»°ã½éÓÚ0.71µ½0.78Ö®¼ä£¬´ó¶àÊýÉ趨Ϊ0.76¡£MPPTÔÚ×·×Ùʱ£¬Ê×ÏÈ¿ªÂ·DC¶ËÀ´²âÁ¿¿ªÂ·µçѹ£¬È»ºóͨ¹ýËã·¨À´¼ÆËã×î´ó¹¦Âʵçѹ²¢ÇÒ¶¨Î»×î´ó¹¦Âʵ㡣MPPT»á±£³ÖÔڸù¦ÂʵãÒ»¶Îʱ¼ä£¬È»ºóÖØ¸´¿ªÂ·²âËã²¢ÇÒÖØÐ¶¨Î»¡£¹Ì¶¨µçѹ·¨µÄ×î´óÓŵã¾ÍÊÇÖÆ×÷±ãÒ˲¢ÇÒÓ¦Óüòµ¥¡£Ïà·´£¬È±µãҲʮ·ÖÃ÷ÏÔ£º¾«È·ÖµºÍ×·×ÙЧÂʽϵ͡£¾¡¹Ü¹Ì¶¨µçѹ·¨±»³ÆÖ®Îª“×·×Ù”Ëã·¨£¬ÊÂʵÉÏËüÒÀÈ»ÊÇÔÚÕû¸ö¹¤×÷Ñ»·ÖеÄÒ»¸ö¼ÆËãÉ趨ֵ¶ø·Ç¼´Ê±×·×ÙÖµ¡£Æä´Î£¬´Ë·½·¨ÍêÈ«ÇÒµ¥´¿ÒÀÀµÓÚ×é´®µÄ¿ªÂ·µçѹֵ¶ø·ÅÆúÁ˶ÔÓÚ¹¤×÷µçÁ÷µÄ×·×Ù¡£µ±¾Ö²¿ÒõÓ°³öÏÖÔÚÕóÁÐʱ£¬Êµ¼Ê×î´ó¹¦ÂʵãºÍMPPTÉ趨¹¦Âʵã¾Í»á³öÏÖÏ൱´óµÄÆ«²î£¬Æ«²î·¶Î§È¡¾öÓÚÒõÓ°Õڸdz̶ȡ£×îºó£¬Ã¿´Î»úÆ÷½øÐпªÂ·µçѹ²âÁ¿Ê±£¬Ì«ÑôÄÜϵͳÊÇÎÞ·¨Êä³ö¹¦Âʵģ¬Ëæ×Åʱ¼äºÍ´ÎÊýÀۼƴËËã·¨»áÔì³ÉÒ»¶¨Á¿µÄÄÜÁ¿Á÷ʧ¡£×ÜÌåÀ´Ëµ£¬²îÆÀ¡£
¶Ì·µçÁ÷±ÈÂÊ·¨——ºÍ¹Ì¶¨µçѹ·¨µÄËã·¨ÏàËÆ£¬¿ÉÒÔ±íÊöΪ £¬ ÊÇÒ»¸ö±äÁ¿ÏµÊý£¬Í¨³£±ä»¯·¶Î§ÔÚ0.78ÖÁ0.92¡£ºÍ¹Ì¶¨µçѹ·¨²»Í¬µÄÊÇ£¬¶Ì·µçÁ÷±ÈÂÊ·¨ÒªÇóÔÚת»»Æ÷ÄÚÖÃÒ»¸ö¸ßƵ¿ª¹ØÀ´²âÁ¿¶Ì·µçÁ÷¡£±È½ÏÍÆ¼öµÄÊÇÔÚ×é´®ºÍDC linkµÄµçÈÝÖ®¼ä°²×°Ò»¸öFET(field-effect transistor)¡£ÓÉÓÚµçÁ÷Êܵ½¹âÕÕÇ¿¶ÈµÄÓ°Ïì·Ç³£´ó£¬Í¨³£»úÆ÷»¹ÐèÒªÒ»¸öDSP(digital signal processor)À´±£Ö¤IVÇúÏßµÄȫɨÃèºÍÊý¾ÝµÄ׼ȷ¶È¡£ÕâÒ²ÈöÌ·µçÁ÷±ÈÂÊ·¨Éè¼Æ¸ü¼Ó¸´ÔÓÇÒÄÑÒÔÓ¦ÓᣲîÆÀ¡£
¹Û²ìµ÷½Ú·¨——Õ¾ÔÚ¾ÞÈ˼çÍ··¢Õ¹³öÀ´µÄËã·¨Äã¸Ò²»·þ?Ŀǰ£¬P&OÒÀȻӦÓÃÔÚÊÀ½ç¸÷´óÖ÷Á÷µÄÄæ±äÆ÷ÖÐÒ²ÊÇ×î¹ã·ºµÄ±»Ó¦ÓõÄËã·¨£¬Ã»ÓÐÖ®Ò»¡£Ïà±ÈÓÚESC£¬P&O¿ÉÒÔÔÚ¸ü¶ÌµÄʱ¼äÄÚ×·×Ùʱ´¥Åö¸ü´óµÄÇøÓò£¬É¨Ãè¸ü¶àµØÊý¾Ý¡£Õâ½øÒ»²½Ìá¸ßÁËP&OµÄ×·×ÙЧÂʺÍ׼ȷÂÊ¡£ÓÉÓÚËüÔÚ¶Ìʱ¼äÄÚ¿ÉÒÔ´¦Àí´óÁ¿µÄÊý¾Ý£¬ÕâÒ²Ò»¶¨³Ì¶ÈµÖÖÆÁËÍ»±ä¹âÕÕÇ¿¶È¶ÔÓÚ×·×Ù¾«È·¶ÈµÄÓ°Ï졣ȱµãµÄ»°£¬ÓÉÓÚËüɨÃèµÄ·¶Î§½Ï´ó£¬»áÒ»¶¨³Ì¶ÈµÄµ¼ÖÂÊä³ö¹¦ÂÊȱ·¦Îȶ¨ÐÔ£¬µ«ÊǶ¶¶¯³Ì¶È»ù±¾¶¼ÔÚ±4%ÒÔÄÚ¡£ËùÒÔÎÒ»¹Òª¸øËü32¸öÔÞ!P&O»¹ÓÐÒ»¸ö½ãÃð汾£¬»¹ÊÇ“ÅÀɽ”Âß¼£¬µ«ÊDz¢ÈëÁË“ÊÔ´í”·¨(trial and error)¡£´¦ÀíÆ÷»á¸ù¾ÝÏÂÒ»¿Ì×·×ÙµãµÄÒÆ¶¯Ç÷ÊÆ£¬±È½Ï¹¦ÂʵÄÕýÔöÁ¿»ò¸ºÔöÁ¿¡£Èç¹û¹¦ÂʳÖÐøÔö¼Ó£¬´¦ÀíÆ÷½«»á¼ÌÐøÍ¬·½ÏòÒÆ¶¯×·×ٵ㣬²»Í£±È½ÏÖ±µ½¹¦ÂÊ´ïµ½·åÖµ¡£
¼«ÏÞ×·×Ù¿ØÖÆ·¨——¸ÃËã·¨µÚÒ»´ÎÌá³öÔÚ19ÊÀ¼Í20Äê´ú£¬Ò²ÊÇĿǰȫÇò×îÁ÷Ðеē¹Û²âµ÷½Ú·¨”(Perturb and Observe)µÄǰÉí¡£Ëã·¨µÄ´´ÐµãÊÇÒýÈëÁËÏòÁ¿ÔÚP-VÇúÏßÖС£´¦ÀíÆ÷¸ù¾ÝµçѹµÄÔöÁ¿»ò¼õÁ¿À´±È½Ï¶ÔÓ¦µÄ¹¦ÂÊÔö¼õÁ¿£¬½ø¶øÈ·¶¨×·×Ù¹¦ÂʵãµÄÒÆ¶¯·½Ïò¡£¾ßÌåÅж¨·½·¨Çë²ÎÕÕͼ¶þ£¬Ò»Ä¿ÁËÈ»¡£
ESCËã·¨µÄ¾Þ´ó³É¹¦ÊÇÏà±ÈÓÚ֮ǰµÄ¹Ì¶¨µçѹ·¨,ͨ¹ý½¥½øÏòÁ¿ÒýÈëÁË“ÅÀɽ·¨”µÄ¸ÅÄ½ø¶ø¿ªÆôÁ˶¯Ì¬×·×ÙµÄËã·¨¡£ESC¼«´óµØÍØ¿íÁËMPPT¶ÔÓÚDC¶ËÊäÈëÄÜÁ¿µÄ²¶×½£¬ÏÔÖøµØÌá¸ßÁË×·×ÙЧÂÊ¡£ÓÉÓÚESC¶ÔÓÚºó´úMPPTËã·¨µÄÓ°ÏìÉîÔ¶£¬µ¼ÖÂËüµÄ¶Ì°åÒ²Ò»²¢±»¼Ì³ÐÏÂÀ´²¢ÖÁ½ñ“»öº¦”ÖÚ¶àÒ»Ï߯·ÅƵÄÄæ±äÆ÷¡£ESC¶ÔÓÚ¶¸È»±ä»¯µÄ¹âÕÕ·´Ó¦Ç¿ÁÒ£¬¾Ù¸öͨË×Àý×Ó£¬MPPTÕýרעµÄ±È½Ï׏¦Âʺ͵çѹµÄ±äÁ¿£¬“àÅ£¬ÕýÏòÒÆ¶¯µÄµçѹͬ²½°éËæ×Ź¦ÂʵÄÔö¼Ó£¬Ã÷ÏÔ×î´ó¹¦Âʵ㻹ÔÚÕýÏò(ÓÒ±ß)£¬ÄÇÎÒ¼ÌÐøÏòÓÒÒÆ¶¯”¡£´ËÊ±ÔÆ²ãµ²×¡ÁËÑô¹â£¬ÉÔÉÔÓ°ÏìÁËÊäÈëµÄÖ±Á÷¹¦ÂÊ£¬Ê¹Ö®ÂÔ΢Ͻµ£¬“Âý×Å!ÕýÏòÒÆ¶¯µÄµçѹ¾¹È»µ¼Ö¹¦ÂʼõСÁË!Îҿ϶¨´í¹ýÁË×î´ó¹¦Âʵ㣬¿ìµôÍ·!”ÓÚÊÇ£¬×·×Ùµã¾ÍÀëËüµÄ¹éËÞÔ½À´Ô½Ô¶µÄµØ·½Æ®È¥¡£¡£¡£ÎÒÔÚʵÑéÊÒÄ£Äâ²âÊÔʱ£¬Ç×ÑÛ¿´µ½×î¶à´ïµ½70%×óÓ񵀮«²î¡£»ùÓÚESCÕâÖÖÒ»¼¶(first stage)×·×ÙµÄÉè¼ÆÀíÄÕâÖÖÏÖÏó£¬Î޽⡣µ«ÊÇÐÀÉÍËü¶ÔºóÊÀµÄÕýÃæÓ°ÏìÒÔ¼°ÀíÄУ¬»¹ÊÇºÃÆÀ!
×ۺϿ¼ÂÇ£¬MPPTµÄËã·¨²ÉÓü«ÏÞ×·×Ù¿ØÖÆ·¨À´½øÐÐÈí¼þʵÏÖ£¬¼´²É¼¯PN²àµçѹ¡¢Á÷ÏòPN²àµÄµçÁ÷Êý¾Ý£¬¼ÆËã ¡¢ ºÍ £¬ÅÐ¶Ï Óë µÄ¹ØÏµ£¬ ´óÓÚ £¬´ËʱӦ°´ ¼õСPN²àµÄÄ¿±êµçѹ;Èô СÓÚ £¬´ËʱӦ°´ Ôö¼ÓPN²àµÄÄ¿±êµçѹ¡£
MPPTÓ²¼þÑ¡Ôñ
MPPTµÄʵÏÖÊÇͨ¹ýµ÷½Ú¹â·üµç³ØÊä³öµçѹÀ´ÊµÏֵģ¬Èô¹â·üµç³ØÊä³öµçѹֱ½ÓÁ¬½Óµ½DC/ACµÄPN²à£¬ÄÇô¹â·üµç³ØÊä³öµçѹ²¨¶¯¾Í»áÖ±½ÓÓ°ÏìPN²àµçѹ£¬×îºÃÊÇÔÚ¹â·üµç³ØºÍDC/ACÖ®¼ä¼ÓÒ»¸öÖм价½Ú£¬Í¨¹ýÕâ¸öÖм价½ÚÀ´µ÷ÕûÊäÈëµçѹ£¬±£³ÖÊä³öµçѹÎȶ¨£¬Ôö¼Ó»ò¼õСÊä³öµçÁ÷¡£Õâ¸ö¹¦ÄÜÒ»°ãÓÐBUCK¡¢BOOST¡¢BUCK-BOOST¡¢CUKµç·ºÍ¿ª¹Øµç·¿ÉÒÔÑ¡Ôñ£¬µ«BUCKµç·ÊÇÁ¬ÐøÏò¸ºÔع©µç¡¢¼ä½Ó´ÓµçÔ´È¡µç;BOOSTµç·ʱ¼ä½ÓÏò¸ºÔع©µç¡¢Á¬Ðø´ÓµçÔ´È¡µç£¬Îª±£Ö¤¹â·üµç³Ø°åµÄ·¢µçЧÂʵõ½½ÏºÃʹÓã¬Ò»°ãÑ¡ÔñBOOSTµç·À´ÊµÏÖMPPT¡£
Ñ¡ÔñBOOSTµç·À´ÊµÏÖMPPTËã·¨£¬Æä½á¹¹ÍØÆËÈçÏÂͼ¡£
¿¼Âdzɱ¾ÎÊÌ⣬ÔÙ¼ÓÉϹâ·üµç³ØÊä³öµÄËùÓÐ×î´ó¹¦Âʵã¶ÔÓ¦µÄÊä³öµçѹ²î±ð²»ÊǺܴó£¬MPPT²»Ê¹ÓÃDC/DCµç·À´ÊµÏÖ£¬ÔÚÏÖÓеÄDC/ACƽ̨ÉϽøÐÐʵÏÖ¡£
MPPT³ÌÐòʵÏÖ
±äÁ÷Æ÷µÄ¹¤×÷Á÷³ÌΪ£º
Æô¶¯——Ô¤³äµç——PN²à̧ѹ——½ÓÈë¹â·üµç³Ø——Êä³ö(MPPT)¡£
¿ÉÒÔÈ·¶¨£¬MPPTµÄ×÷ÓÃÊÇÔÚµçѹ»·ÉÏ×÷Ó㬲¢ÇÒÊÇÔÚ±äÁ÷Æ÷½øÈ빤×÷״̬ºó¿ªÊ¼¹¤×÷¡£
²ÉÓÃÏÖÓеÄDC/ACƽ̨À´ÊµÏÖMPPT£¬´æÔÚÁ½¸öÎÊÌ⣺¿ØÖƲ½³¤(ʱ¼ä¼ä¸ô)ÎÊÌâ¡¢ÈŶ¯²½³¤ ÎÊÌâ¡¢ÅжϾ«¶ÈÎÊÌâ¡£
¿ØÖƲ½³¤ÎÊÌâ——PN²àµçѹÔÚMPPT¹ý³ÌÖлá²úÉúÒ»¶¨µÄ²¨¶¯£¬µ«ÒòΪ¶ÔÓÚ¹â·üµç³ØÀ´Ëµ(½áºÏÏÂÃæÁ½Í¼)£¬Æä×î´ó¹¦Âʵã¶ÔÓ¦µÄµçѹ´óÖ¶¼ÔÚÒ»¸ö²»´óµÄ·¶Î§ÄÚ£¬²¢ÇÒ¶¼½Ó½ü¿ªÂ·µçѹ£¬ËùÒÔ£¬¶ÔÓÚÔÚDC/ACÉÏʵÏÖMPPT£¬Òª¿¼ÂǶ೤ʱ¼ä¶ÔPN²àÄ¿±êµçѹ½øÐÐÒ»´Î¸üС£Ä¿Ç°State Manageº¯ÊýÊÇ0.1ms½øÈëÒ»´Î£¬¿ÉÒÔ¿¼ÂÇMPPTµÄ¿ØÖƲ½³¤Îª0.2~0.5ms£¬²½³¤Ôݶ¨Îª0.3ms¡£
Ïàͬ¹âÕÕ¡¢²»Í¬Î¶È
Ïàͬζȣ¬²»Í¬¹âÕÕ
ÈŶ¯²½³¤ÎÊÌâ——¿¼ÂÇÔÚ±äÁ÷Æ÷½øÈ빤×÷״̬ºó£¬ÆäPN²àµçѹΪ½ÏÎȶ¨µÄÖµ£¬¼´Ê¹¹âÕÕÇ¿¶È¡¢»·¾³Î¶ȷ¢Éú±ä»¯£¬¹â·üµç³ØµÄ×î´ó¹¦ÂʵãµçѹµÄ±ä¶¯·¶Î§²»»áºÜ´ó¡£¸ù¾ÝÆä²É¼¯»ØÀ´µÄPN²àµçѹºÍ¹â·üµç³ØÊä³öµçÁ÷£¬²¢¼ÆËãºÍǰһʱ¿ÌµÄ¹¦ÂʲîÖµ £¬¸ù¾Ýµçµ¼ÔöÁ¿·¨½øÐÐÅжϣ¬È»ºóÔÚÄ¿±ê¸ú×ÙµçѹÉÏÔö¼Ó»ò¼õСһ¶¨µÄ²½³¤ ¡£ÒòΪÔÚ¹â·üµç³Ø¿ªÊ¼¹¤×÷ºó£¬PN²àµçѹ²»ÊÇ´Ó0¿ªÊ¼µÄ£¬¶øÊÇÔÚ¹â·üµç³Ø×î´ó¹¦Âʵã¶ÔÓ¦µçѹ¸½½ü£¬ËùÒÔ µÄÖµ»á±È½ÏС£¬KÖµµÄÉèÖÃͨ¹ýµ÷ÊÔ³ÌÐò»ñµÃ£¬KÔݶ¨Îª5¡£
ÅжϾ«¶ÈÎÊÌâ——Óɵ¼ÄÉ·¨µÄ¹¤×÷Á÷³Ìͼ(ÏÂͼ)¿ÉÒÔÖªµÀ£¬ÔÚÁ÷³ÌÖдæÔÚ ¡¢ Óë0µÄ¹ØÏµµÄÅжϣ¬³ÌÐòÖÐ×ÜÊÇ»á´æÔÚÎó²î£¬²¢ÇÒ¼ì²âÖÐÒ²»á´æÔÚ£¬Èç¹ûÒÔ0ΪÅжÏ×¼Öµ£¬¿¼ÂÇʵ¼ÊÓ¦ÓÃÖеÄÎó²îÒòËØ£¬ÓÃÒ»¸öСµÄ·§ÖµÀ´Ìæ´ú0¡£·§ÖµÔݶ¨Îª0.1VºÍ0.1A¡£
MPPTËã·¨C³ÌÐòʵÏÖ
#include "16F877.h"
#device ADC = 8 // Ò»¸ö8λ¼Ä´æÆ÷ADCģʽ
#fuses HS, NOWDT, PUT, NOPROTECT, BROWNOUT, NODEBUG, NOLVP // High-Speed 20MHz, No Watchdog, No Protection, Brownout Protection,
#use delay(clock=20000000) // 20MHz Crystal
//int is defined as 8-bit unsigned integer using CCS compiler
void main (void)
{
signed int direction;
int delta;
int pwm;
int upperbound;
int lowerbound;
float power;
float powerold;
float voltage;
float voltagedrop;
float voltagedifference;
float currentma;
float measuredvoltage;
float measuredvoltagedrop;
direction = 1; // Set initial direction to positive
delta = 1; // Amount by which to adjust the PWM - 7-bit resolution so duty step of 2%
pwm = 26; // Initial position of the PWM - 50% Duty Cycle with 7-bit resolution.
upperbound = 49; // Upper bound of the PWM %
lowerbound = 1; // Lower bound of the PWM %
power = 0; // Initial Value of Power
setup_adc(ADC_CLOCK_DIV_32); // ADC clock
setup_adc_ports(ALL_ANALOG); // Set all inputs to analog
output_low(PIN_C1); // Set CCP1 output low
setup_ccp1(ccp_pwm); // setup pin CCP1 (RC2) to do PWM
setup_timer_2(T2_DIV_BY_1,12,1); // 384.615kHz
while (1)
{
//delay_ms(1000) // Wait 1 Second
set_adc_channel(0); // Select RA0
//delay_ms(20); // Wait to Read ADC
measuredvoltage = read_adc(); // Read the voltage input from ADC channel 0
set_adc_channel(1); // Select RA1
//delay_ms(20); // Wait to Read ADC
measuredvoltagedrop = read_adc(); // Read the Voltage dropped across the R from ADC channel 1
voltage = measuredvoltage/51; // Measured Voltage is 51 steps per Volt at a Reference Voltage of 5V
voltagedrop = measuredvoltagedrop/51;
voltagedifference = voltage - voltagedrop;
currentma = voltagedifference; // Calculating Current using 1K Resistance
powerold = power; // Calculate the Power from the inputs
power = voltage * currentma;
pwm = pwm + direction*delta; // Adjust Pulse Width Modulation Value by Delta value
if (power < powerold) // If at top of curve, change direction
{
direction = -direction;
continue;
}
if (pwm > upperbound) // If at maximum PWM, Stop here
{
pwm = upperbound;
continue;
}
if (pwm < lowerbound) // If at mi
nimum PWM, Stop here
{
pwm = lowerbound;
continue;
}
set_pwm1_duty(pwm); // Set PWM Mark-Space Radio to approx 50%
}
}