你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

请问低转速时的转矩补偿

[复制链接]
microp 提问时间:2021-10-13 15:10 / 已解决
大家好:
請問低转速时的转矩补偿有什么好的方法吗?
我使用的马达(BLDC,sensorless)平常转速40000RPM,希望在1000RPM以下也有足够的扭力
是不是只能通过提升驱动电流来补偿?

Motor Control API中有一个MC_SetCurrentReferenceMotor1(Curr_Components Iqdref);
请问Curr_Components,和 Iqdref这两个变量内容要填什么?
谢谢!
收藏 评论9 发布时间:2021-10-13 15:10

举报

9个回答
子曰好人2号 最优答案 回答时间:2021-10-15 09:57:17
microp 发表于 2021-10-14 20:51
小弟资质驽钝,可否请兄台举个例?例如我要设定currentreference为1540s16A. MC_SetCurrentReferenceMotor1 ...
  1. /**
  2.   * @brief Programs the current reference to Motor 1 for later or immediate execution.
  3.   *
  4.   *  The current reference to consider is made of the Id and Iq current components.
  5.   *
  6.   *  Invoking the MC_SetCurrentReferenceMotor1() function programs a current reference
  7.   * with the provided parameters. The programmed reference is executed immediately if
  8.   * Motor 1's state machine is in the #START_RUN or #RUN states. Otherwise, the
  9.   * command is buffered and will be executed when the state machine reaches any of
  10.   * the aforementioned state.
  11.   *
  12.   *  The Application can check the status of the command with the MC_GetCommandStateMotor1()
  13.   * to know whether the last command was executed immediately or not.
  14.   *
  15.   * Only one command can be buffered at any given time. If another buffered command is
  16.   * programmed before the current one has completed, the latter replaces the former.
  17.   *
  18.   * @param  Iqdref current reference in the Direct-Quadratic reference frame. Expressed
  19.   *         in the Curr_Components format.
  20.   */
  21. void MC_SetCurrentReferenceMotor1( Curr_Components Iqdref )
  22. {
  23.         MCI_SetCurrentReferences( pMCI[M1], Iqdref );
  24. }
复制代码
这是这个函数的原型,你看一下代码,应该可以理解了

这个函数只能设置电流的大小,时间到了再通过这个函数将电流设定到0就可以了
AaronBing 回答时间:2022-1-21 23:12:03

1、转矩补偿是对于变转矩负载的应用例如压缩机这种,做波形上的补偿,减少大小波的现象。

2、平常转速是40000RPM,希望在1000RPM以下也有足够的扭力。假设电机的全速是40000RPM,那么相当于目标转速2.5%左右。

这个是低速带载的问题。ST的sto观测器是反电势观测的,无法做到这么低转速。

3、MC_SetCurrentReferenceMotor1 这个函数是直接赋值给pid运算的数值。

参考如下:

Curr_Components IqdrefSet;

IqdrefSet.q =1000;

IqdrefSet.d = 0 ;

MC_SetCurrentReferenceMotor1(IqdrefSet);

不太建议在程序里直接赋值这个。

子曰好人2号 回答时间:2021-10-14 08:34:17
sensorless控制低于5%额定转速运行时,观测器角度就不准确了,只能改用其他方式来控制,目前论文提到的比较多的方式就是高频注入(HFI),在ST的workbench里也含有HFI相关内容。
子曰好人2号 回答时间:2021-10-14 09:06:07
MC_SetCurrentReferenceMotor1(Curr_Components Iqdref);这个函数只有需要传入一个参数,Curr_Components是自定义的变量类型,Iqdref是参数。
microp 回答时间:2021-10-14 20:48:25
子曰好人2号 发表于 2021-10-14 08:34
sensorless控制低于5%额定转速运行时,观测器角度就不准确了,只能改用其他方式来控制,目前论文提到的比较 ...

這邊有High frequency injection教程,謝謝兄台指點!
https://www.youtube.com/watch?v=icdiKL90E3U
microp 回答时间:2021-10-14 20:51:06
子曰好人2号 发表于 2021-10-14 09:06
MC_SetCurrentReferenceMotor1(Curr_Components Iqdref);这个函数只有需要传入一个参数,Curr_Components是 ...

小弟资质驽钝,可否请兄台举个例?
例如我要设定currentreference为1540s16A. MC_SetCurrentReferenceMotor1(); 要怎么下?

子曰好人2号 回答时间:2021-10-15 09:53:07
microp 发表于 2021-10-14 20:48
這邊有High frequency injection教程,謝謝兄台指點!
https://www.youtube.com/watch?v=icdiKL90E3U
...

这个链接我打不开哦,大陆看不了YouTube的视频
弗兰克 回答时间:2021-10-15 18:27:17
ST有低速的转矩补偿算法,请联系代理商
鹿森 回答时间:2022-3-23 10:47:38

受教了!

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版