一、3/2变换的实现
使用模块:
function [alpha,beta]=clark(A,B,C) alpha=(2/3)*(A-0.5*B-0.5*C); beta=(2/3)*(sqrt(3)*(0.5*B-0.5*C));end3/2变换:让互差120°三相量(a,b,c)变换到正交的两相量(α,β)。
二、dq变换 function [d,q]=park(alpha,beta,angle) q=-alpha*sin(angle)+beta*cos(angle); d=alpha*cos(angle)+beta*sin(angle);end dq变换把两相静止量变换到两相旋转量(3/2+dq变换实现了三相解耦得到了两个独立的量能够简化控制)。 三、dq反变换 function [alpha,beta]=anti_park(q,d,angle) alpha=0; beta=0; alpha = cos(angle) * d - sin(angle)*q; beta = sin(angle) * d + cos(angle)*q;end 将控制后的dq量变换到静止两向量 四、SVPWM function [Bridge1,Bridge2,Bridge3,sector] = Duty_Caculation(Valfa,Vblfa,Udc,Tprd)%#codegen%变量初始化sector=0;Bridge1=0;Bridge2=0;Bridge3=0;%根据式计算Vref1=Vblfa;Vref2=sqrt(3)/2*Valfa-1/2*Vblfa;Vref3=-sqrt(3)/2*Valfa-1/2*Vblfa;%=============扇区选择==================%if(Vref1>0) sector=1;endif(Vref2>0) sector=sector+2;endif(Vref3>0) sector=sector+4;end%=============X、Y、Z 中间变量计算==================%X=sqrt(3)*Tprd*Vblfa/Udc;Y=(sqrt(3)*Tprd*(sqrt(3)*Valfa/2+Vblfa/2))/Udc;Z=(sqrt(3)*Tprd*(-sqrt(3)*Valfa/2+Vblfa/2))/Udc;%=============根据扇区分配中间变量==================%switch(sector) case 1 T1=-Z; T2=X; case 2 T1=Z;T2=Y; case 3 T1=X;T2=-Y; case 4 T1=-X;T2=Z; case 5T1=-Y;T2=-Z;otherwiseT1=Y;T2=-X;end%过调制处理if T1+T2>TprdT1=T1*Tprd/(T1+T2); T2=T2*Tprd/(T1+T2);else T1=T1; T2=T2;endta=(Tprd-(T1+T2))/4;tb=ta+T1/2;tc=tb+T2/2;%=============占空比分配==================%switch(sector) case 1 Bridge1=ta; Bridge2=tb; Bridge3=tc;case 2 Bridge1=tb; Bridge2=ta; Bridge3=tc;case 3 Bridge1=tc; Bridge2=ta; Bridge3=tb;case 4 Bridge1=tc; Bridge2=tb; Bridge3=ta;case 5 Bridge1=tb; Bridge2=tc; Bridge3=ta; case 6 Bridge1=ta; Bridge2=tc; Bridge3=tb;endendSVPWM的主要思想是以三相对称正弦波电压供电时三相对称电动机定子理想磁链圆为参考标准,以三相逆变器不同开关模式作适当的切换,从而形成PWM波,以所形成的实际磁链矢量来追踪其准确磁链圆。Tprd对应了PWM的周期,Udc对应了直流母线电压。
五、锁相环
六、整体模型搭建
Control_system仿真波形: