加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

PMSM矢量控制电流环浅析

(2011-08-31 16:45:29)
标签:

杂谈

三相永磁同步电动机的转矩方程为
T m=p(ψd iq- ψq id ) = p [ψf iq-(Ld - L q) iq id] (4-1)
上式说明了转矩由两项组成,括号中的第一项是由三相旋转磁场和永磁磁场相互作用所
产生的电磁转矩;第二项是由凸极效应引起的磁阻转矩。
对于嵌入式转子,Ld< Lq,电磁转矩和磁阻转矩同时存在。可以灵活有效地利用磁阻转
矩,通过调整和控制β 角,用最小的电流幅值来获得最大的输出转矩。对于凸极转子,Ld=Lq,
因此只存在电磁转矩,而不存在磁阻转矩,转矩方程变为
T m=pψf ia = pψf is sinβ (4-2)
由式中可以看出,当三相合成的电流矢量is与d 轴的夹角β 等于90°时可以获得最大转
矩,也就是说is与q 轴重合时转矩最大。这时,id= is cosβ=0;iq= is sinβ= is 。式4-2 可以
改写为
T m=pψf iq = pψf is。
因为是永磁转子,ψf是一个不变的值,所以式4-2 说明了只要保持is与d 轴垂直,就可
以像直流电动机控制那样,通过调整直流量iq来控制转矩,从而实现三相永磁同步伺服电动
机的控制参数的解耦,实现三相永磁同步伺服电动机转矩的线性化控制。
下面分别根据交、直流跟踪控制法的系统结构图,介绍PMSM 矢量控制的具体工作过
程: ⑴. 交流跟踪控制法
 永磁同步电机矢量控制交流跟踪控制法(AC 法)系统结构图示系统同样采用速度
