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.

[参考译文] DRV8301-HC-C2-套件:仅扭矩控制未正确调节扭矩

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/619754/drv8301-hc-c2-kit-torque-control-only-not-regulating-torque-properly

部件号:DRV8301-HC-C2-Kit
主题中讨论的其他部件:DRV8301DRV8303EVM

我正在使用BLDC和具有IS-FOC的DRV8301-HC-C2-Kit创建一个dyno。 我计划使用IS-BLDC测试电机,因为这是我们在电机控制器中实施的。 现在,我正在使用与DRV8303EVM相同类型的电机。 使用IS-FOC和DRV8301套件,我上传了Lab5a,仅用于扭矩模式。 电机参数是使用运动GUI识别的,然后在user.h中静态定义 user.h中的某些参数(如 USER_IQ) FULL比例FREQ_Hz, 电压和电流已更改为适当的值。

当我向IqRef发出0.2 -0.3A指令时,它在卸载条件下加速至其最大速度(电压总线@ 48V)。 在当前0.2A时,表达式窗口中的Torque_Nm值显示~0.023 ,它接近使用以下电机常数计算的值。 电机的电流消耗与IqRef的设置类似。

当我用手给电机加载时, 电流会略微增加到某个点 ,当我用手向下增加压力至电机不移动时,电流会下降到零。 因此 ,恒定扭矩 似乎无法正常工作。 我假设当我加载电机时,电机不会移动,电流应为0.2A。 对导致这种行为的原因有什么想法?  我在使用 IS-Motion GUI (不是为实验室开发的通用GUI)时尝试了相同的操作,但它执行相同的操作。 当我在 当前模式下使用IS-BLDC GUI时,它按预期工作。  

 

Maxon EC60扁平

扭矩常数= 114mNm/A

速度常数= 83.4 rpm/V

