发布网友 发布时间:2022-04-24 01:28
共1个回答
热心网友 时间:2023-10-18 13:40
单独看mdlOutputs很难判断整个S函数的功能。
标准S函数的输出模块定义为:
function sys=mdlOutputs(t,x,u)其中t为当前仿真时间,x为状态变量,u为输入,而从题主贴出的代码看,应该并不是这样的变量定义。
下面单独分析一下题主所贴的 mdlOutputs 的功能。按正常思路理解,t 应该是仿真时间,time和step应该分别是一组时间向量和对应的响应向量。
i=find(t>=time);这一句是找出时间向量中不超过当前仿真时间的那些时间点,而后面一句
sys = step(i(end));则是取上述对应响应向量里面满足要求的最后一个时间点的响应值作为输出,至于更具体的含义,就要结合其它部分的代码来分析了。
热心网友 时间:2023-10-18 13:40
单独看mdlOutputs很难判断整个S函数的功能。
标准S函数的输出模块定义为:
function sys=mdlOutputs(t,x,u)其中t为当前仿真时间,x为状态变量,u为输入,而从题主贴出的代码看,应该并不是这样的变量定义。
下面单独分析一下题主所贴的 mdlOutputs 的功能。按正常思路理解,t 应该是仿真时间,time和step应该分别是一组时间向量和对应的响应向量。
i=find(t>=time);这一句是找出时间向量中不超过当前仿真时间的那些时间点,而后面一句
sys = step(i(end));则是取上述对应响应向量里面满足要求的最后一个时间点的响应值作为输出,至于更具体的含义,就要结合其它部分的代码来分析了。