This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

HV_Solar_DC_DC_MPPT当中的几个问题



想要请问HV_Solar_DC_DC_MPPT当中的几个问题

1.

依照说明手册UG_HV_SOLAR_DC_DC_Rev1操作,在BUILD 3 情况下,要启动

 

MPPT,需要将下面这行CODE 忽略,对吧?

 

Start_DC_DC=1;//Start DC-DC MPPT provided LLC PWM is ON(This is checked in the 20kHz SECONDARY ISR)

 

但是我从CCS当中却无法改变 Start_DC_DC  还有 inverter_connected

 

是因为我的电源供应没有使用PV panel emulator power而是使用DC power

 

supply 的关系吗?

 

2.

BUILD 3 的两个CNTL_2P2Z (电压控制器和电流控制器),它们的功能分别是什

 

么?怎么电压控制器的输出会是Boost_IL_cmd?电流控制器的输出是DutyA?

 

如果我想要抓取一开始输入电压控制器的Vp_fb经过电压控制器和电流控制器

 

之后的讯号,要怎么去做

问题叙述的不知道够不够详细

恳请各位帮忙解惑,感谢

  • Wang zhe,

            问题1 “但是我从CCS当中却无法改变 Start_DC_DC  还有 inverter_connected ” 你指的是没办法在CCS的expression观察窗改变这个值吗,我认为这跟有没有接PV pannel和inverter没有关系。通过CCS的watch window来修改这些变量值的时候,要注意你是在什么时候修改的,比如你在程序刚加载跑到mian时就修改,那你要注意该变量值不要在初始化的时候被再次修改。最好你把为什么不能在watch window修改的情况描述一下。当然,你可以在源代码查找这两个变量,然后在源代码中去修改它。

             问题2, 电压外环,电流内环的控制方法会使电流可控,让系统更加稳定。当然也可以用一个电压环来控制就可以了,只不过控制效果没那么好。你要抓取之后的控制信号,可以通过查看变量,使用实时仿真模式。

    Eric

  •       问题1,是的,我是在expression观察窗修改数值。下面是main当中BUILD 3的程序代码 ,在程序代码里面的确有将变量初始化的动作,但是我依照说明手册进入 real time mode 以及按下 Continuous Refresh buttons,此时Start_DC_DC = 0 ,inverter_connected = 1,这样子就应该是已经完成初始化动作了,对吗? 当我在expression观察窗修改Start_DC_DC  还有 inverter_connected ,发现 inverter_connected可以改变成0,但是Start_DC_DC却是无法改变,始终维持在0。

     

     

    #if (INCR_BUILD == 3) // Closed Current Loop & closed input volt loop dc-dc boost(Panel Volt Output,

                            // or, DC-DC Boost Volt Input)

    //----------------------------------------------------------------------

         {

    前面程序代码忽略

        

       

        Start_DC_DC = 0;

       

        inverter_connected = 1; //Default setting is 1, implying that inverter is connected.

        inverter_mode = 0;//Used for showing EVM status (whether the inverter is connected or not)

     

    后面程序代码忽略

      }

     

     

    void A3(void)

    //-----------------------------------------------------------------

    {   

         if(INCR_BUILD == 3)

         {

             //When the DC-DC runs without the Inverter, check for min panel voltage before starting MPPT DC-DC.

             //When DC-DC Runs with the Inverter connected, this flag (Start_DC_DC) is not used. Another GPIO (GPIO16)

             //enable signal is then used (activated by the Inverter) to start the DC-DC.

             if(Vp_fb_Avg >= VPV_MIN)

             {

                 

                  Start_DC_DC=1;//Start DC-DC MPPT provided LLC PWM is ON(This is checked in the 20kHz SECONDARY ISR)

                 

                  //***********************************************************************************

                  //To control the variable "Start_DC_DC" from CCS watch window and run the DC-DC code with external 12V bias (not using PR798 bias supply)

                  //COMMENT OUT the line above. This will allow code to run with MPPT off; Then the user will apply panel volt and start MPPT

                  //from CCS watch window by setting Start_DC_DC = 1

                  //************************************************************************************

             }

             else

             {

                  Start_DC_DC = 0;//Do not start DC-DC MPPT

             }

        

             //if(GpioDataRegs.GPADAT.bit.GPIO16 == 0)

             if(GPIO_status == 0)

             {

                  A_Task_Ptr = &A4;//Go to State A4 to turn ON MPPT

             }

             else

             {

             //-------------------

             //the next time CpuTimer0 'counter' reaches Period value go to A1

             A_Task_Ptr = &A1;

             //-------------------

             }

        

         }

        

         A_Task_Ptr = &A4;

    }

     

        问题2,所以电压控制器和电流控制器的控制方法是让系统更稳定。那么电压控制器的输出一定是Boost_IL_cmd?电流控制器的输出一定是DutyA? 还是因为设计者设定好的,我可以修改电流控制器输出讯号是其他讯号?

        “你要抓取之后的控制信号,可以通过查看变量,使用实时仿真模式。”还是说其实我不用修改电流控制器输出讯号,只要通过查看变量就可以得到?

     

        问题3,事实上我的HV_Solar_DC_DC电路板烧坏了,起初我因为不懂程序代码,所以更改了上面提及的A3之中的VPV_MIN值,想说可以改变此

    if(Vp_fb_Avg >= VPV_MIN)判断式,让判断式可以更容易通过而使Start_DC_DC=1。

     

    #define VPV_FULL_RANGE (512.0) //PV panel voltage that generates 3.3V at ADC input

    #define VPV_MIN ((int32)((180.0/VPV_FULL_RANGE)*4096*4096)) //Min PV Panel volt to start MPPT

     

        我修改了VPV_FULL_RANGE (512.0),然后LLC端的MOSFET就烧坏了,替换新的MOSFET还是一样有短路现象,所以我怀疑是肖特基二极管及整流器出问题?

     

    http://tw.mouser.com/ProductDetail/NXP-Semiconductors/PMEG4005AEA115/?qs=LOCUfHb8d9u3HL3uEP12jA==

     

        我用电表量测得到顺向电压降只有0.143 V,这似乎不是个正常的数值?还是说会有其他组件损坏呢?

     

    感谢回复问题

     

    neil

  • Neil,

            从你贴的代码上看,start_DC_DC应该是由于下面的判断给限制了。

     else

             {

                  Start_DC_DC = 0;//Do not start DC-DC MPPT

             }

    //***********************************************************************************

                  //To control the variable "Start_DC_DC" from CCS watch window and run the DC-DC code with external 12V bias (not using PR798 bias supply)

                  //COMMENT OUT the line above. This will allow code to run with MPPT off; Then the user will apply panel volt and start MPPT

                  //from CCS watch window by setting Start_DC_DC = 1

                  //************************************************************************************

    这上面的注释说把前面的语句注释掉,然后通过CCS观察窗手动打开Start_DC_DC ,所以我觉得你只要提供一个DC电压大于 VPV_MIN即可。我没仔细看整个代码,但是从你修改VPV_MIN导致MOSFET烧掉,你可以查看这个VPV_MIN跟LLC占空比的关系。

            关于电压环电流环,常规的控制算法都是电压外环,电流内环,所以电压环输出是电流环的指令值。那么电流环的输出我们是用来控制开关管的开通关断,如果不为占空比,不知你希望控制什么信号,因为最终控制的还是占空比,你即使用其他信号,不外乎是修改相关参数,最后体现出来的还是占空比。如果你想查看环路中的控制信号,实时查看变量是一种方法。

    Eric

     

  • Hi , Eric

    感谢你热心回答问题

    我会详细检查你提到的地方

     

    再次感谢

    如果还有问题会另外整理,发问

    还请你多多帮助了

  • 请问楼主你的LLC侧的MOSFET管短路的问题是怎么解决的,我也遇到了这个问题,mos管莫名其妙的给烧了。