Thread 中讨论的其他器件:controlSUITE
工具/软件:TI C/C++编译器
嗨、大家好
我将修改 Solar Explorer Devkit 中的 MPPT 代码。 我的计划是禁用 B1上的退出代码并使用模糊逻辑替换。 VpvRef_MPPT 将被模糊逻辑计算结果所取代。 在期间没有错误、我编译该程序、但我在 GUI 太阳能学习中仍然有问题。 面板 GUI 中无法启动/停止电源,显示面板 GUI (Vpv、Vboost、IPV 等)不符合值。
void B1 (void)// MPPT 执行
///--------------------------------
{
if (Run_MPPT=1)
{
mppt_pno1.ipv = IpvRead_EMAVG;//IpvRead;
mppt_pno1.Vpv = VpvRead_EMAVG;//VpvRead;
mppt_pno_macro (mppt_pno1);
mppt_incc1.deltaKp = mppt_pno1.delta_Kp;
// MPPT 例程
mppt_incc1.ipv = IpvRead_EMAVG;//IpvRead;
mppt_incc1.Vpv = VpvRead_EMAVG;//VpvRead;
mppt_incc_macro (mppt_incc1);
VpvRef_MPPT = mppt_incc1.VmppOut;
if (VpvRef_MPPT<_IQ24 (0.0))
{
VpvRef_MPPT=_iQ24 (0.0);
}
否则、IF (VpvRef_MPPT>_iQ24 (0.9))
{
VpvRef_MPPT=_iQ24 (0.9);
}
VpvRef=VpvRef_MPPT;
RUN_MPPT=0;
}
//MPPT 是一项缓慢任务、以下代码使能调制 MPPT 调用的速率
if (MPPT_SLEW=0)
{
if (MPPT_ENABLE=1)
{
RUN_MPPT=1;
mppt_incc1.mppt_enable=1;
}
MPPT_SLEW=0;
}
其他
MPPT_SLEW--;
//如果启用了 MPPT,则切换控制卡上的 LD2
if (MPPT_ENABLE=1)
{
if (LedBlinkCnt2=0)
{
GpioDataRegs.GPATOGGLE.bit.GPIO31 = 1;//打开/关闭 controlCARD 上的 LD2
LedBlinkCnt2=1;
}
其他
LedBlinkCnt2---;
}
//------
//下次 CpuTimer1 'counter'达到周期值时,转到 B2
B_Task_ptr =&b2;
//------
}