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.

[参考译文] TMS320F28035:InstaSPIN SPED_MEAS_CAP RPM 与机械 RPM 不匹配

Guru**** 2540720 points
Other Parts Discussed in Thread: INSTASPIN-BLDC

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/675567/tms320f28035-instaspin-speed_meas_cap-rpm-does-not-match-mechanical-rpm

器件型号:TMS320F28035
主题中讨论的其他器件:INSTASPIN-BLDC

我正在使用 InstaSPIN BLDC 运行一个小型12伏电机。 我正在使用 SPED_PR_MACRO 来计算电机的 RPM。 从我可以看到的结果中、只计算特定时间内的电转数并计算 RPM。 来自这个引脚的速度 RPM 输出似乎非常嘈杂、所以我对它进行滤波以获得一个平均值。 对于某些电机、RPM 似乎大部分时间为20 RPM、但对于某些电机、RPM 大约为1400 RPM 软件报告的 RPM 为1400 RPM、但电机的机械 RPM 大约为1300 RPM。 所有测试的电机都是相同的模型电机、但我想电机之间的电感略有差异可能会导致不同的 RPM 误差。

我只是想知道为什么速度 RPM 上有这么多的噪声、我该怎么做才能使速度 RPM 与机械 RPM 相匹配? 是否有更好的方法来测量 RPM?

下面是我认为仍然与 TI 实验室中的 InstaSpin BLDC 示例相同的代码。

//在递增计数时,我们需要正速度

