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.

28035进行PM_Sensorless -> Level 6测试时,smo1.Theta和rg1.Out存在较大的相位偏移,如何能顺利由开环角度切换到闭环角度?

Other Parts Discussed in Thread: DRV8301

如题,最近在使用基于官方的28035 PMSM Sensorless 调试,想做无传感电机控制,在DRV8301驱动板上进行。Level 1--Level 5顺利调试通过,但是在Level 6时,根据无传感的调试文档,从lsw=1的开环阶段切换到lsw=2的转速闭环阶段,rg1.Out到smo1.Theta存在较大偏移,很大程度都由于角度误差过大而导致切换失败,电机停转。如何能顺利的切换,或者有什么办法可以使rg1.Out到smo1.Theta逐渐趋近,等接近一致时再切换?是否有文档说明?

 角度差如图:开环角度rg.out(绿色)与估算角度smo.Theta(黄色)

  • 另外在开环阶段,给定交轴电流iqref=_IQ(0.08),基值电流为20.625A,而切换到去传感闭环阶段时,不仅角度要克服rg1.Out到smo1.Theta的偏差,交轴给定电流也会由iqref=_IQ(0.08)变为iqref=pid1_spd.term.Out,两者都跳变是不是对电机切换到无传感转速闭环也有影响?如何克服?

  • 有TI员工能帮忙解答一下吗,或者谁做过这个,能给点建议?

  • 您好!

    可以让转速再提高一下切换,随着转速的上升,反馈信号也变强烈,这样估算的角度相应的也是比较准的。

    另外,先不用管速度环,先把电流环的切换弄好。

  • 那就是要先调试level-->6B阶段,让iqref一直为恒定值,然后调试smo1.Kslide和smo1.Kslf两个参数,保证开环阶段能先切换成功?想做风机控制的,如果想在100多RPM切换的话,有可能吗?

  • 对,先把估算器给调好了。几对极的电机?

  • 4对极的。刚刚试了一下,调了一下smo1.kslf参数,开环的时候,正反转都能切换了。但是变到level6A后,只有给定正向转速指令,开环到闭环旋转能切换成功,反向转速指令切换就会失败,什么会导致这个原因呢?

  • 是不是切换点的变量设定?正向反向从本质上没有区别。

  • 我是在估算角度与开环角度基本一致的情况下开始切换到闭环的。通过设置一个电平信号观察切换点好像发现了问题所在。

    我在开环阶段,给定交轴参考电流iqref=_IQ(0.1),当正向闭环切换的时候,交轴电流变成了经过速度环PI输出的pid1_spd.term.Out,因为给定速度参考值为正,所以速度PI输出为正。交轴电流从正的给定值_IQ(0.1)切换到正的速度环PI输出的pid1_spd.term.Out跳变不是太大,虽然会影响估算的角度,但是角度计算仍可以顺利进行,切换成功。切换图如下:

     黄色估算角度,蓝色开环角度,粉色是跳变点。

    而在反向闭环切换的时候,交轴电流从正的给定值_IQ(0.1)切换到负的速度环PI输出的pid1_spd.term.Out跳变过大,导致估算角度出现误差,电机停转,切换失败。如下图:

     切换点之后,黄色估算角度明显出现了异常。

     

    问题是,我该如何避免此种状况呢?是在进行反向切换控制计算的时候开环阶段就用iqref=-_IQ(某值)吗?

  • 你好,我在调试的时候发现了一个新的问题。为了验证我的smo.Kslide和smo1.Kslf参数调试的是否正确。我把QEP计算单元也引入到控制中。在经过最初的角度校正之后,我使用了QEP.Theta做角度变换,然后直轴电流恒定为0,交轴电流为经过速度PI调节输出的pid1_spd.term.Out,去做真实电机角度控制的恒转速闭环控制。与此同时,SMO估算单元一同进行,同时对比观察QEP.Theta和SMO1.Theta是否一致。在给定正向转速指令SpeedRef=_IQ(0.25)之后,电机正向旋转,输出的QEP.Theta和SMO1.Theta如下图所示,两者基本一致,证明估算角度是对的,也就是我可以实现正向无传感开环到闭环控制的。

     其中,黄色为SMO1.Theta,蓝色为QEP.Theta。

     

    但是当使用同一组smo.Kslide和smo1.Kslf参数进行闭环控制时,给定反向转速指令SpeedRef=_IQ(-0.25)之后,电机反向旋转,输出的QEP.Theta和SMO1.Theta如下图所示,两者相差接近180度,证明估算角度与真实QEP角度是由差别的,也就是我不可以实现反向无传感开环到闭环控制。基本与我上一条回复的情况一致。

     其中,黄色为SMO1.Theta,蓝色为QEP.Theta。

    为什么同样一组smo.Kslide和smo1.Kslf参数,电机正反转时,两种角度会差别这么大呢?难道正反转的时候,需要不同的smo.Kslide和smo1.Kslf参数?

    求解答,谢谢。

  • lv YB 说:

    我是在估算角度与开环角度基本一致的情况下开始切换到闭环的。通过设置一个电平信号观察切换点好像发现了问题所在。

    我在开环阶段,给定交轴参考电流iqref=_IQ(0.1),当正向闭环切换的时候,交轴电流变成了经过速度环PI输出的pid1_spd.term.Out,因为给定速度参考值为正,所以速度PI输出为正。交轴电流从正的给定值_IQ(0.1)切换到正的速度环PI输出的pid1_spd.term.Out跳变不是太大,虽然会影响估算的角度,但是角度计算仍可以顺利进行,切换成功。切换图如下:

     黄色估算角度,蓝色开环角度,粉色是跳变点。

    而在反向闭环切换的时候,交轴电流从正的给定值_IQ(0.1)切换到负的速度环PI输出的pid1_spd.term.Out跳变过大,导致估算角度出现误差,电机停转,切换失败。如下图:

     切换点之后,黄色估算角度明显出现了异常。

     

    问题是,我该如何避免此种状况呢?是在进行反向切换控制计算的时候开环阶段就用iqref=-_IQ(某值)吗?

    您好,反向要用负值

  • 但是当使用同一组smo.Kslide和smo1.Kslf参数进行闭环控制时,给定反向转速指令SpeedRef=_IQ(-0.25)之后,电机反向旋转,输出的QEP.Theta和SMO1.Theta如下图所示,两者相差接近180度,证明估算角度与真实QEP角度是由差别的,也就是我不可以实现反向无传感开环到闭环控制。基本与我上一条回复的情况一致。

    q轴电流的ref是多少?反转肯定得是负值。

  • 反转开环的时候,给定电流iqref=_IQ(-0.1),基值20A。

  • 你好,根据你上述解答,我又做了如下测试:

    1、在开环阶段lsw=1,首先使电机正转。给定转速指令speedref=_IQ(0.25),直轴电流指令id=0,交轴电流指令iq=_IQ(0.1),使电机采用rg.out做转速虚拟闭环旋转。同时使用QEP模块与滑模变SMO模块计算电机角度,其中QEP模块已经进行过零位校正(已经过速度闭环验证)。经过对滑模变参数smo1.Kslide和滤波参数smo1.Kslf的调节,QEP角度与SMO估算角度基本是重合的。用此估算角度可实现开环到闭环的无传感控制切换。

    波形如下图:

     黄色smo角度,蓝色qep角度。绿色开环角度rg.out。

    2、在开环阶段lsw=1,再使电机反转。给定转速指令speedref=_IQ(-0.25),直轴电流指令id=0,交轴电流指令iq=_IQ(-0.1),使用与上述相同的滑模变参数,再次观察三种角度,如下所示:

     黄色smo角度,蓝色qep角度。绿色开环角度rg.out。

    由上可见,反转的时候,同样的滑模变参数估算出的角度与QEP的真实角度就有了差异,接近180度。闭环切换无法进行。我的算法是采用例程的SMO,而非增强型的esmo.lib。

    为何正反转估算出的角度有这么大的差异?极度困惑中。

    望解答,谢谢。

  • 你好!

          我最近也遇到了你这个问题,请问你的问题解决了么? 如果解决了,是因为什么?谢谢

  • 你好,我也在做这方面的调试正在调这个估算器,方便指教一下吗?我的威信  13641461256

  • 你好请问问题解决了吗?是否方便交流一下  我的威信  13641461256