integratesample.m
来自「该程序仿真超宽带的脉冲位置调制。是在MATLAB下实现的。」· M 代码 · 共 66 行
M
66 行
function [sys,x0,str,ts] = IntegrateSample(t,x,u,flag,SampleTime)
switch flag,
%%%%%%%%%%%%%%%%%%
% Initialization %
%%%%%%%%%%%%%%%%%%
case 0,
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 3;
sizes.NumOutputs = 1;
sizes.NumInputs = 1;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1; % at least one sample time is needed
sys = simsizes(sizes);
x0 = [0 0 0]; % Output, Subtotal, Present time
str = []; ts = [0 0];
%%%%%%%%%%%%%%%
% Derivatives %
%%%%%%%%%%%%%%%
case 1,
sys=[];
%%%%%%%%%%
% Update %
%%%%%%%%%%
case 2,
sys=x;
if abs(round(t/SampleTime) - t/SampleTime) < 1e-8
sys(1)=x(2); sys(2)=0;
else
sys(2)=x(2)+abs(t-x(3))*u;
end
sys(3)=t;
%%%%%%%%%%%
% Outputs %
%%%%%%%%%%%
case 3,
sys = x(1)<0;
%%%%%%%%%%%%%%%%%%%%%%%
% GetTimeOfNextVarHit %
%%%%%%%%%%%%%%%%%%%%%%%
case 4,
sys=[];
%%%%%%%%%%%%%
% Terminate %
%%%%%%%%%%%%%
case 9,
sys=[];
%%%%%%%%%%%%%%%%%%%%
% Unexpected flags %
%%%%%%%%%%%%%%%%%%%%
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?