直接转矩控制仿真.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
为了能让大家在已经泛滥的知识上少走弯路,本人把自己在SVPWM上的认识与看到此贴的读者们一起分享,废话少说,切入正题:在看下面内容之前,您应该至少对SVPWM的原理有大致的了解,如果不了解也没关系,你只要按照我交给你的步骤来做,也可以轻而易举的跨过SVPWM这道坎,在仿真之前您必须安装MATLAB7.0或以上版本,必须确保simpowersysm工具箱已被安装,如果以上要求已经达到,那么就可以执行以下步骤了:步骤1:打开matlab主界面,然后在command window界面中的“”旁边输入simulink,打开simulink开发环境后新建一个mdl文件,在simulink下拉菜单中的portssubsystems中找到subsystem模块,用其建立一个如图1的总的模块,这个模块有两个输入口,一个输出口(实际上包含六路PWM信号),接来的东西都将在这个模块中添加,输入输出模块的名称可以在双击模块后自己更改,其中Vahar,Vbetar是需要输出的电压在两相静止坐标系下的两个分量,输出是控制逆变器六个IGBT的pwm脉冲信号。也许有人会问,输入参数不是还包括直流电压和功率开关频率吗?别急,下面接着让您看到上述模块的内部情况步骤2:根据图2,添加subsystem的内核模块,里面用到的模块有以下几种:in,out,mux,demux,repeatingsequence,rationaloperator,logical operator和里面的主角S-Function builder模块。可以看到输入有四个参数Vapha,Vbeta,Tz,Vdc,输出为六路PWM信号,这个仿真模块没考虑死区的问题;取Tz为1/(1e+4)这就是说开个频率是10kHz,Vdc为500,这两个参数要根据实际情况自己设置,这里是我任意设的,repeating sequence的设置如图3所示,这样设的目的是想产生一个周期为Tz,峰值为Tz/2的等腰直角三角形调制波,接下来设置两个比较模块和取反模块,比较模块是大于等于关系,各模块的其他参数,我没说的就当默认设置,细心的读者会在图4中的第一幅图中看到仿真时间设为Ts,这是我设的系统仿真步长,这里就用默认值-1,此外比较模块和取反模块的信号属性signal atrributes均应设为Boolean格式。 图3????? 步骤3:设置s-builder模块,这个设置也很简单,但是看起来有点多,图2中的svpwm模块就是用simulink中的s-function builder建立的,只是名字改成svpwm罢了,有图2可以看出svpwm产生的三个时间比较值与repeating sequence产生的等腰三角波进行比较,从而产生想要的六路PWM波,svpwm的核心算法是使用C语言编写的,下面详细介绍该模块的设置,s-fanction builder的界面如下图:图5在s-function name 中输入svpwm,如果你把我下面说的设置完后,再按一下s-function name旁边的build,接着就会在matlab的显示路径文件夹中(如“我的文档/matlab”)产生几个格式各异的以svpwm开头的文件,如svpwm.c,svpwm.tlc等,不过这是后话,先说说设置,在initialization中的各参数均设为0,sample mode 设为inherited,如图5所示,这些都是默认值,也是说可以不用管它就可以了,在data properties中设:图6port name 为u (默认是u0),行数row为4(因为有四个输入参数),其他选用默认值,如图6所示,设output ports的输出port name为y(原来为y0),行数rows为3(因为有三个输出),其他参数默认,剩下的两个parameters和data type attributes均采用默认值;在libraries中全部使用默认值;接下来要改的就是outputs中的内容,也是实现SVPWM的核心算法,必须注意要必须勾选inputs are needed in the output function(direct feedthrough),这句话的意思是:输出结果直接用到了输入数据,比如y=u+1,将下面给出的C语言程序复制到空白处,如图7所示:图7int A,B,C,N;double X,Y,Z,Tx,Ty,T0,Tl,Tm,Th;if (u[1]0) A = 1;else A=0;??if ((1.732051*u[0]-u[1])0) B = 1;else B=0;if ((-1.732051*u[0]-u[1])0) C = 1;else C=0;N=A+2*B+4*C;X=1.732051*u[1]*u[2]/u[3]

文档评论(0)

gangshou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档