我怎么为一个输入生成一个矩形脉冲在Simbiology物种吗?

1视图(30天)
我想在Simbiology脉冲输入的物种。我读在先前的回答,重复作业可以做到这一点。然而,我不清楚该怎么做。下面是MATLAB代码生成脉冲,我想这个物种浓度:
t = 0:1/1e3:60;
d =[0:2:60;罪(2 *π* 0.05 * (0:2:60)))';
x = @rectpuls;
y = pulstran (t d x);
情节(t, y)
持有
包含(“时间(s)”)
ylabel (“波形”)
输出:
任何帮助都是赞赏Simbiology如何我可以做到这一点。
亚伦

接受的答案

亚瑟Goldsipe
亚瑟Goldsipe 2021年9月3日
我不会使用规则来实现不连续SimBiology模型的变化。ODE求解器应该重启只要有间断,否则你可能会遇到问题,如不准确和较慢的模拟结果。
如果你只需要 增加 一个物种的价值,我建议使用 SimBiology剂量 。但对于更一般的各种步骤的变化,我建议使用事件。你可以找到一个例子 在这里
我不知道你想要什么样的脉冲来产生。情节我得到您提供的代码运行时是不同的。但这里有一个方法可以构建一个SimBiology模型复制你的阴谋。我使用一个事件来触发一个物种的浓度在0和1之间,和事件时也决定了下一个事件会发生。
modelObj = sbiomodel (“脉搏”);
compartmentObj = addcompartment (modelObj,“c”);
addspecies (compartmentObj“x”,0);
addparameter (modelObj“nextPulseTime”,9.5,“不变”、假);
addparameter (modelObj“stopPulse”,30.5);
addparameter (modelObj“eventCount”0,“不变”、假);
addparameter (modelObj“numEvents”、22);
addevent (modelObj“eventCount < numEvents & &时间> = nextPulseTime”,
(“x = 1 - x”,
“nextPulseTime = nextPulseTime + 1”,
“eventCount = eventCount + 1”]);
configset = getconfigset (modelObj);
configset。StopTime = 60;
configset.SolverOptions。MaxStep = 0.1;
configset.RuntimeOptions。StatesToLog =“x”;
simdata = sbiosimulate (modelObj);
sbioplot (simdata);
我希望有帮助。
亚瑟

更多的答案(0)

社区

更多的答案SimBiology社区

类别

找到更多的在扩展建模环境帮助中心文件交换

s manbetx 845


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的