取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中设:

图6

port 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所示:

图7

int 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];

Y=(0.8660*u[1]+1.5*u[0])*u[2]/u[3];

Z=(-0.8660*u[1]+1.5*u[0])*u[2]/u[3];

switch (N)

{

case 1: Tx=

Y;Ty=-Z;break;

case 2:

Tx=-X;Ty= Y;break;

case 3: Tx=

Z;Ty= X;break;

case 4:

Tx=-Z;Ty=-X;break;

case 5: Tx=

X;Ty=-Y;break;

default: Tx=-Y;Ty= Z;

}

if ((Tx+Ty)>u[2])

{

Tx=Tx*u[2]/(Tx+Ty);

Ty=Ty*u[2]/(Tx+Ty);

}

T0=(u[2]-(Tx+Ty))/4;

Tl=(u[2]+Tx-Ty)/4;

Tm=(u[2]-Tx+Ty)/4;

Th=(u[2]+Tx+Ty)/4;

switch (N)

{

case 1

:y[0]=Tm;y[1]=T0;y[2]=Th;break;

case 2

:y[0]=T0;y[1]=Th;y[2]=Tm;break;

case 3

:y[0]=T0;y[1]=Tl;y[2]=Th;break;

case 4

:y[0]=Th;y[1]=Tm;y[2]=T0;break;

case 5

:y[0]=Th;y[1]=T0;y[2]=Tl;break;

default

:y[0]=Tl;y[1]=Th;y[2]=T0;

}

接下来的两个continuous derivatives和discrete

update都不用改,使用默认值,这两个只有在有导数时才会用到,最后一个在build info中勾选show comlile

steps(在build时会显示编译过程)、create a debugged mex-file和generate wrapper

tlc(这个我也不知道干什么用的)。这下所有的细节设置都结束了,

步骤4:设置仿真参数,回到mdl主界面,选择菜单栏中的simulation/configurate

parameters,里面的仿真时间可以根据实际情况自己定,在sover

options中,type建议选fixed-step,fixed step

size应本人设为5e-6,这个参数是仿真时最小的步长,这个参数必须比开关周期Tz小,否则无法仿真,其他参数都不用管它,要想知道这些参数是什么意思,就多看看matlab

中的help,里面都有详细说明。

步骤5是安装lcc,在matlab的command window中输入mex

-setup,然后按照提示将LCC安装上,安装完毕的提示是done。。。,接下来你就可以做跟你有用有关的事了,把SVPWM当做一个模块了使用。

步骤6:打开s-function

builder,单击一下里面的build,接着您就可以看到编译过程,如果看到success,那就说明您已经成功了。编译完后关闭s-function

builder,接下来做你的系统仿真吧,只要您的svpwm模块和编译出来的svpwm.c放在一个文件夹中,以后仿真就不用再点build了。

很简单吧,其实SVPWM的仿真没什么难的!需要提醒同志们的是,在仿真之前必须build一下s-function

builder,不然无法运行模块,采用s-builder的原因是建成的模块很简洁,而且运行速度要比其他方法快的多,接下来同志们该去自己试一下了!

