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.

[参考译文] TIDA-01496:如何使用 EVM 确定电机旋转速度。

Guru**** 662690 points
Other Parts Discussed in Thread: DRV10983EVM, TIDA-01496
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/simulation-hardware-system-design-tools-group/sim-hw-system-design/f/simulation-hardware-system-design-tools-forum/786746/tida-01496-how-to-decide-the-motor-rotation-speed-with-the-evm

器件型号:TIDA-01496
主题中讨论的其他器件:DRV10983EVM

大家好、我正在学习 DRV10983EVM、但即使电机扭矩发生变化、我们也需要以恒定速度驱动电机。

我发现、通过 将速度控制信号输入 MSP430的 ADC 输入、TIDA-01496能够以恒定速度驱动电机。

但我不确定 ADC 输入值与转速(Hz)之间的关系。

根据下面手册中使用 MSP430的 ADC10实现 PI 速度控制系统的3.1.2.2流程 、我认为我们应该定义 SPED_INPUT 和换算值。

速度级别决定了电周期的目标速度(Hz)(由 SPED_INPUT 定义)和换算值(由换算定义)。

如果我们想以 每1000rpm 的恒定速度在10000rpm~30000rpm 之间驱动电机,您能告诉我 如何 定义该值吗?  

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问题1)"我不确定 ADC 输入值与旋转速度(Hz)之间的关系"
    答案1)在软件项目中、相关代码位于文件 speedcontrol.c 中、因此我建议您浏览该代码以了解该代码。 一般而言、
    a)您读取的 ADC 输入值是一个输入电压、输入电压范围为0V 至3.3V、MSP430将其转换为1024数字值中的数字10位值、称为变量"ADC_Value"。
    b)"ADC_Value"随后根据"ADC_Value"的范围分配0至5的特定"Speed_level"值。
    c)每个"Speed_level"对应于1024中与特定占空比对应的不同"speed_input"值、占空比的计算结果为"speed_input"/1024。
    d)在特定电机扭矩下、"speed_input"占空比控制与特定电机速度相关。 您应该通过变量"scale"来表示 SPED_INPUT 占空比变量和电机实际电速之间的比率。 请参阅设计指南中的第3.1.2.4节、了解如何找到变量"比例"。

    问题2)如果我们要以10000rpm~30000rpm 之间每1000rpm 的恒定速度驱动电机,您能告诉我如何定义该值吗?
    答案2)
    a)将"Speed_level"变量从具有5个值更改为具有代表10、000rpm 到30、000rpm 之间所有1000rpm 间隔的值数量。
    b)找到与每个"Speed_level"的每个 rpm 值相对应的 PWM 占空比或 CCR1值、并且该"Speed_level"对应的"speed_input"将是该 CCR1值。 根据设计指南中的第3.1.2.4节计算刻度。

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

    1)关于答案1)我知道我应该根据 Speed_meased 值和 CCR1值之间的关系来决定标度。
    如果电机扭矩或负载扭矩发生了很大变化、我认为该软件无法遵循这些变化。
    在这种情况下、我是否必须为它创建新软件?

    1)关于答案2)我理解。谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您应该能够使用此代码。
    要保持理解简单、请执行以下步骤:
    1) 1)确定占空比、从而确定在标称负载转矩下与目标速度相关联的 SPED_INPUT (占空比= SPED_INPUT/1024)。 它不必是目标速度的确切占空比、它只需围绕球栅、就能确定您希望电机以特定速度旋转的占空比。 这是因为它将是您尝试获取目标速度所使用的起始占空比。 从此处开始、PI 控制将更改占空比以补偿任何速度误差。
    2) 2)使换算= SPEED_INPUT/TargetElectronicalSpeedInHz。 要将 RPM 转换为 Hz,Hz =rpm*#PolePair/60。

    这将为您提供所需的行为。
    我的步骤背后的基本原理:
    我认为代码中的关键等式是 Error = SPEED_INPUT/SCALE - SPEED_meased;
    SPED_meased 是以 Hz 为单位的测量电速度。
    SPED_INPUT 是范围0至1024的值、表示占空比= SPED_INPUT/1024。

    因此,如果您使换算= SPEED_INPUT/TargetElectronicalSpeedInHz,并将其代入以下公式:ERROR = SPEED_INPUT/SCALE - SPEED_measched,则误差将为0,当 SPEED_measched == TargetElectronicalSpeedInHz 时,不会有补偿。

    如果您有任何疑问、请告诉我