How to randomly sample output times in Simbiology?
2 次查看(过去 30 天)
显示 更早的评论
In the Simbiology Model Analyzer, 1) how to specify output time point of each run of the model as a random number from a normal distribution? E.g. a random number from a mean of 15min and SD 2min. 2) How to incorporate the output time as one input variable in global sensitivity analysis (Sobol index)? Thank you very much!
0 个评论
回答(2 个)
Sulaymon Eshkabilov
2024-2-10
To randomly generate values using MEAN and STD values, normrnd() fcn can be used:
MEAN_val = 15; % Mean in minutes
STD_dev = 2; % Standard deviation in minutes
Random_Number = normrnd(MEAN_val, STD_dev, 10, 1);
fprintf('Random number generated: %f \n', Random_Number);
0 个评论
Jeremy Huard
2024-2-15
编辑:Jeremy Huard
2024-2-15
Since your ultimate goal is to run a GSA on the model output, I would recommend the following:
- Create parameter outTimeScalar in your model with the relevant unit
- Create a parameter that converts the simulation time (which can be different for every simulation program) into the same unit as the parameter outTimeScalar. This can be achieved with a repeated assignment: timeInUnitOfInterest = time
- Create an observable that will call an external function that you will implement in the next step, for example: out = getOutput(timeInUnitOfInterest, speciesOfinterest, outTimeScalar)
- Create the external function that gives you the output at this specific time:
function out = getOutput(time, speciesOfinterest, outTime)
if all(time==0)
out = speciesOfinterest(end);
else
[time,idx] = unique(time,'last');
speciesOfinterest = speciesOfinterest(idx);
outTime = outTime(1);
out = interp1(time, speciesOfinterest, outTime,'pchip');
end
end
Please note that for this to provide meaningful results, you will need to make sure that timeInUnitOfInterest(1) < outTimeScalar < timeInUnitOfInterest(end).
Now, you can use Sobol GSA or MPGSA with outTimeScalar as an input that is sampled from a normal distribution.
I hope this helps.
Best regards,
Jérémy
Edit: Corrected function.
0 个评论
社区
更多回答在 SimBiology Community
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Extend Modeling Environment 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!