www.gusucode.com > MATLAB雷达工具箱 > MATLAB雷达工具箱/MATLAB雷达工具箱/dbtlinkR1-3/doapar1_s.m
function [sys,x0,str,ts] = doapar1_s(t,x,u,flag,method,restParam) % % The general form of an M-File S-function syntax is: % [SYS,X0,STR,TS] = SFUNC(T,X,U,FLAG,P1,...,Pn) % % Optional parameters, P1,...,Pn can be provided to the S-function and % used during any FLAG operation. % % Copyright (c) 1990-1998 by The MathWorks, Inc. All Rights Reserved. % $Revision: 1.3 $ % The following outlines the general structure of an S-function. switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes; case 1, sys=mdlDerivatives(t,x,u); case 2, sys=mdlUpdate(t,x,u); case 3, sys=mdlOutputs(t,x,u,method,restParam); case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); case 9, sys=mdlTerminate(t,x,u); otherwise error(['Unhandled flag = ',num2str(flag)]); end % %============================================================================= % mdlInitializeSizes % Return the sizes, initial conditions, and sample times for the S-function. %============================================================================= % function [sys,x0,str,ts]=mdlInitializeSizes % call simsizes for a sizes structure, fill it in and convert it to a % sizes array. sizes = simsizes; sizes.NumContStates = 0; sizes.NumDiscStates = 0; sizes.NumOutputs = 1; sizes.NumInputs = 1; sizes.DirFeedthrough = 1; sizes.NumSampleTimes = 1; % at least one sample time is needed sys = simsizes(sizes); % initialize the initial conditions x0 = []; % str is always an empty matrix str = []; % initialize the array of sample times ts = [0 0]; % end mdlInitializeSizes % %============================================================================= % mdlDerivatives % Return the derivatives for the continuous states. %============================================================================= % function sys=mdlDerivatives(t,x,u) sys = []; % end mdlDerivatives % %============================================================================= % mdlUpdate % Handle discrete state updates, sample time hits, and major time step % requirements. %============================================================================= % function sys=mdlUpdate(t,x,u) sys = []; % end mdlUpdate % %============================================================================= % mdlOutputs % Return the block outputs. %============================================================================= % function sys=mdlOutputs(t,x,u,method,restParam) getinvar %outVar1 = doapar1(method,inVar1,restParam{:}); outVar1 = doapar1(method,inVar1,restParam{1},[],restParam{2},restParam{3}); putoutvarclear % Clear the variable "inVar1" and puts the output variable "outVar1" % to the next Simulink block. % end mdlOutputs % %============================================================================= % mdlGetTimeOfNextVarHit % Return the time of the next hit for this block. Note that the result is % absolute time. Note that this function is only used when you specify a % variable discrete-time sample time [-2 0] in the sample time array in % mdlInitializeSizes. %============================================================================= % function sys=mdlGetTimeOfNextVarHit(t,x,u) sampleTime = 1; % Example, set the next hit to be one second later. sys = t + sampleTime; % end mdlGetTimeOfNextVarHit % %============================================================================= % mdlTerminate % Perform any end of simulation tasks. %============================================================================= % function sys=mdlTerminate(t,x,u) sys = []; % end mdlTerminate