amoi0228 发表于 2011-9-10 23:13

pmsm开环起动的问题

本人在做永磁同步电动机的控制方面的课题,目前的进展情况是:   

SVPWM模块已经完成,利用一个旋转的电压矢量能够看到较好的马鞍形波。

位置/速度传感器采用电机自带的2500线的光电编码器,在不接电机的情况下,通过编写的程序测试还是能够较为准确的采集电机转子的位置变化和转速值。

电机驱动部分采用IPM及光电耦合器等构成,经过测试效果还是可以的。   电流采集是采用LEM的LA55-P,测试过了效果也是不错的。

目前电机的初始位置才采用光电编码器的UVW相来判断。具体程序如下:
void motor_init(void)
{
    switch(GpioDataRegs.GPADAT.all & 0xE000)
    {
      case 0x4000: shan_qu=0; break;//0xA000(驱动的时候弄反了,所以全部都反过来)
      case 0xC000: shan_qu=1; break;   //2000
      case 0x8000: shan_qu=2; break;   //6000
      case 0xA000: shan_qu=3; break;   //4000
      case 0x2000: shan_qu=4; break;   //C000
      case 0x6000: shan_qu=5; break;   //8000

                default: motor_OK = 0; break;
    }
    EvaRegs.T2CNT = 417 * shan_qu + 208 ;
       
}
系统的测试情况:
一开始想一步到位,直接300V接闭环,结果可想而知,电机抖的非常厉害,中间还烧了一些器件。(表示神经比较大条。)

现在想用开环先做,把Ud=0,Uq赋一个值,位置利用光电编码器采集的值来运行。母线电压接的12V的,电机微微动了下,然后卡在那边不动了,无论在什么位置都是。后来接300V的,电机直接在狂抖。以为是位置判断的问题,可总检查不出来,感觉位置也没啥错啊。。    各位大侠,帮小弟一把,有点急了~   还有啥原因呢?是不是什么地方忽略了呢?   小弟做的是 矢量控制哈。。。

amoi0228 发表于 2011-9-10 23:25

补充下,我用的电机是表贴式的永磁同步电动机,功率是600W,额定电流2.5A

yw0238 发表于 2011-9-12 09:59

不论是开环或闭环,pmsm起动前,其初始位置都是未知的,故启动都有一个定位过程。
1. 指定旋转电压矢量在0度或其他特定角度,幅值大于0,延时一段时间,以便转子旋转到指定位置;
2. 按一个从长到短时间间隔旋转电压矢量,当然其幅度也随之适当加大,则电机转速逐步增加;于此同时同步检测电机位置,直到可获得一个稳定速度、位置信息;
3.依检测到的位置信息决定电压矢量位置,进入正常运行。

fm007 发表于 2011-9-13 10:13

应该先执行启动算法吧!

或跃于渊 发表于 2011-9-14 11:52

位置/速度传感器采用电机自带的2500线的光电编码器
有位置传感器,可以直接决定电压矢量位置。降低转速提升速度,让电机缓慢升速看下。
另光电编码器的位置角与电机的电磁角度是否一致,或需修正?

amoi0228 发表于 2011-9-14 12:44

回复 5# 或跃于渊


    你好, 我利用A相通Udc,B相和C相接0,定为了0位置,    与Z相相差66个脉冲,   而一圈我定义的是10000个脉冲的。   (正交编码电路)
即:当在此时通电时,T2CNT的值为66,    我用这个修正值修正了下,还是起不来。

你说的降低转速提升转速是什么意思呢?

amoi0228 发表于 2011-9-14 12:44

回复 4# fm007


    你好,起动算法是什么呢?   用的压频起动么?

amoi0228 发表于 2011-9-14 12:46

回复 3# yw0238


    你好, 你是说自己让电压矢量旋转么?   那它的旋转频率如何确定呢?    我之前在测试SVPWM模块的时候有让电压矢量自己旋转过,但是是以恒定的速度转速的。

neo_nuaa 发表于 2011-9-14 13:45

