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.

[参考译文] BOOSTXL-DRV8305EVM:BLDC FOC。 始终保持抖动速度

Guru**** 2530760 points
Other Parts Discussed in Thread: DRV8305, MOTORWARE

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1542564/boostxl-drv8305evm-bldc-foc-always-jittering-speed

器件型号:BOOSTXL-DRV8305EVM
Thread 中讨论的其他器件:DRV8305MOTORWARE

工具/软件:

您好:

我正在尝试为 36V BLDC 电机实现 FOC。 但我无法达到稳定的速度。 因此、我尝试使用开环(无负载)来查看速度是否稳定。 但速度仍然抖动。

	 theta_elec += 0.000628; //Increase angle every ISR loop (10kHz)

	 theta_elec = fmodf(theta_elec, 2.0f * 3.14159265359f);
	 if (theta_elec < 0.0f) {
	     theta_elec += 2.0f * 3.14159265359f;
	 } // reset angle when it exceeds 2pi

	vd = 0;
	vq = 0.5; //Open loop constant voltage vectors


    sin_theta = sinf(theta_elec);
    cos_theta = cosf(theta_elec);


	v_alpha = vd * cos_theta - vq * sin_theta;
	v_beta  = vd * sin_theta + vq * cos_theta;


	Va = v_alpha;
	Vb = -0.5f * v_alpha + 0.866f * v_beta;
	Vc = -0.5f * v_alpha - 0.866f * v_beta;


	Va = 0.5f + Va / 36; // Just some normalization of the voltages
	Vb = 0.5f + Vb / 36;
	Vc = 0.5f + Vc / 36;

	Va = 1.0f - Va; // Need to invert them, because I have center aligned PWM (count up then down)
	Vb = 1.0f - Vb; // So duty cycle is 0% when CMPA is TBPRD and 100% when CMPA is 0
	Vc = 1.0f - Vc;

	Va = fminf(fmaxf(Va, 0.0f), 1.0f); // make sure its within [0,1]
	Vb = fminf(fmaxf(Vb, 0.0f), 1.0f);
	Vc = fminf(fmaxf(Vc, 0.0f), 1.0f);

	v_offset = (Va + Vb + Vc) / 3.0f; // Just checking that my 3-phase is balanced

	EPwm1Regs.CMPA.half.CMPA = Va * EPWM1_TIMER_TBPRD; // Apply duty
	EPwm2Regs.CMPA.half.CMPA = Vb * EPWM2_TIMER_TBPRD;
	EPwm3Regs.CMPA.half.CMPA = Vc * EPWM3_TIMER_TBPRD;


电机确实会达到稳定的速度、但会抖动。 我只是不明白什么可能会导致抖动。  

对于编码器、我使用 AMT102-V、 https://www.sameskydevices.com/product/resource/amt10-v.pdf?srsltid=AfmBOopzeZD5O_iFLEs7LClAbDyvhAYRlTbcETgZ_nwnSlppNVfU2lTk

电机为: https://docs。rs-online.com/fc1a/0900766b8162b79a.pdf

我正在使用 DRV8305 评估板和具有 F28069 的 C2000 LaunchPad。

下面是一个编码器输出的示例。 脉冲序列不是常规的:







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

    我想知道是否有人知道在使用开环时什么会导致速度抖动。

    在启动期间、我通过应用 U+、V-、W 悬空来对齐转子。 在这之后我将编码器位置设为零。

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





    我非常缓慢地旋转。 在这里、您可以看到运算放大器(低侧检测)的电流测量值。 对我来说、电流看起来很合理。 抖动(来自编码器的黄色脉冲序列)不断发生。

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

    您好、Niclas、

    抖动的来源很可能是输入端脉冲的不规则性。  

    您提到您已经编写了自己的 FOC 代码。 它似乎接近运行,但可能有一个小 bug 的地方。

    您是否曾尝试使用 DRV8305 EVM 用户指南中提到的代码旋转? (MotorWare instaSPIN-FOC)

    谢谢、

    Joseph