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.

[参考译文] TMS320F2.8069万F:几个问题。 自由转动,不同的制动策略

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/620579/tms320f28069f-few-questions-freewheeling-different-braking-strategies

部件号:TMS320F2.8069万F

您好,

我在这个论坛上已经读了很多,我在这里找到了我的问题的答案。 谢谢!  但现在我有一些自己的问题。

在我的应用中,我主要使用扭矩模式。 还有一个巡航控制系统。 为此,我想使用instaspine-in.-pi -控制器。

1.当我处于扭矩模式时,我想将速度限制在最大值.... 在达到最大速度时激活速度控制器是否是一个好的解决方案。 (或在达到最大速度之前的一位)。 是否有更好的方法限制扭矩模式下的速度?

2.当我在扭矩和速度控制器之间切换时,我假设我必须用实际速度输入速度控制器,用实际IQ输入速度控制器的输出,以便平稳过渡。  我对吗?  当我激活速度控制器时。 它是否与实际速度同步,或者在控制器的第一步中实际速度是否为零?

3.我知道如何进行再生制动。 但我也想用线圈的短饼干来制动。 如果我理解FOC正确,那么我在将IQ_ref 和ID_ref设置为零时会这样做吗?  我想我将处于7种可能的SVPWM模式的中间,其中输出模式为0,0,0,所有3个半桥接器都连接到地面?

4.这让我进入下一个问题。 当我将IQ设置为0.0 时,我的线圈会缩短,如何实现自由旋转?  我知道有续流功能。 但它在扭矩模式下也能工作吗? 续流如何工作?

5.我也想主动制动。 我想从蓄电池获得动力来进行制动。 当我将IQ_Ref设为负值时,电场将在磁场后面稍微旋转。 但这种情况最终会恢复。 我的想法是设置负ID和负IQ。 我认为这将产生一个与驾驶矢量有180°的“是矢量”。 这将产生一个“推”磁场而不是“拉”磁场(汽车)的电场。 我是否正确理解了这一点?  所以我将进行180°相移的驾驶。 这是否可行?这是否可以用于制动?

提前感谢! 我希望我的问题是明确的:)

此致

Sebastian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    抱歉,我忘记了一个问题。
    6.我尝试在运行电机时测量RS。 这是否可行? 似乎马达的运行不再顺畅。 当电机运行时,RS计算是否使用IQ_ref或是否将IQ设置为RsOnLineCurrent_A? 我想使用RS的测量值来计算电动机温度。 在运行电机时,这是否甚至可能?
    再次感谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Sebo -

    我可以帮助解决问题1和2:

    1)您可以限制gMotorVars.调制变量,以限制扭矩模式下的速度。 您是否使用过调制? 如果是这样,最大速度将是0.6666 (过度调制)或0.5 (无过度调制)的值。 您可以将此值设置得更低,它将限制最高速度,而无需使用速度控制器。

    2) 要从扭矩控制切换到速度控制,您需要使用扭矩控制器的当前输出来播种速度控制器的UI值。 要切换回扭矩模式,您需要使用速度控制器的当前输出播种IqRef_A。 我已编写代码来执行此操作:

    启用速度控制:

    _IQ SPD_ref_current = EST_getSpeed_Krpm (ctrlHandle->estHandle);
    gMotorVars.SpeedRef_Krpm = SPD_ref_current;
    
    _IQ IQ_ref_threshold = CTRL_ref_PU (ctrlHandle);
    _enable_setUi(ctrlIQ Handle->pidHandle_current)
    
    
    ;SPD_get_getralle_ps_stalletle_ps_scrle_scrle_stalletle_scrle_scrle_stalletle_scrle_scrle_stalletle_scrle_scrle_stalletle_scrle_scralle_scrlip_scralle_scrlip_scralle_stalletle_scralle_scal____
    
    
    

    禁用速度控制:

    如果(gMotorVars.Iq_A >0)
    {
    	gMotorVars.IqRef_A = gMotorVars.Iq_A;
    }
    其它
    {
    	gMotorVars.IqRef_A =0;
    }
    
    CTRL_setFlag_enableSpeedCtrl(ctrlHandle, false); 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,感谢您的回答。 :)我认为我刚刚为我的第一个问题找到了更好的解决方案。 这也是我第二个问题的解决办法。 我将以最大速度作为SpeedRef运行速度控制器。 用户输入将设置速度控制器的IQ输出限制。 当用户设置IQ_OUTPUT最大值时,他/她将控制扭矩,因为Speed-Reference (速度参考)设置为Maximum Speed (最大速度),PI输出将一直为高电流。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    我想我几乎是自己解决的。 但现在我有一些新问题:

    1.要确定的是:我唯一可能将所有绕组短接至接地的方法是激活将PWM输出设置为0 AM I对吗? 我能在主ISR中这样做吗?:

    //运行控制器
    Ctrl_run (ctrlHandle,halHandle,&gAdcData,&gPwmData);

    如果(Shortensh刹 车=true)//如果请求在windig上刹车,则将PWMdata设置为零

    gPwmData={_IQ (0.0),_IQ (0.0),_IQ (0.0)};
    }
    HAL_writePWMData (haltHandle,&gPwmData);
    //设置控制器
    Ctrl_setup (ctrlHandle);

    2.我想处理以下情况:电池组已满负荷,但用户想要制动。
    为了处理这个问题,我想主动制动。 我的意思是将电流推入线圈以进行制动。 我发现我可以通过使用角度来实现这一点。 当我设置IQ_ref_a=-4和ID_ref_a=-10时,控制器需要电源来制动。 负一点是逆变器变热,因为通过逆变器的电流约为10A。 电池电流约为1.2A。 只要我能转移热量,这不是问题,对吗? 如果我制动太硬,是否会损坏磁铁?
    我没见过有人像这样刹车? 但为什么呢? 是否危险?

    3.当我使用RSOnline时。 它是在运行电动机时进行测量,还是必须停止操作以便RsOnline功能可以将其1A用于在绕组内进行测量?

    提前感谢!!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1.您意味着3个高侧关闭,3个低侧打开。 如果是,您的代码不能如此正常工作,这是50 % 对所有方面的责任。 您必须编写代码以关闭所有3个高侧,然后使用PWM打开所有3个低侧,如下所示。
    //强制高侧关闭,低侧打开
    PWM_setActionQualContSWForce_PwmA(obj->pwmHandle[PWM_Number_1],PWM_ActionQualContSWForce_Clear);
    PWM_setActionQualContSWForce_PwmB(obj->pwmHandle[PWM_Number_1],PWM_ActionQualContSWForce_Set);

    PWM_setActionQualContSWForce_PwmA(obj->pwmHandle[PWM_Number_2],PWM_ActionQualContSWForce_Clear);
    PWM_setActionQualContSWForce_PwmB(obj->pwmHandle[PWM_Number_2],PWM_ActionQualContSWForce_Set);

    PWM_setActionQualContSWForce_PwmA(obj->pwmHandle[PWM_Number_3],PWM_ActionQualContSWForce_Clear);
    PWM_setActionQualContSWForce_PwmB(obj->pwmHandle[PWM_Number_3],PWM_ActionQualContSWForce_Set);

    2.有多种制动模式,再生制动器(增加相反的扭矩电流),硬件制动器(低压侧打开)。

    3. RsOnline支持在不停止电机的情况下计算电机定子电阻,启用此功能时,您需要在D轴上注入电流。