12v母线也太低了,至少要两个直流源串起来到60v左右;
步骤1-验证角度计算是否正确:先Vd=0,Vq=const,Theta从0逐渐增加到一个合适值(加速时间不能太短);电机启动后,对比开环给的THETA和编码器反馈的THETA;
步骤2-验证dq轴电流环:使用计算所得的THETA,id=0,iq=const(iq不可过大,否则空载时电机会跑飞),观测UVW相电流是否正弦且无偏置;
步骤3-验证编码器测速及速度环:由步骤2,电机可正常启动运转,观测电流频率,计算出转速,和通过编码器计算出的角度做对比;速度计算正确后,做速度闭环。

以上三个步骤完成后,再接高压进行调试,要注意的是母线电压升高,电流环的增益要相应减小。

yw0238 发表于 2011-9-14 20:52

同意9楼说法。
1. 适当提高母线电压,如从30v起;
2. A相通Udc,B相和C相接0,定0位置;
3. SVPWM模块验证:Vd=0,Vq=const(10%额定值),Theta从0逐渐增加到一个合适值(角度调整时间用PWM定时器确定,随时间逐渐缩短),观察电机启动否。如运行不正常,则手转动电机轴,如虽费力但可转动,则再加大母线电压一试;如轴被锁死,则要检查硬件、软件相应模块。
硬件、软件模块的测试:可在低母线电压下,用示波器观察三相Y接灯泡负载时的输出波形进行判断!!

amoi0228 发表于 2011-9-17 11:07

回复 10# yw0238

你好,谢谢你的回复。。 这边有个地方不太理解。。
   “ Theta从0逐渐增加到一个合适值(角度调整时间用PWM定时器确定,随时间逐渐缩短)”
逐渐增加到一个合适的值,指的是增加到一个恒值么?    还是一个恒定的旋转频率,    PWM定时器是怎么确定角度调整时间的呢?         再次谢谢你哈~

amoi0228 发表于 2011-9-17 11:08

回复 9# neo_nuaa


    你好,这个THETA合适的值具体怎么给呢?   谢谢你的回复哈~

amoi0228 发表于 2011-9-17 11:11

回复 10# yw0238


    你好, 这个硬件和软件的测试,接灯泡是怎么测试的呢?   小弟才疏学浅。   望多多包涵~

yw0238 发表于 2011-9-17 14:47

1. 接灯泡测试:母线电压60V,Y接的3个灯泡接原逆变器电机接口处,为安全起见可在直流母线上再串一个灯泡。处理器运行SVPWM算法,示波器观察输出。
2. 应是参考电压矢量的旋转速度从0逐渐增加到一个合适值,非Theta。PWM定时器中断频率和三角载波频率一致,为定值,可作定时用

amoi0228 发表于 2011-9-17 21:30

回复 14# yw0238


    你好,    我有个疑问,就是 参考电压矢量的旋转速度必须跟电机的电磁旋转速度基本一致电机才能转起来的对吧。那我们一开始怎么保证参考电压矢量的旋转速度和电机的电磁转速一致呢?在开环实验的时候

maojiajie 发表于 2011-9-19 10:52

嗯嗯,平滑的起动确实不好做~~在第一个Z脉冲的时候也很容易震动,对于明确负载可以通过实验得出,对于不明负载就很难做的好

amoi0228 发表于 2011-10-6 13:51

回复 16# maojiajie


你好,针对这个问题你是怎么解决的呢?

qiudk2008 发表于 2011-10-6 14:37

帖子有深度,暂时看不懂,先收了。

amoi0228 发表于 2011-10-7 19:46

问题解决了 。    前段时间在找工作没咋管实验,       最后发现是编码器的方向弄反了。把编码器的A相和B相反接就转了。。

hhs8546 发表于 2011-10-24 15:45

回复 3# yw0238

你好,“直到可获得一个稳定速度、位置信息”,这个条件如何判断呢?
页: [1] 2
查看完整版本: pmsm开环起动的问题