我怎么为一个输入生成一个矩形脉冲在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如何我可以做到这一点。
亚伦
0评论
接受的答案
亚瑟Goldsipe
2021年9月3日
我不会使用规则来实现不连续SimBiology模型的变化。ODE求解器应该重启只要有间断,否则你可能会遇到问题,如不准确和较慢的模拟结果。
我不知道你想要什么样的脉冲来产生。情节我得到您提供的代码运行时是不同的。但这里有一个方法可以构建一个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);
我希望有帮助。
亚瑟