和电流闭环控制,速度环为外环,电流环为内环。由速度环的速度调节器输出综合电流大小
的给定s i (这里s i 的相位与q轴相同),由于电磁转矩e T 正比于s i , s i 也相当于转矩给定。
采用可连续检测电机转子位置信号的光电编码器,测得励磁磁极轴线(d 轴)与A 相绕组
轴线(a轴)之间的夹角q(转子位置角),即可得s i 与a轴的夹角l=q+90°。根据l 角
的大小,把s i 分解成三相绕组电流的(这三个相电流给定是电流的瞬时值给定)。可得
( ) ( )
( ) ( )
( ) ( )
*
*
*
cos sin
cos 120 sin 120
cos 120 sin 120
a s s
b s s
c s s
i i i
i i i
i i i
l q
l q
l q
ì = = -é ù ë û ï
í= - ° = éë- - °ùû
ï
ïî= + ° = éë- + °ùû
(5-9)
用l 角去实现s i 到*
a i 、*
b i 和*
c i 的转换过程,其实质是实现了对s i 方向的控制。(方框框住的
运算部分实际上实现了把电流从d-q轴坐标系到a-b-c坐标系的变换)。三相电流给定
*
a i 、*
b i 、*
c i 与实际反馈值a i 、b i 、c i 的差值经过电流调节器( ) i G S 运算得到给定电压信号a u 、
b u 、c u 送入电压源型逆变器,使逆变输出的三相电流a i 、b i 、c i 完全跟踪*
a i 、*
b i 、*
c i ,也
就最终实现了对s i 大小及方向控制的目的。事实上交流跟踪控制法也是id=0控制,因为5-9
公式就是在id= is cosβ=0(当三相合成的电流矢量is与d轴的夹角β等于90°时)的条件下推出
的。而且本人在分别做过交流和直流跟踪控制后,将直流跟踪控制的电流Clarke、Park变换进
行实际公式推导后,发现与5-9这个公式基本是一样的(只差一个常数)。有兴趣的朋友可以
试着推导下。
可能还有兄弟会问为什么要试这个交流控制,而不直接按TI例程用直流控制呢?
做过实际项目的兄弟会有这个体会:做一个系统每走一步都是很艰难的,每一步都会
遇到很多很多预想不到的问题,因此一定要走得脚踏实地。建议大家一个阶段步一定要分
成很多小环节,然后一个小环节一个小环节做,在试过并确定每个小环节分开都能达到预
想的功能的情况下再一个环节环节加进系统中。如果你一下直接把一个大环节未经分拆调
试直接加入系统中,那基本上都是不兼容的。 因为不确定因素实在太多了,你不可能都考
虑到。所以一定要循序渐进,切忌盲目自信,急于求成。或者有这样的大侠能跨过这一步,
不过鄙人是至今未能遇到。
本人刚开始做的时候不明白的太多,对SVPWM、坐标变换原理没搞太明白。相对而言交
流控制则非常通俗,好理解,基于a-b-c 坐标系,结构简单,运算量少,易于实现电流开环
系统。加上有接触过别的电机SPWM 控制,所以就选择先做这个了。
这个方案开始时只速度环,没加电流开环时的具体做法是,将速度环PI 输出值经过运
算后不进行调节,直接输入至比较单元。即将速度环输出值作为s i 根据5-9 公式算得给定*
a i 、
*
b i 和*
c i 输入至CMPR比较单元。(注意公式5-9 中负号的实现,用dsp的朋友可以通过设置
ACTRA寄存器实现)
下面说说交流闭环跟踪控制具体做法和会出现的问题:
实际交流跟踪控制的调制方法可以说用的是SPWM,即*
a i 、*
b i 、*
c i 与实际反馈值a i 、b i 、
c i 的差值输入控制器中并输出给定电压信号即开关器件导通时间,(这个开关信号已经包括
三相正弦相位信号也即包含角度信息)由此输出SPWM去控制开关器件的开关。
电流调节器一般可采用滞环、P 或PI 调节器。当采用P调节器时,AC 法和DC 法的控
制效果完全相同;当采用PI 调节时,DC 法性能好,在这里的交流控制器就只选用P控制而
不用PI控制了,因为而AC 法等效交直轴电流分量会在控制器内产生耦合作用,电流控制特
P D F文 件使用 " p d f F a c t o试r用y版 本P创r o建 w"ww .fineprint.cn
3
性发生变化,使电流解耦特性也发生变化,在电机高速时电流幅值和相位误差会增加。实际
简单、通俗一点说就是如果假设控制器使用的是单纯的一个积分环节控制时,基于这里控制
的是交流量,是带相位信息的电流,经过单纯积分后就会产生90度的相位滞后。
所以如果最后使用的是PI控制时,用示波器看的话给定电压与反馈电流相位也能看出会
有接近90度偏差,(不是精确90度是因为不是单纯的积分环节,多了个比例环节)。所以实际
做出这个PI控制后会发现空载电流会很大。原因是给定电压与反馈电流相位的不对称就会导
致电机运行无功部分增大,而有功部分--输出机械能不变,进而会使定子电流增大。但是只
用P控制又发现系统性能不好,而且高速时还是会有相移。至于为什么转速较高时,其电流
环输出电流ABC与给定电流还是会出现幅值和相位上的偏差,查阅了很多资料,分析其原因。
有两个方面:一是电机反电势的对电流控制环的干扰,会随转速升高而增大。虽然可用提高
比例放大倍数来减少这一影响,但有时又有受到直流端电压不能够任意提高的限制,这个问
题一般通过前馈补偿方法。二是通常采用的PI调节的工作频带不够宽。工作频带这个问题跟
交流伺服的群主虫子交流后给支了一招:使用PID调节可以加宽带宽。但是最后试过效果好
像不太明显,可能是我没试明白。
至于前馈补偿大部分的资料都是通过电机参数和电机转速的运算出电压偏差然后进行,
这个可行度仔细想想其实很低。 所以后来想出别的办法:给定电压与反馈电流相位差可以
通过在开始时计算l=q+90°时强行进行角度补偿。但是又因为经过PI调节中有个P其实已
经不是单纯一个积分环节了,所以这个相位差就不可能是准确的90度了。而且实际就算是正
常的交流或直流跟踪控制系统也会有些许的相位偏差,所以这个相位就不能单纯的直接补偿
90度了。还是不太可行,不过后来鄙人又试通过实际检测出给定电压与反馈电流相位差后再
进行补偿(这个应该也算是一个的闭环控制,或者也可以叫前馈补偿)但是这个方法需要有
个精确的检测相位差的方法和装置。在这里介绍一种方法:实际检测反馈电流过零点(软硬
件)时对应在芯片内部运算出的编码角度值,这样就能得出给定电压与反馈电流相位差并据
此进行补偿。
另外在实际做这个时一定要注意5-9公式中的那个负号,搞明白这个输出极性正负的问
题,因为通常DSP 的EVA 动作寄存器ACTRA都设定上桥为高有效(大部分程序设定高有
效是基于死区的考虑),这样实际上桥的比较值CMPR与输出的占空比是成反比的,而电机
三个绕组的极性又是与上桥一致的。所以实际使用时电流经过P或PI调节输出后可以直接赋
予CMPR,公式中的负号已通过ACTRA的设置实现。
或许经过我这么一说好像交流控制只是在电流开环时易于上手,在做到后期时是比较复
杂,好像是一无是处,其实也不尽然,交流控制器还是能够保证系统具有快速响应特性的。
另外在做完交流跟踪控制后你会发现理解并实现起直流跟踪控制会非常轻松。
⑵直流跟踪控制法
这个方法因为电流环控制的是直流电流信号,直流信号就不会有上面交流信号滞后90
度的问题。并且直流信号恰好具有对运行频带不敏感的特点,从而可在一定程度上扩大电流
器的工作范围。
至于直流控制法书上基本都有较详细的说明,这里将略为述说。
PMSM矢量控制直流跟踪控制法(DC 法)系统结构图如图2 示:系统采用速度和电流闭
环控制。电机A 相、B 相绕组电流ia、ib经过Clarke 变换得到ab 方向的电流ia、ib ,将
三相静止坐标转换成二相静止坐标。说白了这一变换就是根据功率等效原则将三相绕组电机
等效成二相绕组电机(我们知道三相绕组电机通三相互差120 相角度电流便能得到幅值不变
角度旋转的圆形磁链矢量,而二相通差90 相角度的电流也能达到这样的旋转圆形磁链矢
P D F文 件使用 " p d f F a c t o试r用y版 本P创r o建 w"ww .fineprint.cn
4
量)。 再经Park变换得到dq方向的电流分量id 、iq。即将二相静止坐标转换成二相旋转坐
标转换至D、Q 轴上。iq为励磁分量,在PMSM 中希望励磁磁链全部转子永磁体产生,即
id=0,而定子电流只用于产生电磁转矩,满足以上条件,只需做到定子磁链角度超前转子磁
链90 度(即定子旋转磁场始终保持90度角度差拖动转子转动)。
电机的反馈速度与速度给定(由键盘输入)的差值经过PI调节输出作为q轴电流给定*
iq,
由于电磁转矩Te¥iq, *
iq即代表了转矩指令, *
iq与反馈交轴电流iq做差后,通过q轴电流
PI调节得到q轴电压给定量*
uq。而d 轴电流给定*
id 设为0,得d 轴电流误差经过d 轴电流PI
调节后得到d 轴电压给定量*
ud 。*
ud 、*
uq经Park逆变换后作为SVPWM模块的输入ua*、ub* ,
(SVPWM算法包含从二相静止坐标转换至三相坐标的变换) 在SVPWM中通过相应计算
得到对应的扇区值和开关器件导通时间,由此输出PWM波去控制开关器件的开关。
这里说一下这里其实也不一定非要用SVPWM,用交流跟踪控制的SPWM 调制(应该
也可以说是PWM调制)也是可以的,具体做法是将ua*、ub* 再经过Clarke逆变换变换成三
相静止的坐标*
A u 、*
B u 、*
Cu 后输入至比较单元即可。这样PWM 口输出的波形经过滤波后就
不再是马鞍波将是正弦波,实际上MATLAB里的矢量控制仿真例子用的就是这方法。
n*
n
d i
q i ia
ib
a i
b i
q
* 0 d i =
*
q i *
q u
*
d u
u*a
u*b
dc U
图2 直流跟踪控制法(DC 法) 系统结构图
而空间矢量调制(SVPWM)是近年发展的一种比较新颖的控制方法,空间矢量PWM 波
是一个由三相功率逆变器六个功率开关元件的特定开关模式产生的脉宽调制波,使得输出电
流波形尽可能接近于理想的正弦波形。空间矢量PWM 与传统的正弦PWM不同,它是从三
相输出电压的整体效果出发,着眼于如何使电机获得理想圆形磁链轨迹,使定子磁场必须实
时追踪转子磁场。空间矢量脉宽调制技术与SPWM 相比较,对谐波的抑制更有效,谐波成
分小,基波成分大,不仅使得电机转矩脉动。降低,电流波形畸变减少,使旋转磁场更逼近
圆形,直流电压利用率有了很大的提高。
因此在实际试过SPWM和SVPWM调制方法并比较效果后,还是在矢量控制直流跟踪
控制法中采用空间矢量调制(SVPWM)。
防积分饱和PI调节器为: 【其中( ) KC uk -U 为防饱和部分】
P D F文 件使用 " p d f F a c t o试r用y版 本P创r o建 w"ww .fineprint.cn
5
( )
1
max max
min min
1 I C
k P k
k
k k k k
U R K e
u U u
u u U u
U
R R Ke K u U
-
-
= + ü
ï
ì ³ ï
=ïí £ ýï
ï ï
î ï
ï = + + - þ
(5-16)
式中:k—采样序号,k=0,1,2,……; k u—第k次采样时刻的输出值;
k e—第k次采样时刻输入的误差值; P K —比例系数;
TI—积分常数; KI—积分系数,KI=KPT TI;
积分饱和修正系数KC=KI KP=T TI; T—采样周期。
实际使用的速度环PI控制程序(电流环类推)请看文章最后附1,附2
硬件系统如图3 所示,主控制芯片采用TI公司的TMS320LF2407A芯片,专门用于电
动机的数字化控制,此系列的芯片有很高的运算精度(32 位)和系统处理能力两个事件管
理器模块为电机及其功率变换提供了良好的控制平台。
图3 控制主芯片以及外围硬件框图
附1:汇编程序如下
;-------------------------------------- 速度PI调节-----------------------------------------------------------
LACC N_REF ;速度给定值,由外部输入
SUB N ;减反馈值
SACL N_EK ;保存偏差
LACC N_RK,12 ;左移12位
LT N_EK
MPY N_KP ;比例系数,Q12格式
APAC
SACH N_U,4 ;相当于右移12位
LACC N_U ;检测调节器输出是否超限
SUB I_MIN ;与下限比较
BCND POS1,GT ;如果大于则跳转
LACC I_MIN ;否则超过下限
P D F文 件使用 " p d f F a c t o试r用y版 本P创r o建 w"ww .fineprint.cn
6
B LIM ;ACC =下限值
POS1
LACC N_U
SUB I_MAX ;与上限比较
BCND POS2,GT ;超过上限则跳转
LACC N_U ;否则正常调整
B LIM
POS2
LACC I_MAX ; ACC =上限值
LIM
SACL I_REF ;输出
SUB N_U
SACL N_ELPI ;求极限偏差
LT N_ELPI
MPY N_KC ;积分饱和修正系数,Q12格式
PAC
LT N_EK
MPY N_KI ;积分系数,Q12格式
APAC
ADD N_RK,12
SACH N_RK,4 ;更新N_RK
附2 :C程序如下:
//===============速度PI====================//
void Speed_PI(void) //
{
Kcspeed=Kispeed/Kpspeed;
Espeed=Nref-N;
Uspeed=Kpspeed*Espeed+RKspeed;
if(Uspeed<0)
{
if((Nmin-Uspeed)>=0)
Iref=Nmin;
else
Iref=(int)Uspeed;
}
else
{
if(Nmax-Uspeed<0)
Iref=Nmax;
else
Iref=(int)Uspeed;
}
RKspeed=Kcspeed*(Iref-Uspeed)+Espeed*Kispeed+RKspeed;
Iref1=Iref;
P D F文 件使用 " p d f F a c t o试r用y版 本P创r o建 w"ww .fineprint.cn
7
}
关于电流环就先写这里(呵呵,也写不动了)。 纯属个人见解,请各位兄弟指正
如果有空,下一步想分别针对PROTEL电路板制版与焊接,电机转速计算方法与低速控制,
电机运行原理个人的理解,坐标变换与SVPWM 调制的个人理解,DSP 使用经验,双闭环
PI参数整定方法各写一篇心得。敬请期待,呵呵!
驹写于2009.1.25
P D F文 件使用 " p d f F a c t o试r用y版 本P创r o建 w"ww .fineprint.cn

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有