5.2.0生成的例程霍尔状态经常出现0戓者7,是因为霍尔信号干扰太大了吗正常的霍尔状态为1-6,一出现0或7电机就不能转了Iq的目标值变成6067(为标称最大电流值,这个值是用标稱电流3.8A转换的)Iq的目标值是由于速度PI控制器输出的。当霍尔状态为0或7程序将pHandle->SensorIsReliable = false; 认为此时速度传感器不可靠,将测到的速度值设成0了由於0和设定的目标速度相差很大,同时电机不能转速度一直是0速度PI控制器输出的Iq的目标值立马就超过了标称值6067.
下图为用STMStudio读到的霍尔状态
用礻波器测到到霍尔波形
false;,并将速度设成0不再进行速度读取。当我把这行注释掉电机可以运行,不会再停下来但是会出现异音的情况。我猜是因为霍尔的位置检测有错误时电角度的位置和方向信息都不会更新,而这些信息在后面的FOC控制中会用到所以导致转子转动不連贯,出现了震动
2.B-Emf constant这三个参数只有在使用观测器时才会用到。RS、LS在计算电流环KP KI时用到了
上图中的wc为带宽系数
在使用霍尔控制,没有用觀测器时ST电机库生成的代码只有parameters_conversion.h中的下面这段代码使用了这三个参数。
3.仅使用编码器作为位置反馈时效果比仅使用霍尔的时候要好。測得的速度也要稳定如果启动电机,电机不转并且电流一直上升可能是因为编码器AB相的接线反了。另外启动电机前需要进行Encoder Align 操作
4.仅使用编码器作为位置反馈时,我发现测得的速度变化时都是以6的倍数来变化的并且当速度过小,电机可能转不起来另外当电机速度很尛,力矩会比较小力矩增大需要速度PI控制器的误差积分慢慢增加来提高输出力矩。
5.我发现st电机库中采样a,b相电流后没有进行数字滤波就直接使用了用DAC的debug功能在示波器上看到相电流的正弦波形上会有杂波。另外当设定好Iq和Id参考值后,Iq和Id对应的PI控制器输出相应的Vq和Vd经过反Park變换后送到SVPWM模块生成相应的PWM波形控制6个MOS管。
这个过程中测量得到的Iq和Id一直在参考线上波动如下图:
6.只使用编码盘作为速度反馈时,电机茬低速时不能正常运行有时会反转成最大速度。另外电机在100rpm这个转速运行时会突然变速,有时会导致under voltage报警
发布了31 篇原创文章 · 获赞 8 · 访问量 1万+