1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJiTlJ9q
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
SVPWM模块负责将矢量控制系统输出的控制量Uα、Uβ转换为用于控制IGBT逆变器的PWM形式的门极信号。如图2所示,本文设计的SVPWM模块仿真模型由五部分组成,分别是电压矢量所在扇区的计算、中间参数X、Y、Z的计算、相邻基本电压矢量作用时间T1和T2的计算、三相逆变器开关时刻Ta、Tb、Tc的计算和PWM波形的产生。
4.部分源码
function [sys,x0,str,ts] = func_N_calculation(t,x,u,flag)
%A=0;B=0;
%C=0;N=0;
global A B C N;
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
case 1,
sys=[];
case 2,
sys=[];
case 3,
sys=mdlOutputs(t,x,u,A,B,C,N);
case 4,
sys=[];
case 9,
sys=[];
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 3;
sizes.NumOutputs = 1;
sizes.NumInputs = 2;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1; % at least one sample time is needed
sys = simsizes(sizes);
x0 = [0 0 0];
str = [];
ts = [0 0];
%u(1)=Uafa;u(2)=Ubta
function sys=mdlOutputs(t,x,u,A,B,C,N)
x(1)=u(2); %x(1)=Ua
x(2)=1/2*(sqrt(3)*u(1)-u(2)); %x(2)=Ub
x(3)=1/2*(-sqrt(3)*u(1)-u(2)); %x(3)=Uc
if (x(1)>0); %A
A=1;
else
A=0;
end
if (x(2)>0); %B
B=1;
else
B=0;
end
if (x(3)>0);
C=1; %C
else
C=0;
end
N=4*C+2*B+A; %N
sys=N;
08_059_m