产生固定的波形
本帖最后由 red_perfume 于 2010-1-4 21:56 编辑各位大侠:
如何用S函数写一个简单的波形,然后在simulink中不断使能使其不断重复输出啊? 本人新手上路
谢谢各位的宝贵时间!
谢谢您的回答,我想在模型中每次trigger后产生一个周期的sin函数,一个周期保持0直到先一个trigger, 高手这个可以完成吗? 你是要正弦的还是方波?
方波的如下:function = GenSin(t,x,u,flag)
switch flag,
case 0,
=mdlInitializeSizes;
case 1,
sys=mdlDerivatives(t,x,u);
case 2,
sys=mdlUpdate(t,x,u);
case 3,
sys=mdlOutputs(t,x,u);
case 4,
sys=mdlGetTimeOfNextVarHit(t,x,u);
case 9,
sys=mdlTerminate(t,x,u);
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
function =mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates= 0;
sizes.NumDiscStates= 2;
sizes.NumOutputs = 1;
sizes.NumInputs = 1;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1; % at least one sample time is needed
sys = simsizes(sizes);
x0= ;
str = [];
ts= ; % variable sample time
function sys=mdlDerivatives(t,x,u)
sys = [];
function sys=mdlUpdate(t,x,u)
if x(1) >= 1/u
x(2) = 1 - x(2);
x(1) = 0.001;
else
x(1) = x(1) + 0.001;
end
sys = x;
function sys=mdlOutputs(t,x,u)
sys = x(2);
function sys=mdlGetTimeOfNextVarHit(t,x,u)
sampleTime = 0.01; %Example, set the next hit to be one second later.
sys = t + sampleTime;
function sys=mdlTerminate(t,x,u)
sys = [];
谢谢您的回答,我想在模型中每次trigger后产生一个周期的sin函数,一个周期保持0直到先一个trigger, 高手这个可以完成吗?
页:
[1]