politics122 发表于 2008-4-7 11:35

求教:用S-function控制的SPWM信号

我在做一个用SPWM控制的逆变器仿真,拓扑图很简单

但是老师要求我用S-function模块写函数来控制IGBT的关断和导通,被难住了. 想请教,请懂S函数算法的朋友给我个方案

我用S-function-Example里的timestwo那个模版为基础,程序如下:


function = timestwo(t,x,u,flag)

switch flag,

case 0
    =mdlInitializeSizes;    %mdlInitializeSizes是定义初始条件

case 3
    sys=mdlOutputs(t,x,u);      %mdlOutputs是S函数的计算输出


case { 1, 2, 4, 9 }   %case1.2.4.9在此函数里不起作用
    sys=[];

.
otherwise
    error(['Unhandled flag = ',num2str(flag)]);
end


function = mdlInitializeSizes()
sizes = simsizes;
sizes.NumContStates= 0;
sizes.NumDiscStates= 0;
sizes.NumOutputs   = -1;% 动态的输出个数
sizes.NumInputs      = -1;% 动态的输入个数
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
str = [];
x0= [];
ts= [-1 0];

function sys = mdlOutputs(t,x,u)    %这里就是写输出算法了,例子中sys = u * 2是指输出为uX2
sys = u * 2;


要得到SPWM波形,理论上是用正弦波和三角波或锯齿波相比较,通过某种算法,得到宽度不一的脉冲控制信号.我就想用一个正弦波和三角波做为输入信号,通过S函数算法,得到四个SPWM信号,控制四个IGBT的导通时间,拓扑图如下,请大家看看,
1

想请教用懂S函数算法的朋友给我写一个算法程序,谢谢
我的QQ47894281,E-mail yaojing88@163.com

sujiemin 发表于 2008-4-13 19:28

怎么会是控制四个IGBTt啊?

politics122 发表于 2008-5-2 18:13

老师给我的拓扑结构图就是4个IGBT

tubu0612 发表于 2011-5-10 14:39

学习下。{:{13}:}
页: [1]
查看完整版本: 求教:用S-function控制的SPWM信号