记录DSP做主控,双三相电机双闭环FOC控制,实验过程中有关PI控制器相关知识。
电机参数:Ld,Lq,极对数pn,永磁体磁链faif。直流母线电压vbus。DSP采样时间Ts。
一、PI控制器类型:并联型PI控制
/*并联型PI控制器的误差及积分误差*/
speed_error=speed_ref-PMSM.speed_m;
speed_integral+=speed_error*0.0001;
/*积分误差限幅设定*/
if(speed_integral > speed_integral_max)
{
speed_integral = speed_integral_max;
}
else if(speed_integral < -speed_integral_max)
{
speed_integral = -speed_integral_max;
}
/*转速环PI控制器输出*/
speed_PI = speed_kp*speed_error + speed_ki*speed_integral;
/*PI控制器输出限幅设定*/
if(speed_PI > speed_PI_max)
{
iq_ref1 = speed_PI_max;
}
else if(speed_PI < -speed_PI_max)
{
iq_ref1 = -speed_PI_max;
}
else
{
iq_ref1 = speed_PI;
}
并联型PI控制器的代码如上所示。可以看出,除了误差和积分误差,以及控制器输出公式以外,有两个限幅值需要设定,分别为:积分误差限幅,PI控制器输出限幅。
二、转速环限幅值设定原理
1、转速环PI控制器输出限幅(固定值):转速环输出为内环电流环的参考值,即iq_ref。有以下两种建议:
①根据电机额定电流12A,设定输出限幅为10A,防止电流过大烧电机;
②根据电机额定功率如:9.5N·m,设定iq = Te/3/pn/faif = 6.81A(这个值可以稍微放开点儿)。
speed_PI_max = 10; //转速环输出限幅,固定值
2、转速环PI控制器积分误差限幅(动态限幅):在电机运行进入稳态过程中,error为零,比例几乎不发挥作用,主要是积分发生作用。为了让积分具有有效的调节效果,动态限幅设定为:
speed_integral_max = 10/speed_ki;
根据PI控制器的输出公式可知,当前项比例值为0时,后项积分环输出的最大值与PI控制器输出限幅值相等。这意味着,积分误差最大值不会超过PI控制器限幅,保证积分环在不饱和时,可以有效发挥消除静差的作用(饱和也没事)。
三、电流环限幅值设定原理
1、电流环PI控制器输出限幅(动态限幅):电流环输出为dq坐标系下的电压,即vq_ref,vd_ref。在三相电机内,我们已知以下关系:
(1)
这表明在三相电机内,理论上来说,电流环的输出不能超过六边形的内切圆半径,从而保证线性调制。在双三相电机中,理论计算也可以得出这样一个值,但是实际过程中,嗯。。我们不限制这么多了,给出一个近似量即可:
iq_PI_max1=vbus*0.9;
id_PI_max1=vbus*0.9;
ix_PI_max1=vbus*0.09;
iy_PI_max1=vbus*0.09;
2、电流环PI控制器积分误差限幅(动态限幅):与转速环原理一样,为了让积分环有效发挥作用,积分误差最大值应为PI控制器能够输出的最大值:
iq_integral_max1 = vbus*0.9/iq_ki1;
id_integral_max1 = vbus*0.9/id_ki1;
ix_integral_max1 = vbus*0.09/ix_ki1;
iy_integral_max1 = vbus*0.09/iy_ki1;
到此PI控制器的两个输出限幅就记录完毕了。下面进入参数整定。
四、PI控制器参数整定
同样的,在三相电机内,理论计算Kp和Ki值为:
(2)
(3)
理论上,在双三相电机内,参数设定值近似就可以了。
实际过程中,经验调试会把比例值 = 0.1,积分值 = 0.01(让积分环慢点作用)。然后比例值以1量度增加,增加到近似理论计算5左右,同时慢慢放开积分值,0.02、0.05......可以获得比较好的PI控制器跟踪效果。
操作顺序是:先调节内环电流环闭环,然后调节外环转速换闭环,最后达到的效果是:更改iq_ref,iq能够实现很好的跟踪;更改参考转速,转速能够实现稳定跟踪。