if (((mod_dir1.Counter=5)&&(PreviousState==4)&&(mod_dir1.TrigInput))

speed1.timestamp =虚拟计时器;

SPED_PR_MACRO (speed1);

SpeedLoopFlag = true;

//在递减计数时,我们需要负速度

否则、如果(((mod_dir1.Counter=0)&&(PreviousState=1)&&(mod_dir1.TrigInput))

speed1.timestamp =虚拟计时器;

SPED_PR_MACRO (speed1);

speed1.Speed =_IQmpy (speed1.Speed、_IQ (-1.0));

SpeedLoopFlag = true;

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

    您好、格雷、

    我无法完全理解"对于某些电机、RPM 似乎大部分时间为20 RPM、但对于某些电机、RPM 大约为1400 RPM 软件报告的 RPM 为1400 RPM、但电机的机械 RPM 大约为1300 RPM。" 但是、我将尽力解决您的问题。 如果我误解了您的问题、请更正我。

    SPED_PR_MACRO 通过计算电机一圈所需的 ISR 数量(默认为20kHz)来计算速度。 假设您的电机有4对极、1300rpm 时的电机转速将为86.67Hz。 假设默认 ISR 以20kHz 的频率运行、将有大约230个计数。 如果您的电机正以1300 rpm 的转速持续运行、由于量化噪声、速度输出将在1304.3 (计数230)和1298.7 (计数231) rpm 之间翻转。 换言之、在1300 rpm 转速附近、转速分辨率约为6 rpm、结果将以这种增量跳跃。 鉴于您的电机可能无法以理想的固定速度运行、这可能会导致两个读数之间的转速变化几十次。 我不确定这是不是您遇到的那种噪音。

    对于 不同电机之间的差异、我有一些问题:

    1.您是否已验证电机是否与其他速度测量设备以相同的速度运行? 如果您的电机开环运行、则电机可能以不同的速度运行。

    InstaSPIN-BLDC 的工作原理 是集成反电动势波形、BEMF 积分阈值(InstaSPIN_BLDC1.Int_Threshold)需要与该特定电机中的值相匹配。 该值与绕组电感和转子磁通有关。 请在 实验中查看5级增量构建、以验证您 的 BEMF 集成阈值是否已正确调整。

    请告诉我这是否能解决您的问题。 如果您还有其他问题、请同时包含您正在使用的电路板和电机的一些参数(极数等)。谢谢。

    此致、

    韩文

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在发送邮件之前没有阅读我的句子:)
    我想说、对于某些电机而言、RPM 似乎大部分时间都在20 RPM 以内...

    对于某些加载的压缩机、输入到速度 PID 中的噪声速度计算会导致实际转速出现错误、导致实际转速低于测量转速。 这会导致压缩机的转速比速度设定点慢(超过100 RPM)。 我认为、电机之间的电感差异足以使一些电机具有更多由响应两个活塞负载变化的电流 PID 产生的噪声。 如果我获取 Mod6计数并生成我自己的速度计算(在1秒内)、那么在测量实际机械速度时似乎更准确。 我认为一个简单的解决方法是计算速度、并在 TI 速度计算器中引入校正。 我的速度计算不必非常快、因为我的系统有几秒钟的时间才能达到正确的速度。

    关于电流 PID、我注意到了另一件事。 启动时、有时我的系统会获得高电流、电机不会启动。 在这个状态中、我注意到电流 PID 通过将其输出取至 Umin (-0.95)来执行它应该执行的操作。 但是、PWM 不响应-0.95。 它将电流保持在高电平状态。 如果我将电流 PID Umin 更改为(0.20)、过流会下降并防止出现高电流状态。 几乎就像 PWM 不响应负数一样、即使它表示其范围为-1到1。 实际范围可能是0到1。 我将尝试通过查看 TI 源代码来确认这一点。 这可能是 TI InstaSpin BLDC 实验室代码的已知错误。 我使用的是8级联示例。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Gary、

    感谢您的澄清。  

    对于速度噪声、您可以考虑在速度反馈路径中添加低通滤波器。 由于您的响应时间要求不长、因此请考虑降低速度环路带宽。

    对于电流环路控制器、0.95和-0.95的输出为最大正负电压。 任何一个都可能产生高电流。 对于启动电流、由于您运行的是无传感器电机、因此可能会出现初始换向误差。 这可能与您的启动问题有关。 有一个初始启动例程、也需要正确调整。 谢谢。

    韩文

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们的双头活塞压缩机似乎发生的情况是、电机的转速在一次机械旋转时不是恒定的。 当活塞达到其峰值压力时、在向上冲程时、电机会减慢、然后随着活塞以向下方向开始时加速、此时压力会快速变为零。 由于 TI 转速功能正在计算每个电气周期的转速、因此它会测量压缩机的四分之一转速。 因此、速度噪声是真实的、当被馈入 PID 时会导致速度误差。 转速范围为800至1800、设置点为1400 RPM。 RPM 的这些突然变化导致 PID 出现一些错误。

    我所做的是更改 TI 速度功能、以便在每次机械旋转(4次电气旋转后)测量一次速度。 然后、我重新调整了 PID、看起来一切都很好。 即使在重负载下、机械 RPM 也在设定点的5 RPM 范围内。 我还认为、一台压缩机和另一台压缩机之间的推理可能是由于电机相对于活塞轴的机械对齐。 这在生产过程中不受控制、我可以看到、某些压缩机的四分之一转速会产生更大的差异、具体取决于电动机极相对于活塞位置的位置。

    此外、将我的当前 PID Umin 值设置为+0.25而不是-0.95后、我的所有启动问题都消失了。

    我仍然不知道何时要对电机施加负 PWM? 我计划接下来深入研究 PWM 模块、并确切了解负 PWM 对电机的作用。 我只知道、每当我强制一个恒定负 PWM 时、电机就会变得嗡嗡声而不会转动、因此我永远不会希望我的电流 PID 的输出向 PWM 馈入一个负数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Gary、

    我很高兴看到你已经解决了你的问题。 如果您不关心由于压缩机负载不平衡而导致的转速变化、那么您在一转中平均转速的解决方案肯定会起作用。

    对于负 PWM、它实际上是施加到线圈的反向电压、用于电机的反向旋转。 由于您的负载是 压缩机、因此反向运行是合理的、 因此将 PI 的最小输出设置为正值是合理的。 谢谢。

    此致、

    韩文