如题,最近在使用基于官方的28035 PMSM Sensorless 调试,想做无传感电机控制,在DRV8301驱动板上进行。Level 1--Level 5顺利调试通过,但是在Level 6时,根据无传感的调试文档,从lsw=1的开环阶段切换到lsw=2的转速闭环阶段,rg1.Out到smo1.Theta存在较大偏移,很大程度都由于角度误差过大而导致切换失败,电机停转。如何能顺利的切换,或者有什么办法可以使rg1.Out到smo1.Theta逐渐趋近,等接近一致时再切换?是否有文档说明?
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 PMSM Sensorless 调试,想做无传感电机控制,在DRV8301驱动板上进行。Level 1--Level 5顺利调试通过,但是在Level 6时,根据无传感的调试文档,从lsw=1的开环阶段切换到lsw=2的转速闭环阶段,rg1.Out到smo1.Theta存在较大偏移,很大程度都由于角度误差过大而导致切换失败,电机停转。如何能顺利的切换,或者有什么办法可以使rg1.Out到smo1.Theta逐渐趋近,等接近一致时再切换?是否有文档说明?
我是在估算角度与开环角度基本一致的情况下开始切换到闭环的。通过设置一个电平信号观察切换点好像发现了问题所在。
我在开环阶段,给定交轴参考电流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(某值)吗?
你好,根据你上述解答,我又做了如下测试:
1、在开环阶段lsw=1,首先使电机正转。给定转速指令speedref=_IQ(0.25),直轴电流指令id=0,交轴电流指令iq=_IQ(0.1),使电机采用rg.out做转速虚拟闭环旋转。同时使用QEP模块与滑模变SMO模块计算电机角度,其中QEP模块已经进行过零位校正(已经过速度闭环验证)。经过对滑模变参数smo1.Kslide和滤波参数smo1.Kslf的调节,QEP角度与SMO估算角度基本是重合的。用此估算角度可实现开环到闭环的无传感控制切换。
波形如下图:
2、在开环阶段lsw=1,再使电机反转。给定转速指令speedref=_IQ(-0.25),直轴电流指令id=0,交轴电流指令iq=_IQ(-0.1),使用与上述相同的滑模变参数,再次观察三种角度,如下所示:
由上可见,反转的时候,同样的滑模变参数估算出的角度与QEP的真实角度就有了差异,接近180度。闭环切换无法进行。我的算法是采用例程的SMO,而非增强型的esmo.lib。
为何正反转估算出的角度有这么大的差异?极度困惑中。
望解答,谢谢。
你好请问问题解决了吗?是否方便交流一下 我的威信 13641461256