永磁同步电机电流环闭环控制

文章目录

  • 1、模型总览
  • 2、电机参数
  • 3、Iq给定
  • 4、FOC模块
  • 5、Clark变换
  • 6、Park变换
  • 7、电流环PI控制
    • 7.1 数学模型
    • 7.2 带宽
    • 7.3 PI 参数
  • 8、耦合项
  • 9、结果分析
    • 9.1 电机相电流
    • 9.2 转速
    • 9.3 dq轴电流

模型下载地址:https://download.csdn.net/download/qq_28149763/88687549

1、模型总览

永磁同步电机电流环闭环控制_第1张图片
永磁同步电机电流环闭环控制_第2张图片

2、电机参数

Rs=0.6
Ld=Lq=1.4e-3(表贴式)
Flux=0.034182
Inertia=1.1e-5
viscous damping=1e-3
pole=1
static friction=0.02

永磁同步电机电流环闭环控制_第3张图片

3、Iq给定

function y = fcn(T)

if T<1
    y=1;
else
    y=3;
end

仿真时间2s,0-1设定1A,1-2s设定3A。

4、FOC模块

function [Tcm1,Tcm2,Tcm3,sector] = fcn(ud,uq,Udc,Ts,theta)

%rev_park
u_alpha=ud*cos(theta)-uq*sin(theta);
u_beta=ud*sin(theta)+uq*cos(theta);
%init
K=sqrt(3)*Ts/Udc;

%Sector judgment
u1=u_beta;
u2=u_alpha*cos(pi/6)-u_beta*cos(pi/3);
u3=-u_alpha*cos(pi/6)-u_beta*cos(pi/3);

if u1>0
    A=1;
else
    A=0;
end

if u2>0
    B=1;
else
    B=0;
end

if u3>0
    C=1;
else
    C=0;
end

sector = A+2*B+4*C;

switch sector
    case 3
        t4=K*u2;
        t6=K*u1;
        if abs(t4+t6)>Ts
            t4=t4*Ts/(t4+t6);
            t6=t6*Ts/(t4+t6);
        end
        %t7=0.5*(Ts-t4-t6);
        Tcm1=0.25*(Ts-t4-t6);
        Tcm2=0.25*(Ts+t4-t6);
        Tcm3=0.25*(Ts+t4+t6);
     case 1
        t2=-K*u2;
        t6=-K*u3;
        if abs(t2+t6)>Ts
            t4=t2*Ts/(t2+t6);
            t6=t6*Ts/(t4+t6);
        end
        %t7=0.5*(Ts-t2-t6);
        Tcm1=0.25*(Ts+t2-t6);
        Tcm2=0.25*(Ts-t2-t6);
        Tcm3=0.25*(Ts+t2+t6);
     case 5
        t2=K*u1;
        t3=K*u3;
        if abs(t2+t3)>Ts
            t2=t2*Ts/(t2+t3);
            t3=t3*Ts/(t2+t3);
        end
        %t7=0.5*(Ts-t2-t3);
        Tcm1=0.25*(Ts+t2+t3);
        Tcm2=0.25*(Ts-t2-t3);
        Tcm3=0.25*(Ts+t2-t3);
    case 4
        t3=-K*u2;
        t1=-K*u1;
        if abs(t1+t3)>Ts
            t1=t1*Ts/(t1+t3);
            t3=t3*Ts/(t1+t3);
        end
        %t7=0.5*(Ts-t1-t3);
        Tcm1=0.25*(Ts+t1+t3);
        Tcm2=0.25*(Ts+t1-t3);
        Tcm3=0.25*(Ts-t1-t3);
    case 6
        t1=K*u3;
        t5=K*u2;
        if abs(t1+t5)>Ts
            t1=t1*Ts/(t1+t5);
            t5=t5*Ts/(t1+t5);
        end
        %t7=0.5*(Ts-t1-t5);
        Tcm1=0.25*(Ts+t1-t5);
        Tcm2=0.25*(Ts+t1+t5);
        Tcm3=0.25*(Ts-t1-t5);
   case 2
        t4=-K*u3;
        t5=-K*u1;
        if abs(t4+t5)>Ts
            t4=t4*Ts/(t4+t5);
            t5=t5*Ts/(t4+t5);
        end
        %t7=0.5*(Ts-t4-t5);
        Tcm1=0.25*(Ts-t4-t5);
        Tcm2=0.25*(Ts+t4+t5);
        Tcm3=0.25*(Ts+t4-t5);
    otherwise
        Tcm1=0.5*Ts;
        Tcm2=0.5*Ts;
        Tcm3=0.5*Ts;
end

5、Clark变换

永磁同步电机电流环闭环控制_第4张图片

6、Park变换

永磁同步电机电流环闭环控制_第5张图片

7、电流环PI控制

永磁同步电机电流环闭环控制_第6张图片
流环的PI参数怎么取?
● 工程调参:一种是工程调参,依据工程经验一步一步调节参数,直到达到预期。
● 传递函数求取:另一种则是求取系统的传递函数依据理论方法求取。
工程方法在FOC笔记一文已介绍的比较详细了,不在赘述,此处用第二种方法。

7.1 数学模型

永磁同步电机电流环闭环控制_第7张图片
永磁同步电机电流环闭环控制_第8张图片

7.2 带宽

永磁同步电机电流环闭环控制_第9张图片

7.3 PI 参数

永磁同步电机电流环闭环控制_第10张图片

8、耦合项

function [yd,yq] = fcn(we,id,iq)

Ld=1.4e-3;
Lq=1.4e-3;
Flux=0.034182;

yd=we*Lq*iq;
yq=we*(Flux+Ld*id);

9、结果分析

9.1 电机相电流

永磁同步电机电流环闭环控制_第11张图片
在0-1s时,相电流峰值在1A左右,1-2s时,相电流在3A左右,波形为正弦波形。

9.2 转速

永磁同步电机电流环闭环控制_第12张图片

9.3 dq轴电流

永磁同步电机电流环闭环控制_第13张图片
在0-1s时, i q i_q iq电流峰值在1A左右,1-2s时, i q i_q iq电流在3A左右。、
值得说明的是,经过计算得出的PI调节器的参数有时并不是最优的,在仿真过程中可以对参数进行调试,以获得最优的控制效果。

参考:
1、现代永磁同步电机控制及MATLAB仿真.袁雷
2、STM32无刷电机控制-电流环PI参数计算:https://www.bilibili.com/video/BV1yG411V7Nn/?spm_id_from=333.999.0.0&vd_source=5f570a9f261c43941608688d2d31a4c5

你可能感兴趣的:(电机控制,控制,算法,算法,matlab)