TI中文支持网
TI专业的中文技术问题搜集分享网站

MOTORWARE控制大电流电机的问题

您好,

由于MOTORWARE的例程框架整体使用IQ24格式进行计算,那么电流超过128A的系统请问如何解决?

我目前的猜测是将USER_IQ_FULL_SCALE_CURRENT_A 强制定义为 100A,在应对不同量程的电流传感器时,根据实际电流量程算出一个倍数。

比如:对于实际量程为200A的电流采样,那么200/100 = 2,此为转换因子。在其他计算中,以100A为基准,

对USER_MOTOR_MAX_CURRENT

USER_SYSTEM_INERTIA

USER_SYSTEM_FRICTION

全部相应的除以这个因子。再进行正常计算

比如实际上

USER_MOTOR_MAX_CURRENT == 200

USER_SYSTEM_INERTIA == 10

USER_SYSTEM_FRICTION == 5

FACTOR == 2

当做100A来计算时:

USER_MOTOR_MAX_CURRENT == 200/2 == 100

USER_SYSTEM_INERTIA == 10/2 == 5

USER_SYSTEM_FRICTION == 5/2 == 2.5

USER_IQ_FULL_SCALE_CURRENT_A  == 100

gMotorVars.SpinTAC.VelCtlOutputMax_A == 100

我得计算目标值如果为100A,那么实际上是在200A的硬件环境下进行了100%的输出,那么实际上目标值也就成为了200A,请问这样处理是否会有潜在问题,或者我考虑不到的地方产生错误。

HeiHei:

由于MOTORWARE的例程框架整体使用IQ24格式进行计算,那么电流超过128A的系统请问如何解决?

首先,IQ24(A),这个A确实不能表达128,因为会导致越界。但是这个A你为什么要用代表实际电流值呢,加入你USER_IQ_FULL_SCALE_CURRENT_A 定义为100A,那么对于128A的值,此时A为128/100=1.28,即IQ(1.28)表示128A,IQ(1)表示100A

您好,

由于MOTORWARE的例程框架整体使用IQ24格式进行计算,那么电流超过128A的系统请问如何解决?

我目前的猜测是将USER_IQ_FULL_SCALE_CURRENT_A 强制定义为 100A,在应对不同量程的电流传感器时,根据实际电流量程算出一个倍数。

比如:对于实际量程为200A的电流采样,那么200/100 = 2,此为转换因子。在其他计算中,以100A为基准,

对USER_MOTOR_MAX_CURRENT

USER_SYSTEM_INERTIA

USER_SYSTEM_FRICTION

全部相应的除以这个因子。再进行正常计算

比如实际上

USER_MOTOR_MAX_CURRENT == 200

USER_SYSTEM_INERTIA == 10

USER_SYSTEM_FRICTION == 5

FACTOR == 2

当做100A来计算时:

USER_MOTOR_MAX_CURRENT == 200/2 == 100

USER_SYSTEM_INERTIA == 10/2 == 5

USER_SYSTEM_FRICTION == 5/2 == 2.5

USER_IQ_FULL_SCALE_CURRENT_A  == 100

gMotorVars.SpinTAC.VelCtlOutputMax_A == 100

我得计算目标值如果为100A,那么实际上是在200A的硬件环境下进行了100%的输出,那么实际上目标值也就成为了200A,请问这样处理是否会有潜在问题,或者我考虑不到的地方产生错误。

laughing_C chang:

回复 HeiHei:

您应该是误解了我表达的意思,

现在原有例程中,假定120A,那么实际运用中那就是120(我全部是指IQ24格式)

所谓的128/100,是我设想的转换因子

或者说,如果现在USER_IQ_FULL_SCALE_CURRENT_A  == 200

ST_SYSTEM_INERTIA == 100

ST_SYSTEM_FRICTION == 100 

那么在实际计算过程中是否会有某些环节产生溢出

您好,

由于MOTORWARE的例程框架整体使用IQ24格式进行计算,那么电流超过128A的系统请问如何解决?

我目前的猜测是将USER_IQ_FULL_SCALE_CURRENT_A 强制定义为 100A,在应对不同量程的电流传感器时,根据实际电流量程算出一个倍数。

比如:对于实际量程为200A的电流采样,那么200/100 = 2,此为转换因子。在其他计算中,以100A为基准,

对USER_MOTOR_MAX_CURRENT

USER_SYSTEM_INERTIA

USER_SYSTEM_FRICTION

全部相应的除以这个因子。再进行正常计算

比如实际上

USER_MOTOR_MAX_CURRENT == 200

USER_SYSTEM_INERTIA == 10

USER_SYSTEM_FRICTION == 5

FACTOR == 2

当做100A来计算时:

USER_MOTOR_MAX_CURRENT == 200/2 == 100

USER_SYSTEM_INERTIA == 10/2 == 5

USER_SYSTEM_FRICTION == 5/2 == 2.5

USER_IQ_FULL_SCALE_CURRENT_A  == 100

gMotorVars.SpinTAC.VelCtlOutputMax_A == 100

我得计算目标值如果为100A,那么实际上是在200A的硬件环境下进行了100%的输出,那么实际上目标值也就成为了200A,请问这样处理是否会有潜在问题,或者我考虑不到的地方产生错误。

laughing_C chang:

回复 HeiHei:

我已经发现了一个会产生溢出的MOTORWARE 的API,难道你们队用户的问题搁置这么长时间都不予以回复吗?

赞(0)
未经允许不得转载:TI中文支持网 » MOTORWARE控制大电流电机的问题
分享到: 更多 (0)