svpwm的matlab模型,svpwm的MATLAB仿真实现(转载)相关推荐

  1. 抢渡长江论文matlab,模型解析及Matlab程序 抢渡长江

    抢渡长江 问题提出: "渡江"是武汉城市的一张名片.1934年9月9日,武汉警备旅官兵与体育界人士联手,在武汉第一次举办横渡长江游泳竞赛活动,起点为武昌汉阳门码头,终点设在汉口三北 ...

  2. matlab并网模型,光伏并网MATLAB模型 一些入门的并网控制系统 - 下载 - 搜珍网

    压缩包 : ebf90b46d7ca3aa77998d48520ce08d.zip 列表 光伏并网MATLAB模型/ 光伏并网MATLAB模型/PQ.slx 光伏并网MATLAB模型/PV.mdl 光 ...

  3. matlab soc,soc估算matlab仿真

    将 Matlab 仿真结果与同等条件下的实验 结果进行对比分析,证明了 DKF 算法能够有效地在线估算电池 SOC 及其欧姆内 阻 R0,且误差在 3%以内.最后,证明了 DKF 算法...... 收 ...

  4. matlab的svpwm逆变器,基于svpwm三相逆变器在matlab下的仿真研究.doc

    基于svpwm三相逆变器在matlab下的仿真研究.doc 基于SVPWM三相逆变器在MATLAB下的仿真研究摘要介绍了电压空间矢量脉宽调制控制算法的基本概念并简要介绍了利用多种实际矢量合成所需电压矢 ...

  5. SVPWM空间矢量调制模块的matlab仿真2:仿真模型搭建

    接上一篇:SVPWM空间矢量调制模块的matlab仿真1:理论部分_Fantasy237的博客-CSDN博客 SVPWM空间矢量调制模块的matlab仿真2:仿真模型搭建 仿真模型 仿真模型框图如下. ...

  6. matlab传函零极点形式,2013实验一 MATLAB 中控制系统模型的建立与仿真

    实验一 MATLAB 中控制系统模型的建立与仿真 一. 实验目的 (1)熟悉MATLAB 控制系统工具箱中线性控制系统传递函数模型的相关函数. (2)熟悉SIMULINK 模块库,能够使用SIMULI ...

  7. 机械臂机器人——使用Matlab Robotic ToolBox建立四轴机械臂模型并实现运动控制仿真

    文章目录 四轴机械臂实物 Robotic ToolBox机械臂建模 1.建立机械臂的D-H表 建立机械臂坐标系 根据坐标系建立D-H表 2.代码建模 机械臂运动学仿真 1.正运动学仿真 2.逆运动学仿 ...

  8. Matlab 2018a与SolidWorks联合仿真——如何将SolidWorks模型以xml格式导出至Matlab中

    Matlab 2018a与SolidWorks联合仿真--如何将SolidWorks模型以xml格式导出至Matlab中   要实现Solidworks与Matlab的联合仿真,需要在Solidwor ...

  9. 基于matlab的电机运行分析,电机模型分析及拖动仿真:基于MATLAB的现代方法

    第1章绪论 1.1MATLAB概述 1.2Simulink平台与MATLAB工具箱 1.2.1Simulink平台 1.2.2MATLAB工具箱 1.2.3SimPowerSystems工具箱 1.3 ...

  10. 提出共享储能背景下微网运营商与用户聚合商间的 Stackelberg 博弈模型,在 MATLAB 平台上进行算例仿真

    内容:提出共享储能背景下微网运营商与用户聚合商间的 Stackelberg 博弈模型,在 MATLAB 平台上进行算例仿真,通过 Yalmip 工具与 CPLEX 求解器进行建模与求解,利用启发式算法 ...

最新文章

  1. C语言数组清空的几种方法比较
  2. Linux的常用指令
  3. C++ Semaphore信号量使用
  4. Atitit.工作流系统的本质是dsl 图形化的dsl  4gl
  5. fiddler对模拟器抓包
  6. 计算机管理 超级用户,Win10如何开启Administrator超级管理员帐户?
  7. 欢喜传媒2021年报:亏损收窄背后,影视行业静待春暖花开
  8. (原創) 如何將16進位的ACSII值轉成相對應的字元? (C/C++) (C)
  9. java 快递项目_基于SpringBoot开发的Java快递代拿系统
  10. Java版Word开发工具Aspose.Words功能解析:将Word文档(DOC / DOCX)转换为HTML
  11. 查找WebSphere Application Server 管理控制台端口号
  12. python随机森林筛选变量_用随机森林分类器和GBDT进行特征筛选
  13. Microsoft Office Visio的功能/价值及不足
  14. SR触发器和JK触发器
  15. 如何搭建多功能会议室
  16. Tableau数据合并
  17. python开发数据库_有没有利用python开发数据库的案例
  18. 社区小程序源码-带后台
  19. Vue自定义域过滤器和管道符
  20. python处理数据库数据类型_python 导入表格数据库数据类型

热门文章

  1. 数据库MySQL与可视化界面 SQLYog 安装教程
  2. 超级终端连接华为交换机_win8系统使用超级终端连接华为交换机的操作方法
  3. 王道考研系列 计算机考研 ——机试指南(第二版) 笔记(一)
  4. Windows操作系统 | Visual C++库可不能乱删
  5. uniapp打包H5与uniapp打包apk交互,实现扫码功能。
  6. Dearun软件简介及使用指南——可以计算数据包络分析(DEA)模型效率值的软件
  7. Retinex图像增强算法
  8. 中美线径对照表_美标线径与国标对照及导线介绍
  9. 如何在Excel 2007中创建数据透视表
  10. 计算机组成原理与接口技术笔记