svpwm 的MATLAB 仿真实现 步骤1:打开matlab 主界面,然后在command window 界面中的“>>”旁边输入simulink,打开simulink 开发环境后新建一个 mdl 文件,在simulink 下拉菜单中的ports&subsystems 中找到 subsystem 模块,用其建立一个如图 1 的总的模块,这个模块有两个输入口,一个输出口(实际上包含六路 PWM 信号),接来的东西都将在这个模块中添加,输入输出模块的名称可以在双击模块后自己更改,其中Vahar,Vbetar 是需要输出的电压在两相静止坐标系下的两个分量,输出是控制逆变器六个 IGBT 的pwm 脉冲信号
图 1 也许有人会问,输入参数不是还包括直流电压和功率开关频率吗
别急,下面接着让您看到上述模块的内部情况 步骤2:根据图 2,添加 subsystem 的内核模块,里面用到的模块有以下几种:in,out,mux,demux,repeating sequence,rational operator,logical operator和里面的主角 S-Function builder 模块
图2 可以看到输入有四个参数Vapha,Vbeta,Tz,Vdc,输出为六路PWM 信号,这个仿真模块没考虑死区的问题; 取Tz 为1/(1e+4)这就是说开个频率是10kHz,Vdc 为500,这两个参数要根据实际情况自己设置,这里是我任意设的,repeating sequence 的设置如图3 所示,这样设的目的是想产生一个周期为Tz,峰值为Tz/2 的等腰直角三角形调制波,接下来设置两个比较模块和取反模块,比较模块是大于等于关系,各模块的其他参数,我没说的就当默认设置,细心的读者会在图4 中的第一幅图中看到仿真时间设为Ts,这是我设的系统仿真步长,这里就用默认值-1,此外比较模块和取