速度/扭矩梯度= 0.798转/分/牛米

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于bemf太低而无法计算精确的转子位置,因此无传感器FOC很难在零速和非常低的速度下稳定地运行电机。 如果您想使用BLDC在全速范围内模拟测堤,最好使用感应式FOC (如instaSPIN运动)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,我理解您的评论,但我正在尝试弄清楚为什么它不能调节扭矩/电流。 即使卸载时它以全速(3-4krpm)运行,并且我对电机施加了一些轻微的扭矩,电源的电流消耗也不恒定。 随着对电机施加的压力越来越大,电压也在下降。 应保持恒定,因为施加了更多压力...

    有什么建议?

    我已将MOTION-GUI与给定的appProgram.out文件一起使用,但它不起作用。 我上传了Lab5a并使用了通用FOC GUI,但它不起作用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我注意到的另一件事是,当我在速度+扭矩模式下使用IS-FOC运行电机时,它会将速度调节到某个点,但一旦达到峰值电流点,来自电源的RPM和电流读数将会降低。 这个特定点比我在user.h (设置为3.0A)中指定的user_IQ_FULL比例电流A要低得多。 定义电机参数时,我将USER_MOTOR_MAX_CURRENT设置为2.78A。

    我假设在这些设置下,电机应保持高达2.78A的速度,直到速度降低,但电流将保持在2.78A?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的直流总线电压是多少? 您是否能够提供足够的动力来支持您所控制的扭矩?

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

    直流总线电压以48V运行。 电源的最大电流为3A。

    仅限扭矩模式(实验5A)
    当我在MotorVars中向0.2 发出iqRefA命令时,电机将向上斜升并消耗0.18A。 它没有达到~4krpms的最大rpm。 当调试器停止时,电子器件的电流为0.05A。 根据Maxon EC60平扭矩常数,0.2A应对应于0.0228Nm。 在motorVars.Torque_Nm中,它显示了约为0.18 的正确值- 0.24Nm。 MotorVars.IQ)在大约0.2A时也正确。 当我用手开始向下加载电机时,电机转速和电源的电流消耗会降低。 当我完全停止电机旋转时,扭矩仍显示~0.02Nm,IQ_A为~0.2A。 奇怪的是,电源的电流仅显示0.11A。

    当我将IqRef_A增加到0.4 ,0.6 ,1A时,我看到同样的行为。 我看到的唯一区别是,卸载时电机以最大速度旋转,而当我给电机施加轻微负载时,电流消耗会增加,直到达到峰值(不是电源峰值或用户的峰值)。 当"峰值"后电动机承受更多负载时,电流消耗降低,电动机转速降低。 对于IqRef_A AS 1A,当我运行时停止电机轴时,扭矩为~0.1 Nm,Iq_A为0.98A,电源电流为0.13A。

    IQ_A假设与电源电流消耗相同吗?


    仅限速度+扭矩模式(实验5B)
    由于是级联速度+扭矩,是否可以保持恒定速度(由用户指定),但扭矩不受限制,不超过user.h或电源中的最大限制? 我相信我了解从下面的我的观点来看,级联模式是如何工作的,您能确认吗?

    测试此模式时,我命令它以一定的速度(1-1.5krpm)运行。 电源消耗约0.18A,扭矩Nm值显示卸载~0.024Nm。 当我对电机进行负载下降时,电流峰值约为1.2A。 速度保持相当恒定,直到那时,电流和转速会下降。 当我将其加载到足以停止时,扭矩Nm为0.24Nm,电源电流消耗为0.3A。

    从crtl句柄变量中我注意到的一件事是pid_IQ和pid_SPD变量。 当马达加载时,pid_SPD.UI到达outMax值。 这与我从电源看到的1.2A峰值相对应。 pid_SPD.UI将成为pid_IQ的refvalue。 如果我理解正确,则必须将RPM设置为在该特定RPM下可以实现所需最大扭矩的水平,但所有这些都受到超过最小值/最大值的限制。 如何计算outMin和outMax? 是否可以对其进行修改,使其值更高,以使最大扭矩更高?

    我做了更多的实验,把USER_MOTOR_MAX_CURRENT值从2.87A更改为5.0A,而pid_SPD的outMIN/max值更高。 当电机加载时,电源电流峰值比以前高得多。 Max_Current值似乎不是true值,或者在控制器达到输出限制之前,它没有达到2.87A (更像其一半),这是被小数点取整的结果。

    我在设置参数时唯一能找到的是在Ctrl.c/h文件中,它将默认的最小值设置为IQ(-/+MinMax) 0.95 和IQ(-/+MinMax) 1.0 ,但看不到最小值/最大值更新或重新计算的位置...


    抱歉回答所有问题

    谢谢
    David

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

    您好,David:

    我们要求在本周剩下的时间里保持耐心。  

    该团队的大多数成员都在休斯顿,大多数成员在某种程度上受到飓风和随后的洪水的影响。

    您的问题也非常详细。


    谢谢!
    Brett

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请参阅InstaSPIN用户指南(springhj1g.pdf)的InstaSPIN-FOC方框图(第25页第1.1 2节),它可以帮助您了解扭矩模式和速度模式。 您的实验结果适合FOC。
    1.对于扭矩模式和卸载模式,如果您将参考扭矩电流设置为固定值,电机将运行至最大运行速度,这取决于电机参数,直流总线输入电压和轴摩擦。 该参考值足以使电机运行以克服轴摩擦。
    电动机的最大运行速度限制为直流总线电压,您可以检查gMotorVars.Vs和gMotorVars.OverModulation的变量,gMotorVars.Vs应等于gMotorVars.OverModulation,这意味着直流总线电压不足。

    2.对于带负载的扭矩模式与项目1相似,需要将参考扭矩电流设置为足够的值,以克服负载+摩擦以运行电机。 如果是,电机运行;如果否,电机停止。 最大运行速度也限制为直流总线电压。

    3.对于带负荷或无负荷的速度模式,速度PI的输出是电动机控制的参考扭矩电流,它将增加或减少参考扭矩电流,以使电机转速保持在设定的参考速度。 最大运行速度限制为直流总线电压和最大电流,以用户h设置 最大电流将设置为速度PI控制器的输出输入和输出最大值,从而限制IQ PI控制器的参考扭矩电流。 设置在instaSPIN代码中完成。

    BTW,最大运行速度也取决于电机规格,该规格始终低于电机的最大速度。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我理解您的说法,下面是一些额外的问题。

    仅限扭矩模式:
    IQ_A假设与电源电流消耗相同吗? 如果是这样,我就看不到这种行为(如我上文所述)。

    对于速度+扭矩模式:
    由于速度PI的输出是电机控制的参考扭矩电流,如果我命令它为1krpm而不是最大4krpm,我假设1k的扭矩参考值比4krpm小得多。 如果是这样,则从技术上讲,无法获得电动机在1krpm时可产生的最大扭矩/电流。 它只能提供相对于1krpm计算的扭矩值。

    如果正确,您将如何最大化扭矩/电流输出以达到user.h中为任何rpm设置的最大电流?