我是SIMULINK的新朋友!
我有一个大型SIMULINK模型,可能要运行一年的模拟(时间分辨率为1秒)。因此,我需要定期保存数据(假设每天的总金额)。我试图为此生成一个自定义的Matlab函数(下面给出的代码)。
对于代码:我很难将每10 s保存的数据写入工作区或mat文件。
非常欢迎使用除此代码之外的其他方法。
Simulink模型: enter image description here
代码(与内存块&t连接的sum_in和sum_out来自时钟块)
function [y,sum_out] = fcn(t,sum_in)
t_duration=30; % [s] Total duration of simulation
t_resol=10; % [s] Save every 10 s
sum_result=zeros(t_duration/t_resol,1);
t_per = mod(t,t_resol);
index=floor(t/t_resol)+1;
if t_per==1
sum_result(index,1)=sum_out;
save trial.mat sum_result;
sum_in=0;
sum_out=sum_in+1;
else
sum_out=sum_in+1;
end
y=sum_out;