simulink仿真与m文件的编程问题

在simulink仿真中仿真时长想设置为某一递减的输出结果减到零时的时间,请问有没有办法实现?感激不尽

两种方式可以实现:

  1. 如果只需要离线分析,可以将信号输出到matlab,然后用m文件编程实现,如下即可
t1 = t(y<=0);    % t为时间,y为这个递减信号,t与y一一对应
t0 = t1(1);

2 如果需要Simulink在线分析,可以使用Matlab Function模块编程实现,如下即可

function t0 = fcn(t,y)
persistent f
if isempty(f)
        f = 0;
end
if y<0 & f == 0
    t0 = t;
   f = 1;
else
   t0 = -1;   % 默认值,-1表示没有小于0
end