您好、TI、
我尝试在 lab11e 中使用扭矩模式、我更改了以下两个变量:
bool gHall_Flag_CurrentCtrl = true;
gIdq_ref_pu.value[1]= IQ_Ref_pu;
但是、当我增加 gIdq_ref_pu.value[1]时、没有发生任何情况。
我认识到 gHall_PwmDuty 始终为零。
我在以下代码中找到了这一点:
if (gHall_Flag_CurrentCtrl = true) //扭矩控制模式
{
gHall_BLDC_IS _FDB_pu = gAdcData.I. Value[gHall_BLDC_Flag_is_FDB];
gHall_BLDC_IS _ref_pu = speed_pid_out;
// BLDC 电流环路
PID_run (pidHandle[3]、gHall_BLDC_IS _ref_pu、gHall_BLDC_IS FDB_pu、&gHall_PwmDuty);
HALLBLDC_Ctrl_PwmSet (gHall_PwmState、gHall_PwmDuty);
}
else //速度控制模式
{
gHall_PwmDuty = speed_pid_out;
HALLBLDC_Ctrl_PwmSet (gHall_PwmState、gHall_PwmDuty);
}
然后、我将 gHall_PwmDuty 放入扭矩控制中、如下所示:
if (gHall_Flag_CurrentCtrl = true) //扭矩控制模式
{
gHall_BLDC_IS _FDB_pu = gAdcData.I. Value[gHall_BLDC_Flag_is_FDB];
gHall_BLDC_IS _ref_pu = speed_pid_out;
// BLDC 电流环路
PID_run (pidHandle[3]、gHall_BLDC_IS _ref_pu、gHall_BLDC_IS FDB_pu、&gHall_PwmDuty);
gHall_PwmDuty = IQ_Ref_pu;
HALLBLDC_Ctrl_PwmSet (gHall_PwmState、gHall_PwmDuty);
}
else //速度控制模式
{
gHall_PwmDuty = speed_pid_out;
HALLBLDC_Ctrl_PwmSet (gHall_PwmState、gHall_PwmDuty);
}
在这一变化之后,电机开始运转,但它只能以非常低的速度平稳运行,在更高的速度下,它开始振荡和声音严重,我认为它不会变快。
我想我在代码中做了一些错误、因为电流控制在其他实验中工作、而 lab11e 的速度模式也工作。
我不确定要使用扭矩模式必须更改什么。 请帮助。
出于好奇、如果我想在 lab5a 或10a 中添加霍尔启动、这会很容易吗?
因为我在 mainISR 中看到了一些差异,我不知道如何处理它。
提前感谢