我现在做的是纯开环。具体的情况我简单说一下,码盘用的是旋转变压器,可以读到电机转子的位置,我是在SVPWM模块输入Ualpha,Ubeta均设定为常数,电机转子转到特定位置,这时读出电机转子的位置作为零位置。然后我加入帕克反变换,其输入参数Iq=0.15,Id=0,按照我的理解的话,电机应该可以转,但是电机一上电,转子被定位在一个某个位置,用手拧也拧不动。我的以上这些都没加PI调节,PWM中断的频率是12K。我不清楚我的哪里出错了,还望不吝赐教!
Joey Mao:
guosheng zhu,
根据你的现象有几点建议,仅供参考:
观察变量输出是否是预期值,例如Ud、Uq,还有角度模块的输出正余弦值;
反park变换的输入Ds、Qs确认没有弄反;
减小输入参数Iq,到能用手转动电机,观察角度等变量的输出判断一下是否正常变化。
我现在做的是纯开环。具体的情况我简单说一下,码盘用的是旋转变压器,可以读到电机转子的位置,我是在SVPWM模块输入Ualpha,Ubeta均设定为常数,电机转子转到特定位置,这时读出电机转子的位置作为零位置。然后我加入帕克反变换,其输入参数Iq=0.15,Id=0,按照我的理解的话,电机应该可以转,但是电机一上电,转子被定位在一个某个位置,用手拧也拧不动。我的以上这些都没加PI调节,PWM中断的频率是12K。我不清楚我的哪里出错了,还望不吝赐教!
mingguang liu1:
回复 Joey Mao:
楼主需要确认的:
1、通直流时,Ualpha = 固定值,Ubeta=0,Angle=0;这时能够看到电机稍微旋转。
2、开环让他转起来,则Id=0,Iq=固定值即可。
电机没有旋转最大的可能是你加的电压正好滞后90°。
我现在做的是纯开环。具体的情况我简单说一下,码盘用的是旋转变压器,可以读到电机转子的位置,我是在SVPWM模块输入Ualpha,Ubeta均设定为常数,电机转子转到特定位置,这时读出电机转子的位置作为零位置。然后我加入帕克反变换,其输入参数Iq=0.15,Id=0,按照我的理解的话,电机应该可以转,但是电机一上电,转子被定位在一个某个位置,用手拧也拧不动。我的以上这些都没加PI调节,PWM中断的频率是12K。我不清楚我的哪里出错了,还望不吝赐教!
guosheng Zhu1:
回复 Joey Mao:
我换了台电机,我原先的程序里offset_angle测的不正确,电机可以开环转了。感谢您!如果电机的相电流比较小的话,可以加电流环吗?
我现在做的是纯开环。具体的情况我简单说一下,码盘用的是旋转变压器,可以读到电机转子的位置,我是在SVPWM模块输入Ualpha,Ubeta均设定为常数,电机转子转到特定位置,这时读出电机转子的位置作为零位置。然后我加入帕克反变换,其输入参数Iq=0.15,Id=0,按照我的理解的话,电机应该可以转,但是电机一上电,转子被定位在一个某个位置,用手拧也拧不动。我的以上这些都没加PI调节,PWM中断的频率是12K。我不清楚我的哪里出错了,还望不吝赐教!
mingguang liu1:
回复 guosheng Zhu1:
楼主的电机是永磁同步电机吧。
在空载条件下,忽略损耗和摩擦,令Id=0,这时的Iq也接近0,电机电流非常小,Iq稍微增加,电机的转速就会上去。
因此,外环需要速度环,内环需要电流环。这是基本的矢量控制方法。