SVPWM-matlab仿真.docx

SVPWM-matlab仿真.docx

ID:25899320

大小:148.87 KB

页数:9页

时间:2018-11-23

SVPWM-matlab仿真.docx_第1页
SVPWM-matlab仿真.docx_第2页
SVPWM-matlab仿真.docx_第3页
SVPWM-matlab仿真.docx_第4页
SVPWM-matlab仿真.docx_第5页
资源描述:

《SVPWM-matlab仿真.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、【转】svpwm的MATLAB仿真实现为了能让大家在已经泛滥的知识上少走弯路,本人把自己在SVPWM上的认识与看到此贴的读者们一起分享,废话少说,切入正题:在看下面内容之前,您应该至少对SVPWM的原理有大致的了解,如果不了解也没关系,你只要按照我交给你的步骤来做,也可以轻而易举的跨过SVPWM这道坎,在仿真之前您必须安装MATLAB7.0或以上版本,必须确保simpowersysm工具箱已被安装,如果以上要求已经达到,那么就可以执行以下步骤了:步骤1:打开matlab主界面,然后在commandwindow界面中的“>>”旁边输入simulink,打开simulink开发环境后新建一个

2、mdl文件,在simulink下拉菜单中的ports&subsystems中找到subsystem模块,用其建立一个如图1的总的模块,这个模块有两个输入口,一个输出口(实际上包含六路PWM信号),接来的东西都将在这个模块中添加,输入输出模块的名称可以在双击模块后自己更改,其中Vahar,Vbetar是需要输出的电压在两相静止坐标系下的两个分量,输出是控制逆变器六个IGBT的pwm脉冲信号。图1也许有人会问,输入参数不是还包括直流电压和功率开关频率吗?别急,下面接着让您看到上述模块的内部情况步骤2:根据图2,添加subsystem的内核模块,里面用到的模块有以下几种:in,out,mux,

3、demux,repeatingsequence,rationaloperator,logicaloperator和里面的主角S-Functionbuilder模块。图2可以看到输入有四个参数Vapha,Vbeta,Tz,Vdc,输出为六路PWM信号,这个仿真模块没考虑死区的问题;取Tz为1/(1e+4)这就是说开个频率是10kHz,Vdc为500,这两个参数要根据实际情况自己设置,这里是我任意设的,repeatingsequence的设置如图3所示,这样设的目的是想产生一个周期为Tz,峰值为Tz/2的等腰直角三角形调制波,接下来设置两个比较模块和取反模块,比较模块是大于等于关系,各模块的

4、其他参数,我没说的就当默认设置,细心的读者会在图4中的第一幅图中看到仿真时间设为Ts,这是我设的系统仿真步长,这里就用默认值-1,此外比较模块和取反模块的信号属性signalatrributes均应设为Boolean格式。图3图4步骤3:设置s-builder模块,这个设置也很简单,但是看起来有点多,图2中的svpwm模块就是用simulink中的s-functionbuilder建立的,只是名字改成svpwm罢了,有图2可以看出svpwm产生的三个时间比较值与repeatingsequence产生的等腰三角波进行比较,从而产生想要的六路PWM波,svpwm的核心算法是使用C语言编写的,

5、下面详细介绍该模块的设置,s-fanctionbuilder的界面如下图:图5在s-functionname中输入svpwm,如果你把我下面说的设置完后,再按一下s-functionname旁边的build,接着就会在matlab的显示路径文件夹中(如“我的文档/matlab”)产生几个格式各异的以svpwm开头的文件,如svpwm.c,svpwm.tlc等,不过这是后话,先说说设置,在initialization中的各参数均设为0,samplemode设为inherited,如图5所示,这些都是默认值,也是说可以不用管它就可以了,在dataproperties中设:图6portname

6、为u(默认是u0),行数row为4(因为有四个输入参数),其他选用默认值,如图6所示,设outputports的输出portname为y(原来为y0),行数rows为3(因为有三个输出),其他参数默认,剩下的两个parameters和datatypeattributes均采用默认值;在libraries中全部使用默认值;接下来要改的就是outputs中的内容,也是实现SVPWM的核心算法,必须注意要必须勾选inputsareneededintheoutputfunction(directfeedthrough),这句话的意思是:输出结果直接用到了输入数据,比如y=u+1,将下面给出的C语

7、言程序复制到空白处,如图7所示:图7/*u[4]={vaphar,vbetar,Tz,Vdc}*/intA,B,C,N;doubleX,Y,Z,Tx,Ty,T0,Tl,Tm,Th;if(u[1]>0)A=1;elseA=0;   if((1.732051*u[0]-u[1])>0)B=1;elseB=0;if((-1.732051*u[0]-u[1])>0)C=1;elseC=0;N=A+2*B+4*C;X=1.732051*u[1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。