MATLAB的s函数问题

2025-02-07 12:58:14
推荐回答(1个)
回答1:

function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 3;
sizes.NumOutputs = 1;
sizes.NumInputs = 1;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = [0 0 0];
str = [];
ts = [1e-5];

function sys=mdlUpdate(t,x,u)
x(3)=(x(1)+x(2)+u(1))/3;%平均值滤波
x(1)=x(2);%寄存当前值
x(2)=u(1);
sys=[x(1) x(2) x(3)];%送回系统

function sys=mdlOutputs(t,x,u)
sys=[x(3)];%结果输出